Salome HOME
IPAL54425: Quadrangle mapping fails on a quadrangle face with a seam
[modules/smesh.git] / src / SMESH / SMESH_MesherHelper.hxx
index d4f54833ae574dacf157d599aa2f7d4ea926213c..e0a4eb7aae6dc6c56a2ff2a689aa93101a4dae10 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
@@ -29,7 +29,8 @@
 
 #include "SMESH_SMESH.hxx"
 
-#include "SMESH_MeshEditor.hxx" // needed for many meshers
+#include "SMESH_ComputeError.hxx"
+#include "SMESH_TypeDefs.hxx"
 
 #include <Geom_Surface.hxx>
 #include <ShapeAnalysis_Surface.hxx>
@@ -44,8 +45,15 @@ class GeomAPI_ProjectPointOnCurve;
 class GeomAPI_ProjectPointOnSurf;
 class SMDS_MeshNode;
 class SMESHDS_Hypothesis;
+class SMESHDS_Mesh;
+class SMESHDS_SubMesh;
 class SMESH_Gen;
+class SMESH_Mesh;
 class SMESH_ProxyMesh;
+class SMESH_subMesh;
+class TopoDS_Edge;
+class TopoDS_Face;
+class TopoDS_Vertex;
 
 typedef std::map<SMESH_TLink, const SMDS_MeshNode*>           TLinkNodeMap;
 typedef std::map<SMESH_TLink, const SMDS_MeshNode*>::iterator ItTLinkNode;
@@ -300,7 +308,7 @@ public:
 
   /*!
    * \brief To set created elements on the shape set by IsQuadraticSubMesh()
-   *        or the next methods. By defaul elements are set on the shape if
+   *        or the next methods. By default elements are set on the shape if
    *        a mesh has no shape to be meshed
    */
   bool SetElementsOnShape(bool toSet)
@@ -539,7 +547,7 @@ public:
   bool GetNodeUVneedInFaceNode(const TopoDS_Face& F = TopoDS_Face()) const;
 
   /*!
-   * \brief Return projector intitialized by given face without location, which is returned
+   * \brief Return projector initialized by given face without location, which is returned
    */
   GeomAPI_ProjectPointOnSurf& GetProjector(const TopoDS_Face& F,
                                            TopLoc_Location&   loc,
@@ -577,7 +585,7 @@ public:
     * \retval bool - true if subShape is a seam shape
     *
     * It works only if IsQuadraticSubMesh() or SetSubShape() has been called.
-    * Seam shape has two 2D alternative represenations on the face
+    * Seam shape has two 2D alternative representations on the face
    */
   bool IsSeamShape(const int subShape) const
   { return mySeamShapeIds.find( subShape ) != mySeamShapeIds.end(); }
@@ -587,7 +595,7 @@ public:
     * \retval bool - true if subShape is a seam shape
     *
     * It works only if IsQuadraticSubMesh() or SetSubShape() has been called.
-    * Seam shape has two 2D alternative represenations on the face
+    * Seam shape has two 2D alternative representations on the face
    */
   bool IsSeamShape(const TopoDS_Shape& subShape) const
   { return IsSeamShape( ShapeToIndex( subShape )); }
@@ -627,6 +635,10 @@ public:
    *  \retval int - 1 for U, 2 for V direction
    */
   int GetPeriodicIndex() const { return myParIndex; }
+  /*!
+   * \brief Return period in given direction [1,2]
+   */
+  double GetPeriod(int perioIndex) const { return myPar2[ perioIndex-1 ] - myPar1[ perioIndex-1 ]; }
   /*!
    * \brief Return an alternative parameter for a node on seam
    */