X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_FaceSide.hxx;h=485081af0e6a2aacf7c0fd217c05b0dd57d996d1;hp=9ef5960fb9ddb0687056fd5f5b50157d939e7250;hb=0e017d4c87d670c01e72c0b4858ffcb9e47aa9ba;hpb=b0a908c0d20341651771d0249fb10882f54b2aad diff --git a/src/StdMeshers/StdMeshers_FaceSide.hxx b/src/StdMeshers/StdMeshers_FaceSide.hxx index 9ef5960fb..485081af0 100644 --- a/src/StdMeshers/StdMeshers_FaceSide.hxx +++ b/src/StdMeshers/StdMeshers_FaceSide.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 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 @@ -141,7 +141,8 @@ public: SMESH_Mesh & theMesh, const bool theIgnoreMediumNodes, TError & theError, - SMESH_ProxyMesh::Ptr theProxyMesh = SMESH_ProxyMesh::Ptr()); + SMESH_ProxyMesh::Ptr theProxyMesh = SMESH_ProxyMesh::Ptr(), + const bool theCheckVertexNodes=true); /*! * \brief Change orientation of side geometry */ @@ -190,10 +191,27 @@ public: bool isXConst = 0, double constValue = 0) const; /*! - * \brief Return nodes in the order they encounter while walking along the side. + * \brief Return nodes in the order they encounter while walking along + * the while side or a specified EDGE. * For a closed side, the 1st point repeats at end */ - std::vector GetOrderedNodes() const; + std::vector GetOrderedNodes(int iE=-1) const; + + /*! + * \brief Return nodes of the i-th EDGE. + * Nodes moved to other geometry by MergeNodes() are also returned. + * \retval bool - is OK + */ + bool GetEdgeNodes(const size_t i, + std::vector& nodes, + bool inlude1stVertex=true, + bool inludeLastVertex=true) const; + + /*! + * \brief Return a node from the i-th VERTEX (count starts from zero) + * Nodes moved to other geometry by MergeNodes() are also returned. + */ + const SMDS_MeshNode* VertexNode(std::size_t i, bool* isMoved = 0) const; /*! * \brief Return edge and parameter on edge by normalized parameter @@ -220,7 +238,7 @@ public: */ int NbEdges() const { return myEdge.size(); } /*! - * \brief Return i-th wrapped edge (count starts from zero) + * \brief Return i-th edge (count starts from zero) */ const TopoDS_Edge& Edge(int i) const { return myEdge[i]; } /*! @@ -228,13 +246,17 @@ public: */ const std::vector& Edges() const { return myEdge; } /*! - * \brief Return 1st vertex of the i-the edge (count starts from zero) + * \brief Return 1st vertex of the i-th edge (count starts from zero) */ TopoDS_Vertex FirstVertex(int i=0) const; /*! - * \brief Return last vertex of the i-the edge (count starts from zero) + * \brief Return last vertex of the i-th edge (count starts from zero) */ TopoDS_Vertex LastVertex(int i=-1) const; + /*! + * \brief Return \c true if the chain of EDGEs is closed + */ + bool IsClosed() const; /*! * \brief Return side length */ @@ -257,20 +279,20 @@ public: */ inline Handle(Geom2d_Curve) Curve2d(int i) const; /*! - * \brief Return first normalized parameter of the i-the edge (count starts from zero) + * \brief Return first normalized parameter of the i-th edge (count starts from zero) */ inline double FirstParameter(int i) const; /*! - * \brief Return last normalized parameter of the i-the edge (count starts from zero) + * \brief Return last normalized parameter of the i-th edge (count starts from zero) */ inline double LastParameter(int i) const; /*! - * \brief Return first parameter of the i-the edge (count starts from zero). + * \brief Return first parameter of the i-th edge (count starts from zero). * EDGE orientation is taken into account */ inline double FirstU(int i) const; /*! - * \brief Return last parameter of the i-the edge (count starts from zero). + * \brief Return last parameter of the i-th edge (count starts from zero). * EDGE orientation is taken into account */ inline double LastU(int i) const; @@ -288,6 +310,7 @@ protected: void reverseProxySubmesh( const TopoDS_Edge& E ); // DON't FORGET to update Reverse() when adding one more vector! + TopoDS_Face myFace; std::vector myPoints, myFalsePoints; std::vector myEdge; std::vector myEdgeID; @@ -339,7 +362,7 @@ inline double StdMeshers_FaceSide::Parameter(double U, TopoDS_Edge & edge) const //================================================================================ /*! - * \brief Return first normalized parameter of the i-the edge + * \brief Return first normalized parameter of the i-th edge */ //================================================================================ @@ -350,7 +373,7 @@ inline double StdMeshers_FaceSide::FirstParameter(int i) const //================================================================================ /*! - * \brief Return ast normalized parameter of the i-the edge + * \brief Return ast normalized parameter of the i-th edge */ //================================================================================ @@ -361,7 +384,7 @@ inline double StdMeshers_FaceSide::LastParameter(int i) const //================================================================================ /*! - * \brief Return first parameter of the i-the edge + * \brief Return first parameter of the i-th edge */ //================================================================================ @@ -372,7 +395,7 @@ inline double StdMeshers_FaceSide::FirstU(int i) const //================================================================================ /*! - * \brief Return last parameter of the i-the edge + * \brief Return last parameter of the i-th edge */ //================================================================================