X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH%2FSMESH_MesherHelper.hxx;h=d48318877d2043cc7f96e8a7d11a37d8fe29e32b;hp=d4f54833ae574dacf157d599aa2f7d4ea926213c;hb=a11ec0f515b86d30e1617e522a2294d3320cb3c7;hpb=9d296302bce45a19ce73bcb52e86884ba38f1199 diff --git a/src/SMESH/SMESH_MesherHelper.hxx b/src/SMESH/SMESH_MesherHelper.hxx index d4f54833a..d48318877 100644 --- a/src/SMESH/SMESH_MesherHelper.hxx +++ b/src/SMESH/SMESH_MesherHelper.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2021 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 #include @@ -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 TLinkNodeMap; typedef std::map::iterator ItTLinkNode; @@ -92,7 +100,7 @@ class SMESH_EXPORT SMESH_MesherHelper * \brief Load nodes bound to face into a map of node columns * \param theParam2ColumnMap - map of node columns to fill * \param theFace - the face on which nodes are searched for - * \param theBaseSide - the edges holding nodes on which columns' bases + * \param theBaseSide - the edges holding nodes on which columns base * \param theMesh - the mesh containing nodes * \retval bool - false if something is wrong * @@ -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) @@ -335,13 +343,13 @@ public: /*! * Creates a node (!Note ID before u=0.,v0.) */ - SMDS_MeshNode* AddNode(double x, double y, double z, int ID = 0, double u=0., double v=0.); + SMDS_MeshNode* AddNode(double x, double y, double z, smIdType ID = 0, double u=0., double v=0.); /*! * Creates quadratic or linear edge */ SMDS_MeshEdge* AddEdge(const SMDS_MeshNode* n1, const SMDS_MeshNode* n2, - const int id = 0, + const smIdType id = 0, const bool force3d = true); /*! * Creates quadratic or linear triangle @@ -349,7 +357,7 @@ public: SMDS_MeshFace* AddFace(const SMDS_MeshNode* n1, const SMDS_MeshNode* n2, const SMDS_MeshNode* n3, - const int id=0, + const smIdType id=0, const bool force3d = false); /*! * Creates bi-quadratic, quadratic or linear quadrangle @@ -358,13 +366,13 @@ public: const SMDS_MeshNode* n2, const SMDS_MeshNode* n3, const SMDS_MeshNode* n4, - const int id = 0, + const smIdType id = 0, const bool force3d = false); /*! * Creates polygon, with additional nodes in quadratic mesh */ SMDS_MeshFace* AddPolygonalFace (const std::vector& nodes, - const int id = 0, + const smIdType id = 0, const bool force3d = false); /*! * Creates quadratic or linear tetrahedron @@ -373,7 +381,7 @@ public: const SMDS_MeshNode* n2, const SMDS_MeshNode* n3, const SMDS_MeshNode* n4, - const int id = 0, + const smIdType id = 0, const bool force3d = true); /*! * Creates quadratic or linear pyramid @@ -383,7 +391,7 @@ public: const SMDS_MeshNode* n3, const SMDS_MeshNode* n4, const SMDS_MeshNode* n5, - const int id = 0, + const smIdType id = 0, const bool force3d = true); /*! * Creates quadratic or linear pentahedron @@ -394,7 +402,7 @@ public: const SMDS_MeshNode* n4, const SMDS_MeshNode* n5, const SMDS_MeshNode* n6, - const int id = 0, + const smIdType id = 0, const bool force3d = true); /*! * Creates bi-quadratic, quadratic or linear hexahedron @@ -407,7 +415,7 @@ public: const SMDS_MeshNode* n6, const SMDS_MeshNode* n7, const SMDS_MeshNode* n8, - const int id = 0, + const smIdType id = 0, bool force3d = true); /*! @@ -425,7 +433,7 @@ public: const SMDS_MeshNode* n10, const SMDS_MeshNode* n11, const SMDS_MeshNode* n12, - const int id = 0, + const smIdType id = 0, bool force3d = true); /*! @@ -433,7 +441,7 @@ public: */ SMDS_MeshVolume* AddPolyhedralVolume (const std::vector& nodes, const std::vector& quantities, - const int ID=0, + const smIdType ID=0, const bool force3d = true); /*! * \brief Enables fixing node parameters on EDGEs and FACEs by @@ -502,7 +510,7 @@ public: /*! * \brief Define a pointer to wrapper over a function of gp_XY class, * suitable to pass as xyFunPtr to ApplyIn2D(). - * For exaple gp_XY_FunPtr(Added) defines pointer gp_XY_Added to function + * For example gp_XY_FunPtr(Added) defines pointer gp_XY_Added to function * calling gp_XY::Added(gp_XY), which is to be used like following * ApplyIn2D(surf, uv1, uv2, gp_XY_Added) */ @@ -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 */ @@ -741,7 +753,7 @@ public: SMESH_MesherHelper (const SMESH_MesherHelper& theOther); // key of a map of bi-quadratic face to it's central node - struct TBiQuad: public std::pair > + struct TBiQuad: public std::pair > { TBiQuad(const SMDS_MeshNode* n1, const SMDS_MeshNode* n2,