Go to the documentation of this file.
28 #ifndef StdMeshers_FaceSide_HeaderFile
29 #define StdMeshers_FaceSide_HeaderFile
31 #include <gp_Pnt2d.hxx>
32 #include <TopoDS_Edge.hxx>
33 #include <TopoDS_Vertex.hxx>
34 #include <Geom2d_Curve.hxx>
42 #include <boost/shared_ptr.hpp>
48 class BRepAdaptor_CompCurve;
68 typedef boost::shared_ptr< SMESH_ComputeError >
TError;
84 const TopoDS_Edge& theEdge,
86 const bool theIsForward,
87 const bool theIgnoreMediumNodes);
92 std::list<TopoDS_Edge>& theEdges,
94 const bool theIsForward,
95 const bool theIgnoreMediumNodes);
100 const gp_Pnt2d thePnt2d,
105 static TSideVector GetFaceWires(
const TopoDS_Face& theFace,
107 const bool theIgnoreMediumNodes,
137 const std::vector<UVPtStruct>& GetUVPtStruct(
bool isXConst =0,
double constValue =0)
const;
143 const std::vector<UVPtStruct>& SimulateUVPtStruct(
int nbSeg,
145 double constValue = 0)
const;
149 inline double Parameter(
double U, TopoDS_Edge & edge)
const;
153 gp_Pnt2d Value2d(
double U)
const;
161 BRepAdaptor_CompCurve* GetCurve3d()
const;
169 const TopoDS_Edge&
Edge(
int i)
const {
return myEdge[i]; }
173 inline TopoDS_Vertex FirstVertex(
int i=0)
const;
177 inline TopoDS_Vertex LastVertex(
int i=-1)
const;
181 inline double FirstParameter(
int i)
const;
185 inline double LastParameter(
int i)
const;
189 double Length()
const {
return myLength; }
193 inline int EdgeIndex(
double U )
const;
197 void dump(
const char* msg=0)
const;
225 while ( i > 0 && U <
myNormPar[ i-1 ] ) --i;
242 double r = ( U - prevU )/ (
myNormPar[ i ] - prevU );
254 return i <
myEdge.size() ? TopExp::FirstVertex(
myEdge[i], 1 ) : TopoDS_Vertex();
265 return i<0 ? TopExp::LastVertex(
myEdge.back(), 1) : i<
myEdge.size() ? TopExp::LastVertex(
myEdge[i], 1 ) : TopoDS_Vertex();
class Handle(MeshVS_DataSource3D)
const TopoDS_Edge & Edge(int i) const
Return i-th wrapped edge (count starts from zero)
TopoDS_Vertex LastVertex(int i=-1) const
Return last vertex of the i-the edge (count starts from zero)
double Parameter(double U, TopoDS_Edge &edge) const
Return edge and parameter on edge by normalized parameter.
bool myMissingVertexNodes
double Length() const
Return side length.
boost::shared_ptr< StdMeshers_FaceSide > StdMeshers_FaceSidePtr
std::vector< uvPtStruct > myPoints
std::vector< StdMeshers_FaceSidePtr > TSideVector
double FirstParameter(int i) const
Return first normalized parameter of the i-the edge (count starts from zero)
Represents a side of a quasi quadrilateral face. It can be composed of several edges....
const SMDS_MeshNode * node
double LastParameter(int i) const
Return ast normalized parameter of the i-the edge (count starts from zero)
bool MissVertexNode() const
Return true if there vertices without nodes.
int EdgeIndex(double U) const
Return edge index corresponding to normalized parameter.
struct uvPtStruct UVPtStruct
boost::shared_ptr< uvPtStruct > UVPtStructPtr
boost::shared_ptr< SMESH_ComputeError > TError
Contains algorithm and description of occured error.
int NbPoints() const
Return nb nodes on edges and vertices (+1 to be == GetUVPtStruct().size() )
#define STDMESHERS_EXPORT
std::vector< Handle(Geom2d_Curve)> myC2d
TopoDS_Vertex FirstVertex(int i=0) const
Return 1st vertex of the i-the edge (count starts from zero)
SMESH_Mesh * GetMesh() const
Return mesh.
int NbEdges() const
Return nb of wrapped edges.
std::vector< double > myFirst
int NbSegments() const
Return nb edges.
std::vector< TopoDS_Edge > myEdge
std::vector< double > myLast
std::vector< double > myNormPar