Salome HOME
53103: Mesh visualization performance problem
[modules/smesh.git] / src / DriverMED / DriverMED_R_SMESHDS_Mesh.cxx
index 58f9c0ca024bcb095ba5b5b63407b84149060769..c773d9925bc2e76e37785e97337d89d7930c3257 100644 (file)
@@ -976,8 +976,8 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform()
                 }
                 if ( DriverMED::checkFamilyID ( aFamily, aFamNum, myFamilies )) {
                   // Save reference to this element from its family
-                  myFamilies[aFamNum]->AddElement(anElement);
-                  myFamilies[aFamNum]->SetType(anElement->GetType());
+                  aFamily->AddElement(anElement);
+                  aFamily->SetType(anElement->GetType());
                 }
               }
             } // loop on aNbElems
@@ -1081,8 +1081,8 @@ void DriverMED_R_SMESHDS_Mesh::GetGroup(SMESHDS_Group* theGroup)
     DriverMED_FamilyPtr aFamily = (*aFamsIter).second;
     if (aFamily->GetTypes().count( theGroup->GetType() ) && aFamily->MemberOf(aGroupName))
     {
-      const set<const SMDS_MeshElement *>& anElements = aFamily->GetElements();
-      set<const SMDS_MeshElement *>::const_iterator anElemsIter = anElements.begin();
+      const ElementsSet&           anElements = aFamily->GetElements();
+      ElementsSet::const_iterator anElemsIter = anElements.begin();
       for (; anElemsIter != anElements.end(); anElemsIter++)
       {
         const SMDS_MeshElement * element = *anElemsIter;
@@ -1110,8 +1110,8 @@ void DriverMED_R_SMESHDS_Mesh::GetSubMesh (SMESHDS_SubMesh* theSubMesh,
     DriverMED_FamilyPtr aFamily = (*aFamsIter).second;
     if (aFamily->MemberOf(aName))
     {
-      const set<const SMDS_MeshElement *>& anElements = aFamily->GetElements();
-      set<const SMDS_MeshElement *>::const_iterator anElemsIter = anElements.begin();
+      const ElementsSet&           anElements = aFamily->GetElements();
+      ElementsSet::const_iterator anElemsIter = anElements.begin();
       if (aFamily->GetType() == SMDSAbs_Node)
       {
         for (; anElemsIter != anElements.end(); anElemsIter++)
@@ -1146,14 +1146,13 @@ void DriverMED_R_SMESHDS_Mesh::CreateAllSubMeshes ()
       if (aName.substr(0, 7) == string("SubMesh"))
       {
         int Id = atoi(string(aName).substr(7).c_str());
-        set<const SMDS_MeshElement *> anElements = aFamily->GetElements();
-        set<const SMDS_MeshElement *>::iterator anElemsIter = anElements.begin();
+        const ElementsSet&           anElements = aFamily->GetElements();
+        ElementsSet::const_iterator anElemsIter = anElements.begin();
         if (aFamily->GetType() == SMDSAbs_Node)
         {
           for (; anElemsIter != anElements.end(); anElemsIter++)
           {
-            SMDS_MeshNode* node = const_cast<SMDS_MeshNode*>
-              ( static_cast<const SMDS_MeshNode*>( *anElemsIter ));
+            const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( *anElemsIter );
             // find out a shape type
             TopoDS_Shape aShape = myMesh->IndexToShape( Id );
             int aShapeType = ( aShape.IsNull() ? -1 : aShape.ShapeType() );