Salome HOME
Merge from V5_1_3_BR branch (07/12/09)
[modules/smesh.git] / src / StdMeshers / StdMeshers_CompositeHexa_3D.cxx
index d489b3d769ae11a332f7b04cc19234316360765a..38bbdeaf32d77c9c4f9ae00f3efa4ffcc4ae8698 100644 (file)
@@ -252,7 +252,7 @@ StdMeshers_CompositeHexa_3D::StdMeshers_CompositeHexa_3D(int hypId, int studyId,
   :SMESH_3D_Algo(hypId, studyId, gen)
 {
   _name = "CompositeHexa_3D";
-  _shapeType = (1 << TopAbs_SHELL) | (1 << TopAbs_SOLID);      // 1 bit /shape type
+  _shapeType = (1 << TopAbs_SHELL) | (1 << TopAbs_SOLID);       // 1 bit /shape type
 }
 
 //================================================================================
@@ -514,7 +514,7 @@ bool StdMeshers_CompositeHexa_3D::Compute(SMESH_Mesh&         theMesh,
 //purpose  : auxilary for Evaluate
 //=======================================================================
 int GetNb2d(_QuadFaceGrid* QFG, SMESH_Mesh& theMesh,
-           MapShapeNbElems& aResMap)
+            MapShapeNbElems& aResMap)
 {
   int nb2d = 0;
   _QuadFaceGrid::TChildIterator aCI = QFG->GetChildren();
@@ -525,7 +525,7 @@ int GetNb2d(_QuadFaceGrid* QFG, SMESH_Mesh& theMesh,
       MapShapeNbElemsItr anIt = aResMap.find(sm);
       if( anIt == aResMap.end() ) continue;
       std::vector<int> aVec = (*anIt).second;
-      nb2d += Max(aVec[5],aVec[6]);
+      nb2d += Max(aVec[SMDSEntity_Quadrangle],aVec[SMDSEntity_Quad_Quadrangle]);
     }
   }
   return nb2d;
@@ -539,8 +539,8 @@ int GetNb2d(_QuadFaceGrid* QFG, SMESH_Mesh& theMesh,
 //================================================================================
 
 bool StdMeshers_CompositeHexa_3D::Evaluate(SMESH_Mesh& theMesh,
-                                          const TopoDS_Shape& theShape,
-                                          MapShapeNbElems& aResMap)
+                                           const TopoDS_Shape& theShape,
+                                           MapShapeNbElems& aResMap)
 {
   SMESH_MesherHelper aTool(theMesh);
   bool _quadraticMesh = aTool.IsQuadraticSubMesh(theShape);
@@ -636,22 +636,22 @@ bool StdMeshers_CompositeHexa_3D::Evaluate(SMESH_Mesh& theMesh,
       int nb0 = 0;
       SMESH_subMesh *sm = theMesh.GetSubMesh(exp.Current());
       if( sm ) {
-       MapShapeNbElemsItr anIt = aResMap.find(sm);
-       if( anIt == aResMap.end() ) continue;
-       std::vector<int> aVec = (*anIt).second;
-       nb0 = aVec[0];
+        MapShapeNbElemsItr anIt = aResMap.find(sm);
+        if( anIt == aResMap.end() ) continue;
+        std::vector<int> aVec = (*anIt).second;
+        nb0 = aVec[SMDSEntity_Node];
       }
       int j = 1;
       for(; j<=BndEdges.Length(); j++) {
-       if( BndEdges.Value(j) == exp.Current() ) {
-         // internal edge => remove it
-         BndEdges.Remove(j);
-         nb0d_in += nb0;
-         break;
-       }
+        if( BndEdges.Value(j) == exp.Current() ) {
+          // internal edge => remove it
+          BndEdges.Remove(j);
+          nb0d_in += nb0;
+          break;
+        }
       }
       if( j > BndEdges.Length() ) {
-       BndEdges.Append(exp.Current());
+        BndEdges.Append(exp.Current());
       }
       //if( BndEdges.Contains(exp.Current()) ) {
       //BndEdges.Remove( exp.Current() );
@@ -670,7 +670,7 @@ bool StdMeshers_CompositeHexa_3D::Evaluate(SMESH_Mesh& theMesh,
       MapShapeNbElemsItr anIt = aResMap.find(sm);
       if( anIt == aResMap.end() ) continue;
       std::vector<int> aVec = (*anIt).second;
-      nb1d += Max(aVec[1],aVec[2]);
+      nb1d += Max(aVec[SMDSEntity_Edge],aVec[SMDSEntity_Quad_Edge]);
     }
   }
 
@@ -689,24 +689,24 @@ bool StdMeshers_CompositeHexa_3D::Evaluate(SMESH_Mesh& theMesh,
       MapShapeNbElemsItr anIt = aResMap.find(sm);
       if( anIt == aResMap.end() ) continue;
       std::vector<int> aVec = (*anIt).second;
-      nb0d += aVec[0];
-      nb2d_3 += Max(aVec[3],aVec[4]);
-      nb2d_4 += Max(aVec[5],aVec[6]);
+      nb0d += aVec[SMDSEntity_Node];
+      nb2d_3 += Max(aVec[SMDSEntity_Triangle],   aVec[SMDSEntity_Quad_Triangle]);
+      nb2d_4 += Max(aVec[SMDSEntity_Quadrangle], aVec[SMDSEntity_Quad_Quadrangle]);
     }
   }
   nb0d += nb0d_in;
 
-  std::vector<int> aResVec(17);
-  for(int i=0; i<17; i++) aResVec[i] = 0;
+  std::vector<int> aResVec(SMDSEntity_Last);
+  for(int i=SMDSEntity_Node; i<SMDSEntity_Last; i++) aResVec[i] = 0;
   if(_quadraticMesh) {
-    aResVec[13] = nb2d_3 * ( nb2d/nb1d );
-    aResVec[15] = nb2d_4 * ( nb2d/nb1d );
-    aResVec[0] = nb0d * ( 2*nb2d/nb1d - 1 );
+    aResVec[SMDSEntity_Quad_Penta] = nb2d_3 * ( nb2d/nb1d );
+    aResVec[SMDSEntity_Quad_Hexa]  = nb2d_4 * ( nb2d/nb1d );
+    aResVec[SMDSEntity_Node] = nb0d * ( 2*nb2d/nb1d - 1 );
   }
   else {
-    aResVec[0] = nb0d * ( nb2d/nb1d - 1 );
-    aResVec[12] = nb2d_3 * ( nb2d/nb1d );
-    aResVec[14] = nb2d_4 * ( nb2d/nb1d );
+    aResVec[SMDSEntity_Node]  = nb0d * ( nb2d/nb1d - 1 );
+    aResVec[SMDSEntity_Penta] = nb2d_3 * ( nb2d/nb1d );
+    aResVec[SMDSEntity_Hexa]  = nb2d_4 * ( nb2d/nb1d );
   }
   SMESH_subMesh * sm = theMesh.GetSubMesh(theShape);
   aResMap.insert(std::make_pair(sm,aResVec));