mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-04-24 00:52:03 +05:00
fix GetTypes() for submesh on geom group
This commit is contained in:
parent
1fe6cd3e9f
commit
263ccfa485
@ -555,16 +555,26 @@ SMESH::long_array* SMESH_subMesh_i::GetMeshInfo()
|
|||||||
SMESH::array_of_ElementType* SMESH_subMesh_i::GetTypes()
|
SMESH::array_of_ElementType* SMESH_subMesh_i::GetTypes()
|
||||||
{
|
{
|
||||||
SMESH::array_of_ElementType_var types = new SMESH::array_of_ElementType;
|
SMESH::array_of_ElementType_var types = new SMESH::array_of_ElementType;
|
||||||
types->length( 1 );
|
|
||||||
::SMESH_subMesh* aSubMesh = _mesh_i->_mapSubMesh[_localId];
|
::SMESH_subMesh* aSubMesh = _mesh_i->_mapSubMesh[_localId];
|
||||||
switch ( ::SMESH_Gen::GetShapeDim( aSubMesh->GetSubShape() ))
|
TopoDS_Shape shape = aSubMesh->GetSubShape();
|
||||||
|
while ( !shape.IsNull() && shape.ShapeType() == TopAbs_COMPOUND )
|
||||||
{
|
{
|
||||||
case 0: types[0] = SMESH::ELEM0D; break;
|
TopoDS_Iterator it( shape );
|
||||||
case 1: types[0] = SMESH::EDGE; break;
|
shape = it.More() ? it.Value() : TopoDS_Shape();
|
||||||
case 2: types[0] = SMESH::FACE; break;
|
}
|
||||||
case 3: types[0] = SMESH::VOLUME; break;
|
if ( !shape.IsNull() )
|
||||||
default:
|
{
|
||||||
types->length(0);
|
types->length( 1 );
|
||||||
|
switch ( ::SMESH_Gen::GetShapeDim( shape ))
|
||||||
|
{
|
||||||
|
case 0: types[0] = SMESH::ELEM0D; break;
|
||||||
|
case 1: types[0] = SMESH::EDGE; break;
|
||||||
|
case 2: types[0] = SMESH::FACE; break;
|
||||||
|
case 3: types[0] = SMESH::VOLUME; break;
|
||||||
|
default:
|
||||||
|
types->length(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return types._retn();
|
return types._retn();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user