From: ptv Date: Tue, 25 Aug 2009 05:20:54 +0000 (+0000) Subject: 0019296: EDF 681 SMESH - Pre-evaluation of the number of elements before mesh X-Git-Tag: RELIQUAT_5x_30102009~4 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=4afa65d4e9a6a919947763f6efcdfc8345775b88;p=plugins%2Fghs3dprlplugin.git 0019296: EDF 681 SMESH - Pre-evaluation of the number of elements before mesh Replace hard coded values of element types by new enumeration (added in advanced mesh info Improvement) --- diff --git a/src/GHS3DPRLPlugin/GHS3DPRLPlugin_GHS3DPRL.cxx b/src/GHS3DPRLPlugin/GHS3DPRLPlugin_GHS3DPRL.cxx index 9ca6183..cc801dc 100755 --- a/src/GHS3DPRLPlugin/GHS3DPRLPlugin_GHS3DPRL.cxx +++ b/src/GHS3DPRLPlugin/GHS3DPRLPlugin_GHS3DPRL.cxx @@ -646,8 +646,8 @@ bool GHS3DPRLPlugin_GHS3DPRL::Evaluate(SMESH_Mesh& aMesh, SMESH_subMesh *sm = aMesh.GetSubMesh(F); MapShapeNbElemsItr anIt = aResMap.find(sm); std::vector aVec = (*anIt).second; - nbtri += Max(aVec[3],aVec[4]); - nbqua += Max(aVec[5],aVec[6]); + nbtri += Max(aVec[SMDSEntity_Triangle],aVec[SMDSEntity_Quad_Triangle]); + nbqua += Max(aVec[SMDSEntity_Quadrangle],aVec[SMDSEntity_Quad_Quadrangle]); GProp_GProps G; BRepGProp::SurfaceProperties(F,G); double anArea = G.Mass(); @@ -667,10 +667,10 @@ bool GHS3DPRLPlugin_GHS3DPRL::Evaluate(SMESH_Mesh& aMesh, SMESH_subMesh *aSubMesh = aMesh.GetSubMesh(exp.Current()); MapShapeNbElemsItr anIt = aResMap.find(aSubMesh); std::vector aVec = (*anIt).second; - nb0d_e += aVec[0]; - nb1d_e += Max(aVec[1],aVec[2]); + nb0d_e += aVec[SMDSEntity_Node]; + nb1d_e += Max(aVec[SMDSEntity_Edge],aVec[SMDSEntity_Quad_Edge]); if(IsFirst) { - IsQuadratic = (aVec[2] > aVec[1]); + IsQuadratic = (aVec[SMDSEntity_Quad_Edge] > aVec[SMDSEntity_Edge]); IsFirst = false; } } @@ -686,17 +686,17 @@ bool GHS3DPRLPlugin_GHS3DPRL::Evaluate(SMESH_Mesh& aMesh, int nbVols = (int)aVolume/tetrVol/CoeffQuality; int nb1d_f = (nbtri*3 + nbqua*4 - nb1d_e) / 2; int nb1d_in = (int) ( nbVols*6 - nb1d_e - nb1d_f ) / 5; - std::vector aVec(17); - for(int i=0; i<17; i++) aVec[i]=0; + std::vector aVec(SMDSEntity_Last); + for(int i=0; i