X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_Penta_3D.cxx;h=e566580b9ae9851d83f5a87a494839ae6af1314a;hb=41b3e4433388f439856c3b0bb3725e9c81179c24;hp=85697faaf97a6e79dd6e4615efb9a57473a4b024;hpb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce;p=modules%2Fsmesh.git diff --git a/src/StdMeshers/StdMeshers_Penta_3D.cxx b/src/StdMeshers/StdMeshers_Penta_3D.cxx index 85697faaf..e566580b9 100644 --- a/src/StdMeshers/StdMeshers_Penta_3D.cxx +++ b/src/StdMeshers/StdMeshers_Penta_3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -33,12 +33,14 @@ #include "SMDS_MeshElement.hxx" #include "SMDS_VolumeOfNodes.hxx" #include "SMDS_VolumeTool.hxx" +#include "SMESHDS_Mesh.hxx" #include "SMESHDS_SubMesh.hxx" +#include "SMESH_Comment.hxx" #include "SMESH_Mesh.hxx" +#include "SMESH_MeshAlgos.hxx" #include "SMESH_MesherHelper.hxx" #include "SMESH_subMesh.hxx" #include "SMESH_subMeshEventListener.hxx" -#include "SMESH_Comment.hxx" #include #include @@ -94,8 +96,6 @@ StdMeshers_Penta_3D::~StdMeshers_Penta_3D() bool StdMeshers_Penta_3D::Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape) { - MESSAGE("StdMeshers_Penta_3D::Compute()"); - // bool bOK=false; // myShape=aShape; @@ -359,7 +359,7 @@ void StdMeshers_Penta_3D::MakeNodes() // set XYZ on horizontal edges and get node columns of faces: // 2 columns for each face, between which a base node is located vector* nColumns[8]; - double ratio[ NB_WALL_FACES ]; // base node position between columns [0.-1.] + double ratio[ NB_WALL_FACES ] = {0,0,0,0}; // base node position between columns [0.-1.] if ( createNode ) { for ( k = 0; k < NB_WALL_FACES ; ++k ) { ratio[ k ] = SetHorizEdgeXYZ (aBNXYZ, wallFaceID[ k ], @@ -424,7 +424,7 @@ void StdMeshers_Penta_3D::MakeNodes() // suporting shape ID ShapeSupportID(bIsUpperLayer, aBNSSID, aSSID); if (!myErrorStatus->IsOK()) { - MESSAGE("StdMeshers_Penta_3D::MakeNodes() "); + MESSAGE("StdMeshers_Penta_3D::MakeNodes() pb"); return; } // @@ -471,7 +471,7 @@ void StdMeshers_Penta_3D::MakeNodes() } } if (!myErrorStatus->IsOK()) { - MESSAGE("StdMeshers_Penta_3D::MakeNodes() "); + MESSAGE("StdMeshers_Penta_3D::MakeNodes() err"); return; } // @@ -656,7 +656,7 @@ void StdMeshers_Penta_3D::MakeVolumeMesh() } // // 2. Make pentahedrons - int aID0, k , aJ[3]; + int aID0, k , aJ[4]; vector aN; // SMDS_ElemIteratorPtr itf, aItNodes; @@ -673,7 +673,7 @@ void StdMeshers_Penta_3D::MakeVolumeMesh() int nbFaceNodes = pE0->NbNodes(); if(myCreateQuadratic) nbFaceNodes = nbFaceNodes/2; - if ( aN.size() < nbFaceNodes * 2 ) + if ( (int) aN.size() < nbFaceNodes * 2 ) aN.resize( nbFaceNodes * 2 ); // for ( k=0; kGetID(); aJ[k] = GetIndexOnLayer(aID0); if (!myErrorStatus->IsOK()) { - MESSAGE("StdMeshers_Penta_3D::MakeVolumeMesh"); + MESSAGE("StdMeshers_Penta_3D::MakeVolumeMesh pb"); return; } } @@ -805,7 +805,7 @@ void StdMeshers_Penta_3D::MakeMeshOnFxy1() aNbNodes = pE0->NbNodes(); if(myCreateQuadratic) aNbNodes = aNbNodes/2; - if ( aNodes1.size() < aNbNodes ) + if ( (int) aNodes1.size() < aNbNodes ) aNodes1.resize( aNbNodes ); // k = aNbNodes-1; // reverse a face @@ -818,7 +818,7 @@ void StdMeshers_Penta_3D::MakeMeshOnFxy1() aID0 = pNode->GetID(); aJ = GetIndexOnLayer(aID0); if (!myErrorStatus->IsOK()) { - MESSAGE("StdMeshers_Penta_3D::MakeMeshOnFxy1() "); + MESSAGE("StdMeshers_Penta_3D::MakeMeshOnFxy1() pb"); return; } // @@ -1222,7 +1222,7 @@ void StdMeshers_Penta_3D::MakeBlock() // 1.1 Base vertex V000 iNbE = aME.Extent(); if (iNbE!= NB_WALL_FACES ){ - MESSAGE("StdMeshers_Penta_3D::MakeBlock() "); + MESSAGE("StdMeshers_Penta_3D::MakeBlock() err"); myErrorStatus->myName=7; // too few edges are in base face aFTr myErrorStatus->myComment=SMESH_Comment("Not a quadrilateral face #") <GetMeshDS()->ShapeToIndex( aFTr )<<": "<myName=7; // too few edges meet in base vertex myErrorStatus->myComment=SMESH_Comment("3 edges must share vertex #") <GetMeshDS()->ShapeToIndex( aV000 )<<" but there are "<myName=8; // can not find reper V001 myErrorStatus->myComment=SMESH_Comment("Can't find opposite vertex for vertex #") <GetMeshDS()->ShapeToIndex( aV000 ); @@ -1366,7 +1366,7 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes, // find the other edges of theFace and orientation of e1 TopoDS_Edge e1, e2, eTop; - bool rev1, CumOri = false; + bool rev1 = false, CumOri = false; TopExp_Explorer exp( theFace, TopAbs_EDGE ); int nbEdges = 0; for ( ; exp.More(); exp.Next() ) { @@ -1475,7 +1475,7 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes, nVec.resize( vsize, nullNode ); loadedNodes.insert( nVec[ 0 ] = node ); } - if ( theIJNodes.size() != hsize ) { + if ( (int) theIJNodes.size() != hsize ) { MESSAGE( "Wrong node positions on theBaseEdge" ); return false; } @@ -1533,7 +1533,7 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes, const SMDS_MeshElement* face = 0; do { // look for a face by 2 nodes - face = SMESH_MeshEditor::FindFaceInSet( n1, n2, allFaces, foundFaces ); + face = SMESH_MeshAlgos::FindFaceInSet( n1, n2, allFaces, foundFaces ); if ( face ) { int nbFaceNodes = face->NbNodes(); if ( (!myCreateQuadratic && nbFaceNodes>4) || @@ -1861,8 +1861,6 @@ bool StdMeshers_Penta_3D::Evaluate(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape, MapShapeNbElems& aResMap) { - MESSAGE("StdMeshers_Penta_3D::Evaluate()"); - // find face contains only triangles vector < SMESH_subMesh * >meshFaces; TopTools_SequenceOfShape aFaces;