Salome HOME
Fix Body Fitting regression on smesh/imps_11/M3
[modules/smesh.git] / src / StdMeshers / StdMeshers_ProjectionUtils.cxx
index 11f2b5e973f04b3282b2b5f897173f9d2aa5bbd3..1158993db46792c3ca21fbbabc917ab0d91f0e18 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019  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
@@ -20,7 +20,7 @@
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
-//  SMESH SMESH : idl implementation based on 'SMESH' unit's calsses
+//  SMESH SMESH : idl implementation based on 'SMESH' unit's classes
 // File      : StdMeshers_ProjectionUtils.cxx
 // Created   : Fri Oct 27 10:24:28 2006
 // Author    : Edward AGAPOV (eap)
@@ -37,6 +37,7 @@
 #include "SMESH_Hypothesis.hxx"
 #include "SMESH_Mesh.hxx"
 #include "SMESH_MeshAlgos.hxx"
+#include "SMESH_MeshEditor.hxx"
 #include "SMESH_MesherHelper.hxx"
 #include "SMESH_subMesh.hxx"
 #include "SMESH_subMeshEventListener.hxx"
@@ -479,7 +480,7 @@ namespace {
   }
 
   /*!
-   * \brief Convertor used in Delaunay constructor
+   * \brief Converter used in Delaunay constructor
    */
   struct SideVector2UVPtStructVec
   {
@@ -701,7 +702,7 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
           RETURN_BAD_RESULT("edge2 does not belong to theShape2");
       }
       //
-      // Look for 2 corresponing faces:
+      // Look for 2 corresponding faces:
       //
       TopoDS_Shape F1, F2;
 
@@ -1253,7 +1254,7 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
     const TopoDS_Shape& v1 = vMap1(i);
     if ( vMap2.Contains( v1 ))
     {
-      // find an egde sharing v1 and sharing at the same time another common vertex
+      // find an edge sharing v1 and sharing at the same time another common vertex
       PShapeIteratorPtr edgeIt = SMESH_MesherHelper::GetAncestors( v1, *theMesh1, TopAbs_EDGE);
       bool edgeFound = false;
       while ( edgeIt->more() && !edgeFound )
@@ -2209,8 +2210,7 @@ FindMatchingNodesOnFaces( const TopoDS_Face&     face1,
       SMDS_NodeIteratorPtr nIt = edgeSM->GetNodes();
       while ( nIt->more() ) {
         const SMDS_MeshNode* node = nIt->next();
-        const SMDS_EdgePosition* pos =
-          static_cast<const SMDS_EdgePosition*>(node->GetPosition());
+        SMDS_EdgePositionPtr pos = node->GetPosition();
         pos2nodes.insert( make_pair( pos->GetUParameter(), node ));
       }
       if ((int) pos2nodes.size() != edgeSM->NbNodes() )
@@ -2886,7 +2886,6 @@ namespace StdMeshers_ProjectionUtils
 
     double bc[3]; // barycentric coordinates
     int    nodeIDs[3]; // nodes of a delaunay triangle
-    const SMDS_FacePosition* pos;
 
     _delaunay.InitTraversal( nbSrcNodes );
 
@@ -2904,8 +2903,8 @@ namespace StdMeshers_ProjectionUtils
       tgtNode = n2n->second;
       tgtMesh->MoveNode( tgtNode, xyz.X(), xyz.Y(), xyz.Z() );
 
-      if (( pos = dynamic_cast< const SMDS_FacePosition* >( tgtNode->GetPosition() )))
-        const_cast<SMDS_FacePosition*>( pos )->SetParameters( uvNew.X(), uvNew.Y() );
+      if ( SMDS_FacePositionPtr pos = tgtNode->GetPosition() )
+        pos->SetParameters( uvNew.X(), uvNew.Y() );
 
       --nbSrcNodes;
     }