- if (!myActor)
- return;
-
- if (myEditCurrentArgument == LineEditElements)
- {
- int aNbElements = 0;
- myElementsId = "";
-
- if (CheckBoxMesh->isChecked())
- {
- SMESH::GetNameOfSelectedIObjects(mySelection, aString);
-
- int aConstructorId = GetConstructorId();
-
- if(!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) //MESH
- {
- // get IDs from mesh
- SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
- if (!aSMDSMesh)
- return;
-
- if (aConstructorId == 0)
- {
- SMDS_EdgeIteratorPtr anIter = aSMDSMesh->edgesIterator();
-
- while ( anIter->more() )
- {
- const SMDS_MeshEdge * edge = anIter->next();
- if ( edge ) {
- myElementsId += QString(" %1").arg(edge->GetID());
- aNbElements++;
- }
- }
- }
- else if (aConstructorId == 1)
- {
- SMDS_FaceIteratorPtr anIter = aSMDSMesh->facesIterator();
- while ( anIter->more() )
- {
- const SMDS_MeshFace * face = anIter->next();
- if ( face ) {
- myElementsId += QString(" %1").arg(face->GetID());
- aNbElements++;
- }
- }
- }
- }
- else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) //SUBMESH
- {
- // get submesh
- SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
-
- // get IDs from submesh
- SMESH::long_array_var anElementsIds = new SMESH::long_array;
- if (aConstructorId == 0)
- anElementsIds = aSubMesh->GetElementsByType(SMESH::EDGE);
- else if (aConstructorId == 1)
- anElementsIds = aSubMesh->GetElementsByType(SMESH::FACE);
-
- for ( int i = 0; i < anElementsIds->length(); i++ )
- myElementsId += QString(" %1").arg(anElementsIds[i]);
- aNbElements = anElementsIds->length();
- }
- else // GROUP
- {
- // get smesh group
- SMESH::SMESH_GroupBase_var aGroup =
- SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
- if (aGroup->_is_nil())
- return;
-
- if ( (aConstructorId == 0 && aGroup->GetType()!= SMESH::EDGE) ||
- (aConstructorId == 1 && aGroup->GetType()!= SMESH::FACE) )
- return;
-
- // get IDs from smesh group
- SMESH::long_array_var anElementsIds = new SMESH::long_array;
- anElementsIds = aGroup->GetListOfID();
- for ( int i = 0; i < anElementsIds->length(); i++ )
- myElementsId += QString(" %1").arg(anElementsIds[i]);
- aNbElements = anElementsIds->length();
- }
- }
- else
- {
- aNbElements = SMESH::GetNameOfSelectedElements(mySelection, aString) ;
- myElementsId = aString;
- }
-
- if(aNbElements < 1)
- return ;
-
- myNbOkElements = true;