Salome HOME
Merge branch 'master' into gni/adaptation
[modules/smesh.git] / src / StdMeshers / StdMeshers_Prism_3D.cxx
index b35e76ae357ce433a4196246835d0aa49dbcf82b..2cc5ae67a0fa3154f571a54ff9fc87c06287b67c 100644 (file)
@@ -595,7 +595,7 @@ namespace
   //================================================================================
 
   int countNbSides( const Prism_3D::TPrismTopo & thePrism,
-                    vector<int> &                nbUnitePerEdge,
+                    vector<int> &                /*nbUnitePerEdge*/,
                     vector< double > &           edgeLength)
   {
     int nbEdges = thePrism.myNbEdgesInWires.front();  // nb outer edges
@@ -718,6 +718,8 @@ namespace
       cout << "mesh.AddNode( " << p[i].X() << ", "<< p[i].Y() << ", "<< p[i].Z() << ") # " << i <<" " ;
       SMESH_Block::DumpShapeID( i, cout ) << endl;
     }
+#else
+    (void)p; // unused in release mode
 #endif
   }
 
@@ -760,8 +762,8 @@ StdMeshers_Prism_3D::~StdMeshers_Prism_3D()
 //purpose  :
 //=======================================================================
 
-bool StdMeshers_Prism_3D::CheckHypothesis(SMESH_Mesh&                          aMesh,
-                                          const TopoDS_Shape&                  aShape,
+bool StdMeshers_Prism_3D::CheckHypothesis(SMESH_Mesh&                          /*aMesh*/,
+                                          const TopoDS_Shape&                  /*aShape*/,
                                           SMESH_Hypothesis::Hypothesis_Status& aStatus)
 {
   // no hypothesis
@@ -984,7 +986,7 @@ bool StdMeshers_Prism_3D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape& theSh
                 }
                 else
                 {
-                  meshedFaces.push_back( prism.myBottom );
+                  suspectSourceFaces.push_back( prism.myBottom );
                   if ( prism.myAlgoSM && prism.myAlgoSM->GetAlgo() )
                     meshedFace2AlgoSM.Bind( prism.myBottom, prism.myAlgoSM );
                 }
@@ -1151,7 +1153,7 @@ bool StdMeshers_Prism_3D::getWallFaces( Prism_3D::TPrismTopo & thePrism,
           if ( !quadList.back() )
             return toSM( error(TCom("Side face #") << shapeID( face )
                                << " not meshable with quadrangles"));
-          bool isCompositeBase = ! setBottomEdge( *edge, quadList.back(), face );
+          bool isCompositeBase = ! setBottomEdge( *edge, quadList.back(), face ); // -> orient CCW
           if ( isCompositeBase )
           {
             // it's OK if all EDGEs of the bottom side belongs to the bottom FACE
@@ -1839,6 +1841,8 @@ bool StdMeshers_Prism_3D::computeWalls(const Prism_3D::TPrismTopo& thePrism)
           mesh->GetSubMesh( v )->ComputeStateEngine( SMESH_subMesh::COMPUTE );
           const SMDS_MeshNode* n = SMESH_Algo::VertexNode( v, meshDS );
           newNodes[ is2ndV ? newNodes.size()-1 : 0 ] = (SMDS_MeshNode*) n;
+          if ( !n )
+            return toSM( error( TCom("No node on vertex #") << meshDS->ShapeToIndex( v )));
         }
 
         // compute nodes on target EDGEs
@@ -2425,10 +2429,11 @@ bool StdMeshers_Prism_3D::assocOrProjBottom2Top( const gp_Trsf & bottomToTopTrsf
         {
           for ( int iE = 0; iE < botSide->NbEdges(); ++iE )
           {
+            // sides are CWW oriented
             NSProjUtils::InsertAssociation( botSide->Edge( iE ),
                                             topSide->Edge( iE ), shape2ShapeMap );
-            NSProjUtils::InsertAssociation( myHelper->IthVertex( 0, botSide->Edge( iE )),
-                                            myHelper->IthVertex( 0, topSide->Edge( iE )),
+            NSProjUtils::InsertAssociation( botSide->FirstVertex( iE ),
+                                            topSide->LastVertex ( iE ),
                                             shape2ShapeMap );
           }
         }
@@ -2911,7 +2916,7 @@ bool StdMeshers_Prism_3D::project2dMesh(const TopoDS_Face& theSrcFace,
  */
 //================================================================================
 
-bool StdMeshers_Prism_3D::setFaceAndEdgesXYZ( const int faceID, const gp_XYZ& params, int z )
+bool StdMeshers_Prism_3D::setFaceAndEdgesXYZ( const int faceID, const gp_XYZ& params, int /*z*/ )
 {
   // find base and top edges of the face
   enum { BASE = 0, TOP, LEFT, RIGHT };
@@ -4373,7 +4378,9 @@ void StdMeshers_PrismAsBlock::faceGridToPythonDump(const SMESH_Block::TShapeID f
            << n << ", " << n+1 << ", "
            << n+nb+2 << ", " << n+nb+1 << "]) " << endl;
     }
-
+#else
+  (void)face; // unused in release mode
+  (void)nb;   // unused in release mode
 #endif
 }
 
@@ -4993,6 +5000,8 @@ void StdMeshers_PrismAsBlock::TSideFace::dumpNodes(int nbNodes) const
   TVerticalEdgeAdaptor* vSide1 = (TVerticalEdgeAdaptor*) VertiCurve(1);
   cout << "Verti side 1: "; vSide1->dumpNodes(nbNodes); cout << endl;
   delete hSize0; delete hSize1; delete vSide0; delete vSide1;
+#else
+  (void)nbNodes; // unused in release mode
 #endif
 }
 
@@ -5039,6 +5048,8 @@ void StdMeshers_PrismAsBlock::TVerticalEdgeAdaptor::dumpNodes(int nbNodes) const
     cout << (*myNodeColumn)[i]->GetID() << " ";
   if ( nbNodes < (int) myNodeColumn->size() )
     cout << myNodeColumn->back()->GetID();
+#else
+  (void)nbNodes; // unused in release mode
 #endif
 }
 
@@ -5097,6 +5108,8 @@ void StdMeshers_PrismAsBlock::THorizontalEdgeAdaptor::dumpNodes(int nbNodes) con
   side->GetColumns( u , col, col2 );
   if ( n != col->second[ i ] )
     cout << col->second[ i ]->GetID();
+#else
+  (void)nbNodes; // unused in release mode
 #endif
 }