X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FOBJECT%2FSMESH_Object.cxx;h=943f0896d712cf52163efd1da8b9c17a76baa616;hp=30544754989fdeb7b411fab88f64a64c9c5edfbb;hb=f31477795020e2cfc50d5b625579285c644a6a96;hpb=4f4312b86e0950e3d2cc5b5091029039be3f29fc diff --git a/src/OBJECT/SMESH_Object.cxx b/src/OBJECT/SMESH_Object.cxx index 305447549..943f0896d 100644 --- a/src/OBJECT/SMESH_Object.cxx +++ b/src/OBJECT/SMESH_Object.cxx @@ -86,6 +86,9 @@ static inline vtkIdType getCellType( const SMDSAbs_ElementType theType, { switch( theType ) { + case SMDSAbs_0DElement: + return VTK_VERTEX; + case SMDSAbs_Edge: if( theNbNodes == 2 ) return VTK_LINE; else if ( theNbNodes == 3 ) return VTK_QUADRATIC_EDGE; @@ -295,22 +298,23 @@ void SMESH_VisualObjDef::buildElemPrs() // Calculate cells size - static SMDSAbs_ElementType aTypes[ 3 ] = { SMDSAbs_Edge, SMDSAbs_Face, SMDSAbs_Volume }; + static SMDSAbs_ElementType aTypes[ 4 ] = + { SMDSAbs_0DElement, SMDSAbs_Edge, SMDSAbs_Face, SMDSAbs_Volume }; // get entity data map nbEnts; map anEnts; - for ( int i = 0; i <= 2; i++ ) + for ( int i = 0; i <= 3; i++ ) nbEnts[ aTypes[ i ] ] = GetEntities( aTypes[ i ], anEnts[ 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 = 3 * nbEnts[ SMDSAbs_Edge ]; + vtkIdType aCellsSize = 2 * nbEnts[ SMDSAbs_0DElement ] + 3 * nbEnts[ SMDSAbs_Edge ]; - for ( int i = 1; i <= 2; i++ ) // iterate through faces and volumes + for ( int i = 2; i <= 3; i++ ) // iterate through faces and volumes { if ( nbEnts[ aTypes[ i ] ] ) { @@ -321,22 +325,23 @@ void SMESH_VisualObjDef::buildElemPrs() } } - vtkIdType aNbCells = nbEnts[ SMDSAbs_Edge ] + nbEnts[ SMDSAbs_Face ] + nbEnts[ SMDSAbs_Volume ]; + vtkIdType aNbCells = nbEnts[ SMDSAbs_0DElement ] + nbEnts[ SMDSAbs_Edge ] + + nbEnts[ SMDSAbs_Face ] + nbEnts[ SMDSAbs_Volume ]; if ( MYDEBUG ) MESSAGE( "Update - aNbCells = "<