#include <Geom2d_Curve.hxx>
#include <TopExp.hxx>
+#include "SMESH_StdMeshers.hxx"
+#include "SMESH_Algo.hxx"
+
#include <vector>
#include <list>
#include <boost/shared_ptr.hpp>
class Adaptor3d_Curve;
class BRepAdaptor_CompCurve;
class TopoDS_Face;
+class SMESH_ComputeError;
typedef struct uvPtStruct
{
class StdMeshers_FaceSide;
typedef boost::shared_ptr< StdMeshers_FaceSide > StdMeshers_FaceSidePtr;
typedef boost::shared_ptr< uvPtStruct > UVPtStructPtr;
+typedef std::vector< StdMeshers_FaceSidePtr > TSideVector;
+typedef boost::shared_ptr< SMESH_ComputeError > TError;
//================================================================================
/*!
*/
//================================================================================
-class StdMeshers_FaceSide
+class STDMESHERS_EXPORT StdMeshers_FaceSide
{
public:
/*!
* \brief Wrap several edges. Edges must be properly ordered and oriented.
*/
StdMeshers_FaceSide(const TopoDS_Face& theFace,
- list<TopoDS_Edge>& theEdges,
+ std::list<TopoDS_Edge>& theEdges,
SMESH_Mesh* theMesh,
const bool theIsForward,
const bool theIgnoreMediumNodes);
+
+ /*!
+ * \brief Return wires of a face as StdMeshers_FaceSide's
+ */
+ static TSideVector GetFaceWires(const TopoDS_Face& theFace,
+ SMESH_Mesh & theMesh,
+ const bool theIgnoreMediumNodes,
+ TError & theError);
+
/*!
* \brief Change orientation of side geometry
*/
*
* Missing nodes are allowed only on internal vertices
*/
- const vector<UVPtStruct>& GetUVPtStruct(bool isXConst, double constValue) const;
+ const std::vector<UVPtStruct>& GetUVPtStruct(bool isXConst =0, double constValue =0) const;
/*!
* \brief Simulates detailed data on nodes
* \param isXConst - true if normalized parameter X is constant
* \param constValue - constant parameter value
*/
- const vector<UVPtStruct>& SimulateUVPtStruct(int nbSeg,
- bool isXConst,
- double constValue) const;
+ const std::vector<UVPtStruct>& SimulateUVPtStruct(int nbSeg,
+ bool isXConst = 0,
+ double constValue = 0) const;
/*!
* \brief Return edge and parameter on edge by normalized parameter
*/
protected:
- vector<uvPtStruct> myPoints, myFalsePoints;
- vector<TopoDS_Edge> myEdge;
- vector<Handle(Geom2d_Curve)> myC2d;
- vector<double> myFirst, myLast;
- vector<double> myNormPar;
- double myLength;
- int myNbPonits, myNbSegments;
- SMESH_Mesh* myMesh;
- bool myMissingVertexNodes, myIgnoreMediumNodes;
+ std::vector<uvPtStruct> myPoints, myFalsePoints;
+ std::vector<TopoDS_Edge> myEdge;
+ std::vector<Handle(Geom2d_Curve)> myC2d;
+ std::vector<double> myFirst, myLast;
+ std::vector<double> myNormPar;
+ double myLength;
+ int myNbPonits, myNbSegments;
+ SMESH_Mesh* myMesh;
+ bool myMissingVertexNodes, myIgnoreMediumNodes;
};