X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_Penta_3D.cxx;h=984410a3c7fc0b6b0926abe863f9a68853c47e74;hp=e566580b9ae9851d83f5a87a494839ae6af1314a;hb=HEAD;hpb=41b3e4433388f439856c3b0bb3725e9c81179c24 diff --git a/src/StdMeshers/StdMeshers_Penta_3D.cxx b/src/StdMeshers/StdMeshers_Penta_3D.cxx index e566580b9..5216451af 100644 --- a/src/StdMeshers/StdMeshers_Penta_3D.cxx +++ b/src/StdMeshers/StdMeshers_Penta_3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -20,7 +20,7 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SMESH StdMeshers_Penta_3D implementaion of SMESH idl descriptions +// SMESH StdMeshers_Penta_3D implementation of SMESH idl descriptions // File : StdMeshers_Penta_3D.cxx // Module : SMESH // @@ -147,7 +147,8 @@ bool StdMeshers_Penta_3D::Compute(SMESH_Mesh& aMesh, void StdMeshers_Penta_3D::MakeNodes() { const int aNbSIDs=9; - int i, j, k, ij, iNbN, aNodeID, aSize, iErr; + int i, j, k, ij, aSize, iErr; + smIdType iNbN, aNodeID; double aX, aY, aZ; SMESH_Block::TShapeID aSID, aSIDs[aNbSIDs]={ SMESH_Block::ID_V000, SMESH_Block::ID_V100, @@ -234,8 +235,7 @@ void StdMeshers_Penta_3D::MakeNodes() aTNode.SetBaseNodeID(aNodeID); // if ( SMESH_Block::IsEdgeID (aSID)) { - const SMDS_EdgePosition* epos = - static_cast(aNode->GetPosition()); + SMDS_EdgePositionPtr epos = aNode->GetPosition(); myBlock.ComputeParameters( epos->GetUParameter(), aS, aCoords ); } else { @@ -421,7 +421,7 @@ void StdMeshers_Penta_3D::MakeNodes() aZ=(double)i/(double)(myISize-1); aCoords.SetCoord(aX, aY, aZ); // - // suporting shape ID + // supporting shape ID ShapeSupportID(bIsUpperLayer, aBNSSID, aSSID); if (!myErrorStatus->IsOK()) { MESSAGE("StdMeshers_Penta_3D::MakeNodes() pb"); @@ -574,7 +574,7 @@ double StdMeshers_Penta_3D::SetHorizEdgeXYZ(const gp_XYZ& aBase SMESH_Block::GetFaceEdgesIDs( aFaceID, edgeVec ); // int coord = SMESH_Block::GetCoordIndOnEdge( edgeVec[ BASE ] ); - bool isForward = myBlock.IsForwadEdge( edgeVec[ BASE ] ); + bool isForward = myBlock.IsForwardEdge( edgeVec[ BASE ] ); double param = aBaseNodeParams.Coord( coord ); if ( !isForward) @@ -656,7 +656,8 @@ void StdMeshers_Penta_3D::MakeVolumeMesh() } // // 2. Make pentahedrons - int aID0, k , aJ[4]; + smIdType aID0; + int k , aJ[4]; vector aN; // SMDS_ElemIteratorPtr itf, aItNodes; @@ -767,7 +768,8 @@ void StdMeshers_Penta_3D::MakeVolumeMesh() //======================================================================= void StdMeshers_Penta_3D::MakeMeshOnFxy1() { - int aID0, aJ, aLevel, ij, aNbNodes, k; + int aJ, aLevel, ij, k; + smIdType aID0, aNbNodes; // SMDS_NodeIteratorPtr itn; SMDS_ElemIteratorPtr itf, aItNodes; @@ -799,7 +801,7 @@ void StdMeshers_Penta_3D::MakeMeshOnFxy1() while(itf->more()) { const SMDS_MeshElement* pE0 = itf->next(); aElementType = pE0->GetType(); - if (!aElementType==SMDSAbs_Face) { + if (aElementType!=SMDSAbs_Face) { continue; } aNbNodes = pE0->NbNodes(); @@ -1045,7 +1047,7 @@ void StdMeshers_Penta_3D::MakeBlock() if (iCnt>1) { // \begin{E.A.} // The current algorithm fails if there is more that one - // face wich contains triangles ... + // face which contains triangles ... // In that case, replace return by break to try another // method (coded in "if (iCnt != 1) { ... }") // @@ -1110,12 +1112,12 @@ void StdMeshers_Penta_3D::MakeBlock() int iNbF = aM.Extent(); if (iNbF == 6) { // - int nb_f1 = pMesh->GetSubMeshContaining(aM(1))->GetSubMeshDS()->NbElements(); - int nb_f2 = pMesh->GetSubMeshContaining(aM(2))->GetSubMeshDS()->NbElements(); - int nb_f3 = pMesh->GetSubMeshContaining(aM(3))->GetSubMeshDS()->NbElements(); - int nb_f4 = pMesh->GetSubMeshContaining(aM(4))->GetSubMeshDS()->NbElements(); - int nb_f5 = pMesh->GetSubMeshContaining(aM(5))->GetSubMeshDS()->NbElements(); - int nb_f6 = pMesh->GetSubMeshContaining(aM(6))->GetSubMeshDS()->NbElements(); + smIdType nb_f1 = pMesh->GetSubMeshContaining(aM(1))->GetSubMeshDS()->NbElements(); + smIdType nb_f2 = pMesh->GetSubMeshContaining(aM(2))->GetSubMeshDS()->NbElements(); + smIdType nb_f3 = pMesh->GetSubMeshContaining(aM(3))->GetSubMeshDS()->NbElements(); + smIdType nb_f4 = pMesh->GetSubMeshContaining(aM(4))->GetSubMeshDS()->NbElements(); + smIdType nb_f5 = pMesh->GetSubMeshContaining(aM(5))->GetSubMeshDS()->NbElements(); + smIdType nb_f6 = pMesh->GetSubMeshContaining(aM(6))->GetSubMeshDS()->NbElements(); // int has_only_quad_f1 = 1; int has_only_quad_f2 = 1; @@ -1154,18 +1156,18 @@ void StdMeshers_Penta_3D::MakeBlock() int iNbE = aE.Extent(); if (iNbE == 12) { // - int nb_e01 = pMesh->GetSubMeshContaining(aE(1))->GetSubMeshDS()->NbElements(); - int nb_e02 = pMesh->GetSubMeshContaining(aE(2))->GetSubMeshDS()->NbElements(); - int nb_e03 = pMesh->GetSubMeshContaining(aE(3))->GetSubMeshDS()->NbElements(); - int nb_e04 = pMesh->GetSubMeshContaining(aE(4))->GetSubMeshDS()->NbElements(); - int nb_e05 = pMesh->GetSubMeshContaining(aE(5))->GetSubMeshDS()->NbElements(); - int nb_e06 = pMesh->GetSubMeshContaining(aE(6))->GetSubMeshDS()->NbElements(); - int nb_e07 = pMesh->GetSubMeshContaining(aE(7))->GetSubMeshDS()->NbElements(); - int nb_e08 = pMesh->GetSubMeshContaining(aE(8))->GetSubMeshDS()->NbElements(); - int nb_e09 = pMesh->GetSubMeshContaining(aE(9))->GetSubMeshDS()->NbElements(); - int nb_e10 = pMesh->GetSubMeshContaining(aE(10))->GetSubMeshDS()->NbElements(); - int nb_e11 = pMesh->GetSubMeshContaining(aE(11))->GetSubMeshDS()->NbElements(); - int nb_e12 = pMesh->GetSubMeshContaining(aE(12))->GetSubMeshDS()->NbElements(); + smIdType nb_e01 = pMesh->GetSubMeshContaining(aE(1))->GetSubMeshDS()->NbElements(); + smIdType nb_e02 = pMesh->GetSubMeshContaining(aE(2))->GetSubMeshDS()->NbElements(); + smIdType nb_e03 = pMesh->GetSubMeshContaining(aE(3))->GetSubMeshDS()->NbElements(); + smIdType nb_e04 = pMesh->GetSubMeshContaining(aE(4))->GetSubMeshDS()->NbElements(); + smIdType nb_e05 = pMesh->GetSubMeshContaining(aE(5))->GetSubMeshDS()->NbElements(); + smIdType nb_e06 = pMesh->GetSubMeshContaining(aE(6))->GetSubMeshDS()->NbElements(); + smIdType nb_e07 = pMesh->GetSubMeshContaining(aE(7))->GetSubMeshDS()->NbElements(); + smIdType nb_e08 = pMesh->GetSubMeshContaining(aE(8))->GetSubMeshDS()->NbElements(); + smIdType nb_e09 = pMesh->GetSubMeshContaining(aE(9))->GetSubMeshDS()->NbElements(); + smIdType nb_e10 = pMesh->GetSubMeshContaining(aE(10))->GetSubMeshDS()->NbElements(); + smIdType nb_e11 = pMesh->GetSubMeshContaining(aE(11))->GetSubMeshDS()->NbElements(); + smIdType nb_e12 = pMesh->GetSubMeshContaining(aE(12))->GetSubMeshDS()->NbElements(); // int nb_ok = 0 ; // @@ -1418,11 +1420,11 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes, if ( sm1->NbNodes() * smb->NbNodes() != smFace->NbNodes() ) { // check quadratic case if ( myCreateQuadratic ) { - int n1 = sm1->NbNodes()/2; - int n2 = smb->NbNodes()/2; - int n3 = sm1->NbNodes() - n1; - int n4 = smb->NbNodes() - n2; - int nf = sm1->NbNodes()*smb->NbNodes() - n3*n4; + smIdType n1 = sm1->NbNodes()/2; + smIdType n2 = smb->NbNodes()/2; + smIdType n3 = sm1->NbNodes() - n1; + smIdType n4 = smb->NbNodes() - n2; + smIdType nf = sm1->NbNodes()*smb->NbNodes() - n3*n4; if( nf != smFace->NbNodes() ) { MESSAGE( "Wrong nb face nodes: " << sm1->NbNodes()<<" "<NbNodes()<<" "<NbNodes()); @@ -1436,8 +1438,8 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes, } } // IJ size - int vsize = sm1->NbNodes() + 2; - int hsize = smb->NbNodes() + 2; + smIdType vsize = sm1->NbNodes() + 2; + smIdType hsize = smb->NbNodes() + 2; if(myCreateQuadratic) { vsize = vsize - sm1->NbNodes()/2 -1; hsize = hsize - smb->NbNodes()/2 -1; @@ -1465,11 +1467,9 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes, node = nIt->next(); if(myTool->IsMedium(node)) continue; - const SMDS_EdgePosition* pos = - dynamic_cast( node->GetPosition() ); - if ( !pos ) { + SMDS_EdgePositionPtr pos = node->GetPosition(); + if ( !pos ) return false; - } double u = ( pos->GetUParameter() - f ) / range; vector & nVec = theIJNodes[ u ]; nVec.resize( vsize, nullNode ); @@ -1488,11 +1488,9 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes, node = nIt->next(); if(myTool->IsMedium(node)) continue; - const SMDS_EdgePosition* pos = - dynamic_cast( node->GetPosition() ); - if ( !pos ) { + SMDS_EdgePositionPtr pos = node->GetPosition(); + if ( !pos ) return false; - } sortedNodes.insert( make_pair( pos->GetUParameter(), node )); } loadedNodes.insert( nVecf[ vsize - 1 ] = smVft->GetNodes()->next() ); @@ -1543,7 +1541,7 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes, } // look for a not loaded node of the bool found = false; - const SMDS_MeshNode* n3 = 0; // a node defferent from n1 and n2 + const SMDS_MeshNode* n3 = 0; // a node different from n1 and n2 eIt = face->nodesIterator() ; while ( !found && eIt->more() ) { node = static_cast( eIt->next() ); @@ -1609,11 +1607,11 @@ StdMeshers_SMESHBlock::StdMeshers_SMESHBlock() } //======================================================================= -//function : IsForwadEdge +//function : IsForwardEdge //purpose : //======================================================================= -bool StdMeshers_SMESHBlock::IsForwadEdge(const int theEdgeID) +bool StdMeshers_SMESHBlock::IsForwardEdge(const int theEdgeID) { int index = myTBlock.ShapeIndex( theEdgeID ); if ( !myTBlock.IsEdgeID( theEdgeID )) @@ -1875,16 +1873,16 @@ bool StdMeshers_Penta_3D::Evaluate(SMESH_Mesh& aMesh, NumBase = 0; break; } - std::vector aVec = (*anIt).second; - int nbtri = Max(aVec[SMDSEntity_Triangle],aVec[SMDSEntity_Quad_Triangle]); - int nbqua = Max(aVec[SMDSEntity_Quadrangle],aVec[SMDSEntity_Quad_Quadrangle]); + std::vector aVec = (*anIt).second; + smIdType nbtri = std::max(aVec[SMDSEntity_Triangle],aVec[SMDSEntity_Quad_Triangle]); + smIdType nbqua = std::max(aVec[SMDSEntity_Quadrangle],aVec[SMDSEntity_Quad_Quadrangle]); if( nbtri>0 && nbqua==0 ) { NumBase = i; } } if(NumBase==0) { - std::vector aResVec(SMDSEntity_Last); + std::vector aResVec(SMDSEntity_Last); for(int i=SMDSEntity_Node; i aVec = (*anIt).second; - nb1d += Max(aVec[SMDSEntity_Edge],aVec[SMDSEntity_Quad_Edge]); + std::vector aVec = (*anIt).second; + nb1d += std::max(aVec[SMDSEntity_Edge],aVec[SMDSEntity_Quad_Edge]); } } // find face opposite to base face @@ -1928,14 +1926,14 @@ bool StdMeshers_Penta_3D::Evaluate(SMESH_Mesh& aMesh, if( i==OppNum || i==NumBase ) continue; MapShapeNbElemsItr anIt = aResMap.find( meshFaces[i-1] ); if( anIt == aResMap.end() ) continue; - std::vector aVec = (*anIt).second; - nb2d += Max(aVec[SMDSEntity_Quadrangle],aVec[SMDSEntity_Quad_Quadrangle]); + std::vector aVec = (*anIt).second; + nb2d += std::max(aVec[SMDSEntity_Quadrangle],aVec[SMDSEntity_Quad_Quadrangle]); } MapShapeNbElemsItr anIt = aResMap.find( meshFaces[NumBase-1] ); - std::vector aVec = (*anIt).second; - int nb2d_face0 = Max(aVec[SMDSEntity_Quadrangle],aVec[SMDSEntity_Quad_Quadrangle]); - int nb0d_face0 = aVec[SMDSEntity_Node]; + std::vector aVec = (*anIt).second; + smIdType nb2d_face0 = std::max(aVec[SMDSEntity_Quadrangle],aVec[SMDSEntity_Quad_Quadrangle]); + smIdType nb0d_face0 = aVec[SMDSEntity_Node]; anIt = aResMap.find( meshFaces[OppNum-1] ); for(i=SMDSEntity_Node; i aResVec(SMDSEntity_Last); + std::vector aResVec(SMDSEntity_Last); for(int i=SMDSEntity_Node; i