map<SMDSAbs_ElementType,int> nbEnts;
map<SMDSAbs_ElementType,TEntityList> anEnts;
+ vtkIdType aNbCells = 0;
+
for ( int i = 0; i < nbTypes; i++ )
+ {
nbEnts[ aTypes[ i ] ] = GetEntities( aTypes[ i ], anEnts[ aTypes[ i ] ] );
-
+ aNbCells += nbEnts[ aTypes [ i ]];
+ }
// PAL16631: without swap, bad_alloc is not thrown but hung up and crash instead,
// so check remaining memory size for safety
SMDS_Mesh::CheckMemory(); // PAL16631
vtkIdType aCellsSize = 2 * nbEnts[ SMDSAbs_0DElement ] + 3 * nbEnts[ SMDSAbs_Edge ];
aCellsSize += 2 * nbEnts[ SMDSAbs_Ball ];
- vtkIdType aNbCells = 0;
-
for ( int i = 1; i <= 2; i++ ) // iterate through faces and volumes
{
- aNbCells += nbEnts[ aTypes[ i ]];
-
if ( nbEnts[ aTypes[ i ] ] )
{
const TEntityList& aList = anEnts[ aTypes[ i ] ];
bool SMESH_VisualObjDef::IsValid() const
{
//MESSAGE("SMESH_VisualObjDef::IsValid");
- return GetNbEntities(SMDSAbs_Node) > 0 ||
- GetNbEntities(SMDSAbs_0DElement) > 0 ||
- GetNbEntities(SMDSAbs_Ball) > 0 ||
- GetNbEntities(SMDSAbs_Edge) > 0 ||
- GetNbEntities(SMDSAbs_Face) > 0 ||
- GetNbEntities(SMDSAbs_Volume) > 0 ;
+ return ( GetNbEntities(SMDSAbs_0DElement) > 0 ||
+ GetNbEntities(SMDSAbs_Ball ) > 0 ||
+ GetNbEntities(SMDSAbs_Edge ) > 0 ||
+ GetNbEntities(SMDSAbs_Face ) > 0 ||
+ GetNbEntities(SMDSAbs_Volume ) > 0 ||
+ GetNbEntities(SMDSAbs_Node ) > 0 );
}
//=================================================================================
{
if ( MYDEBUG )
MESSAGE("SMESH_MeshObj - this = "<<this<<"\n");
+ if ( myEmptyGrid )
+ myEmptyGrid->Delete();
}
//=================================================================================
theResList.clear();
SMDS_Mesh* aMesh = myMeshObj->GetMesh();
- if ( myGroupServer->Size() == 0 || aMesh == 0 )
+ if ( aMesh == 0 )
return 0;
SMDSAbs_ElementType aGrpType = SMDSAbs_ElementType(myGroupServer->GetType());
+ if ( aGrpType != theType && theType != SMDSAbs_Node )
+ return 0;
+
SMESH::long_array_var anIds = myGroupServer->GetListOfID();
+ if ( anIds->length() == 0 )
+ return 0;
if ( aGrpType == theType )
return getPointers( theType, anIds, aMesh, theResList );
return getNodesFromElems( anIds, aMesh, theResList );
else
return 0;
-}
+}