make Mesh.MeshDimension() work in case w/o geometry

This commit is contained in:
eap 2013-01-22 09:08:00 +00:00
parent 44d181bc0e
commit 577999dffd

View File

@ -1107,19 +1107,25 @@ class Mesh:
return self.smeshpyD.GetGeometryByMeshElement( self.mesh, theElementID, theGeomName ) return self.smeshpyD.GetGeometryByMeshElement( self.mesh, theElementID, theGeomName )
## Returns the mesh dimension depending on the dimension of the underlying shape ## Returns the mesh dimension depending on the dimension of the underlying shape
# or, if the mesh is not based on any shape, basing on deimension of elements
# @return mesh dimension as an integer value [0,3] # @return mesh dimension as an integer value [0,3]
# @ingroup l1_auxiliary # @ingroup l1_auxiliary
def MeshDimension(self): def MeshDimension(self):
shells = self.geompyD.SubShapeAllIDs( self.geom, geompyDC.ShapeType["SHELL"] ) if self.mesh.HasShapeToMesh():
if len( shells ) > 0 : shells = self.geompyD.SubShapeAllIDs( self.geom, geompyDC.ShapeType["SOLID"] )
return 3 if len( shells ) > 0 :
elif self.geompyD.NumberOfFaces( self.geom ) > 0 : return 3
return 2 elif self.geompyD.NumberOfFaces( self.geom ) > 0 :
elif self.geompyD.NumberOfEdges( self.geom ) > 0 : return 2
return 1 elif self.geompyD.NumberOfEdges( self.geom ) > 0 :
return 1
else:
return 0;
else: else:
return 0; if self.NbVolumes() > 0: return 3
pass if self.NbFaces() > 0: return 2
if self.NbEdges() > 0: return 1
return 0
## Evaluates size of prospective mesh on a shape ## Evaluates size of prospective mesh on a shape
# @return a list where i-th element is a number of elements of i-th SMESH.EntityType # @return a list where i-th element is a number of elements of i-th SMESH.EntityType