Salome HOME
21397: EDF SMESH: a quadrangle face mesh can't be projected to a cylinder
authoreap <eap@opencascade.com>
Thu, 10 Jan 2013 11:26:34 +0000 (11:26 +0000)
committereap <eap@opencascade.com>
Thu, 10 Jan 2013 11:26:34 +0000 (11:26 +0000)
   bool Load (SMESH_Mesh*        theMesh,
              const TopoDS_Face& theFace,
              bool               theProject = false,
+             TopoDS_Vertex      the1stVertex=TopoDS_Vertex());

src/SMESH/SMESH_Pattern.cxx
src/SMESH/SMESH_Pattern.hxx

index cc493ca3439cfed759fbb3153f1a8a1518d2ecb1..a2bb1aa00bf8ac082d4718f68e61178af9acb028 100644 (file)
@@ -514,7 +514,8 @@ static bool isMeshBoundToShape(SMESHDS_Mesh *     aMeshDS,
 
 bool SMESH_Pattern::Load (SMESH_Mesh*        theMesh,
                           const TopoDS_Face& theFace,
-                          bool               theProject)
+                          bool               theProject,
+                          TopoDS_Vertex      the1stVertex)
 {
   MESSAGE(" ::Load(face) " );
   Clear();
@@ -538,10 +539,9 @@ bool SMESH_Pattern::Load (SMESH_Mesh*        theMesh,
 
   // check if face is closed
   bool isClosed = helper.HasSeam();
-  TopoDS_Vertex bidon;
   list<TopoDS_Edge> eList;
   list<TopoDS_Edge>::iterator elIt;
-  SMESH_Block::GetOrderedEdges( face, bidon, eList, myNbKeyPntInBoundary );
+  SMESH_Block::GetOrderedEdges( face, the1stVertex, eList, myNbKeyPntInBoundary );
 
   // check that requested or needed projection is possible
   bool isMainShape = theMesh->IsMainShape( face );
index 2ba7666aa93790ec1e1ede12ab847505970bba24..272e7bef537a83aaeea9e2d1444025f183e4b73b 100644 (file)
@@ -35,7 +35,7 @@
 #include <set>
 #include <iostream>
 
-#include <TopoDS_Shape.hxx>
+#include <TopoDS_Vertex.hxx>
 #include <TopTools_IndexedMapOfOrientedShape.hxx>
 #include <gp_XYZ.hxx>
 #include <gp_XY.hxx>
@@ -48,7 +48,6 @@ class SMDS_MeshNode;
 class SMESH_Mesh;
 class SMESHDS_SubMesh;
 class TopoDS_Shell;
-class TopoDS_Vertex;
 class TopoDS_Face;
 class TopoDS_Edge;
 
@@ -71,7 +70,8 @@ class SMESH_EXPORT SMESH_Pattern {
 
   bool Load (SMESH_Mesh*        theMesh,
              const TopoDS_Face& theFace,
-             bool               theProject = false);
+             bool               theProject = false,
+             TopoDS_Vertex      the1stVertex=TopoDS_Vertex());
   // Create a pattern from the mesh built on <theFace>.
   // <theProject>==true makes override nodes positions
   // on <theFace> computed by mesher