updateTimeWith(*_type);
}
+std::size_t MEDCouplingField::getHeapMemorySize() const
+{
+ std::size_t ret=0;
+ ret+=_name.capacity();
+ ret+=_desc.capacity();
+ if(_mesh)
+ ret+=_mesh->getHeapMemorySize();
+ if((const MEDCouplingFieldDiscretization *)_type)
+ ret+=_type->getHeapMemorySize();
+ return ret;
+}
+
TypeOfField MEDCouplingField::getTypeOfField() const
{
return _type->getEnum();
return _type->getGaussLocalizationIdOfOneType(type);
}
+std::set<int> MEDCouplingField::getGaussLocalizationIdsOfOneType(INTERP_KERNEL::NormalizedCellType type) const throw(INTERP_KERNEL::Exception)
+{
+ if(!_mesh)
+ throw INTERP_KERNEL::Exception("Mesh has to be set before calling getGaussLocalizationIdsOfOneType method !");
+ return _type->getGaussLocalizationIdsOfOneType(type);
+}
+
/*!
* This method returns number of Gauss localization available. Implicitely all ids in [0,getNbOfGaussLocalization()) is a valid Gauss localisation id.
* This method throws an exception if there is no mesh, invalid FieldDescription (different from Gauss)
{
}
-MEDCouplingField::MEDCouplingField(const MEDCouplingField& other):RefCountObject(other),_name(other._name),_desc(other._desc),_nature(other._nature),
- _mesh(0),_type(other._type->clone())
+MEDCouplingField::MEDCouplingField(const MEDCouplingField& other, bool deepCopy):RefCountObject(other),_name(other._name),_desc(other._desc),_nature(other._nature),
+ _mesh(0),_type(0)
{
if(other._mesh)
{
_mesh=other._mesh;
_mesh->incrRef();
}
+ if(deepCopy)
+ _type=other._type->clone();
+ else
+ _type=other._type;
}
/*!
else
throw INTERP_KERNEL::Exception("MEDCouplingField::getNumberOfMeshPlacesExpected : Empty mesh !");
}
+
+/*!
+ * Copy tiny info (component names, name, description) but warning the underlying mesh is not renamed (for safety reason).
+ */
+void MEDCouplingField::copyTinyStringsFrom(const MEDCouplingField *other) throw(INTERP_KERNEL::Exception)
+{
+ if(other)
+ {
+ setName(other->_name.c_str());
+ setDescription(other->_desc.c_str());
+ }
+}