- _PTR(SObject) obj (study->FindObjectID(entry.toLatin1().data()));
- if( !obj )
- return -1;
-
- _PTR(SObject) ref;
- if( obj->ReferencedObject( ref ) )
- obj = ref;
-
- _PTR(SObject) objFather = obj->GetFather();
- _PTR(SComponent) objComponent = obj->GetFatherComponent();
-
- if( objComponent->ComponentDataType()!="SMESH" )
- return -1;
-
- if( objComponent->GetIOR()==obj->GetIOR() )
- return SMESH::COMPONENT;
-
- int aLevel = obj->Depth() - objComponent->Depth(),
- aFTag = objFather->Tag(),
- anOTag = obj->Tag(),
- res = -1;
-
- switch (aLevel)
- {
- case 1:
- if (anOTag >= SMESH::Tag_FirstMeshRoot)
- res = SMESH::MESH;
- break;
- case 2:
- switch (aFTag)
- {
- case SMESH::Tag_HypothesisRoot:
- res = SMESH::HYPOTHESIS;
- break;
- case SMESH::Tag_AlgorithmsRoot:
- res = SMESH::ALGORITHM;
- break;
- }
- break;
- case 3:
- switch (aFTag)
- {
- case SMESH::Tag_SubMeshOnVertex:
- res = SMESH::SUBMESH_VERTEX;
- break;
- case SMESH::Tag_SubMeshOnEdge:
- res = SMESH::SUBMESH_EDGE;
- break;
- case SMESH::Tag_SubMeshOnFace:
- res = SMESH::SUBMESH_FACE;
- break;
- case SMESH::Tag_SubMeshOnSolid:
- res = SMESH::SUBMESH_SOLID;
- break;
- case SMESH::Tag_SubMeshOnCompound:
- res = SMESH::SUBMESH_COMPOUND;
- break;
- default:
- if (aFTag >= SMESH::Tag_FirstGroup)
- res = SMESH::GROUP;
- else
- res = SMESH::SUBMESH;
+ int res = -1;
+ _PTR(SObject) obj = study->FindObjectID( entry.toLatin1().data() );
+ if ( obj ) {
+ _PTR(SObject) ref;
+ if ( obj->ReferencedObject( ref ) )
+ obj = ref;
+
+ _PTR(SObject) objFather = obj->GetFather();
+ _PTR(SComponent) objComponent = obj->GetFatherComponent();
+
+ if ( objComponent->ComponentDataType() == "SMESH" ) {
+ if ( objComponent->GetIOR() == obj->GetIOR() ) {
+ res = SMESH::COMPONENT;
+ }
+ else {
+ int aLevel = obj->Depth() - objComponent->Depth(),
+ aFTag = objFather->Tag(),
+ anOTag = obj->Tag();
+
+ switch ( aLevel )
+ {
+ case 1:
+ if ( anOTag >= SMESH::Tag_FirstMeshRoot )
+ res = SMESH::MESH;
+ break;
+ case 2:
+ switch ( aFTag )
+ {
+ case SMESH::Tag_HypothesisRoot: res = SMESH::HYPOTHESIS; break;
+ case SMESH::Tag_AlgorithmsRoot: res = SMESH::ALGORITHM; break;
+ default: break;
+ }
+ break;
+ case 3:
+ switch ( aFTag )
+ {
+ case SMESH::Tag_SubMeshOnVertex: res = SMESH::SUBMESH_VERTEX; break;
+ case SMESH::Tag_SubMeshOnEdge: res = SMESH::SUBMESH_EDGE; break;
+ case SMESH::Tag_SubMeshOnFace: res = SMESH::SUBMESH_FACE; break;
+ case SMESH::Tag_SubMeshOnSolid: res = SMESH::SUBMESH_SOLID; break;
+ case SMESH::Tag_SubMeshOnCompound: res = SMESH::SUBMESH_COMPOUND; break;
+ default:
+ if ( aFTag >= SMESH::Tag_FirstGroup) res = SMESH::GROUP;
+ else res = SMESH::SUBMESH;
+ break;
+ }
+ break;
+ }
+ }