{
INFOS("~SMESH_Mesh_i");
+#ifdef WITHGENERICOBJ
// destroy groups
map<int, SMESH::SMESH_GroupBase_ptr>::iterator itGr;
for (itGr = _mapGroups.begin(); itGr != _mapGroups.end(); itGr++) {
+ if ( CORBA::is_nil( itGr->second ))
+ continue;
SMESH_GroupBase_i* aGroup = dynamic_cast<SMESH_GroupBase_i*>(SMESH_Gen_i::GetServant(itGr->second).in());
if (aGroup) {
// this method is called from destructor of group (PAL6331)
//_impl->RemoveGroup( aGroup->GetLocalID() );
-#ifdef WITHGENERICOBJ
+ aGroup->myMeshServant = 0;
aGroup->Destroy();
-#endif
}
}
_mapGroups.clear();
-#ifdef WITHGENERICOBJ
// destroy submeshes
map<int, SMESH::SMESH_subMesh_ptr>::iterator itSM;
for ( itSM = _mapSubMeshIor.begin(); itSM != _mapSubMeshIor.end(); itSM++ ) {
+ if ( CORBA::is_nil( itSM->second ))
+ continue;
SMESH_subMesh_i* aSubMesh = dynamic_cast<SMESH_subMesh_i*>(SMESH_Gen_i::GetServant(itSM->second).in());
if (aSubMesh) {
aSubMesh->Destroy();
// destroy hypotheses
map<int, SMESH::SMESH_Hypothesis_ptr>::iterator itH;
for ( itH = _mapHypo.begin(); itH != _mapHypo.end(); itH++ ) {
+ if ( CORBA::is_nil( itH->second ))
+ continue;
SMESH_Hypothesis_i* aHypo = dynamic_cast<SMESH_Hypothesis_i*>(SMESH_Gen_i::GetServant(itH->second).in());
if (aHypo) {
aHypo->Destroy();
//Get or Create the SMESH_subMesh object implementation
int subMeshId = _impl->GetMeshDS()->ShapeToIndex( myLocSubShape );
+ if ( !subMeshId && ! _impl->GetMeshDS()->IsGroupOfSubShapes( myLocSubShape ))
+ THROW_SALOME_CORBA_EXCEPTION("not sub-shape of the main shape", SALOME::BAD_PARAM);
+
subMesh = getSubMesh( subMeshId );
// create a new subMesh object servant if there is none for the shape
CASE2STRING( EDGE );
CASE2STRING( FACE );
CASE2STRING( VOLUME );
+ CASE2STRING( ELEM0D );
default:;
}
return "";
// check names of groups
checkGroupNames();
- TPythonDump() << _this() << ".ExportToMEDX( '"
+ TPythonDump() << _this() << ".ExportToMEDX( r'"
<< file << "', " << auto_groups << ", " << theVersion << ", " << overwrite << " )";
_impl->ExportMED( file, aMeshName, auto_groups, theVersion );
// Update Python script
// check names of groups
checkGroupNames();
- TPythonDump() << _this() << ".ExportDAT( '" << file << "' )";
+ TPythonDump() << _this() << ".ExportDAT( r'" << file << "' )";
// Perform Export
PrepareForWriting(file);
// Update Python script
// check names of groups
checkGroupNames();
- TPythonDump() << _this() << ".ExportUNV( '" << file << "' )";
+ TPythonDump() << _this() << ".ExportUNV( r'" << file << "' )";
// Perform Export
PrepareForWriting(file);
// Update Python script
// check names of groups
checkGroupNames();
- TPythonDump() << _this() << ".ExportSTL( '" << file << "', " << isascii << " )";
+ TPythonDump() << _this() << ".ExportSTL( r'" << file << "', " << isascii << " )";
// Perform Export
PrepareForWriting(file);
return aResult._retn();
}
+//=======================================================================
+//function : GetTypes
+//purpose : Returns types of elements it contains
+//=======================================================================
+
+SMESH::array_of_ElementType* SMESH_Mesh_i::GetTypes()
+{
+ SMESH::array_of_ElementType_var types = new SMESH::array_of_ElementType;
+
+ types->length( 4 );
+ int nbTypes = 0;
+ if (_impl->NbEdges())
+ types[nbTypes++] = SMESH::EDGE;
+ if (_impl->NbFaces())
+ types[nbTypes++] = SMESH::FACE;
+ if (_impl->NbVolumes())
+ types[nbTypes++] = SMESH::VOLUME;
+ if (_impl->Nb0DElements())
+ types[nbTypes++] = SMESH::ELEM0D;
+ types->length( nbTypes );
+
+ return types._retn();
+}
+
//=============================================================================
/*!
* \brief Returns statistic of mesh elements