// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _BRepFill_Filling_HeaderFile #define _BRepFill_Filling_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _GeomPlate_BuildPlateSurface_HeaderFile #include #endif #ifndef _BRepFill_SequenceOfEdgeFaceAndOrder_HeaderFile #include #endif #ifndef _BRepFill_SequenceOfFaceAndOrder_HeaderFile #include #endif #ifndef _GeomPlate_SequenceOfPointConstraint_HeaderFile #include #endif #ifndef _TopoDS_Face_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _GeomAbs_Shape_HeaderFile #include #endif class StdFail_NotDone; class Standard_OutOfRange; class Standard_ConstructionError; class TopoDS_Face; class TopoDS_Edge; class gp_Pnt; class BRepFill_SequenceOfEdgeFaceAndOrder; class TopTools_MapOfShape; class TColgp_SequenceOfPnt; //! N-Side Filling
//! This algorithm avoids to build a face from:
//! * a set of edges defining the bounds of the face and some
//! constraints the surface support has to satisfy
//! * a set of edges and points defining some constraints
//! the support surface has to satisfy
//! * an initial surface to deform for satisfying the constraints
//! * a set of parameters to control the constraints.
class BRepFill_Filling { public: void* operator new(size_t,void* anAddress) { return anAddress; } void* operator new(size_t size) { return Standard::Allocate(size); } void operator delete(void *anAddress) { if (anAddress) Standard::Free((Standard_Address&)anAddress); } //! Constructor
Standard_EXPORT BRepFill_Filling(const Standard_Integer Degree = 3,const Standard_Integer NbPtsOnCur = 15,const Standard_Integer NbIter = 2,const Standard_Boolean Anisotropie = Standard_False,const Standard_Real Tol2d = 0.00001,const Standard_Real Tol3d = 0.0001,const Standard_Real TolAng = 0.01,const Standard_Real TolCurv = 0.1,const Standard_Integer MaxDeg = 8,const Standard_Integer MaxSegments = 9); //! Sets the values of Tolerances used to control the constraint.
//! Tol2d:
//! Tol3d: it is the maximum distance allowed between the support surface
//! and the constraints
//! TolAng: it is the maximum angle allowed between the normal of the surface
//! and the constraints
//! TolCurv: it is the maximum difference of curvature allowed between
//! the surface and the constraint
Standard_EXPORT void SetConstrParam(const Standard_Real Tol2d = 0.00001,const Standard_Real Tol3d = 0.0001,const Standard_Real TolAng = 0.01,const Standard_Real TolCurv = 0.1) ; //! Sets the parameters used for resolution.
//! The default values of these parameters have been chosen for a good
//! ratio quality/performance.
//! Degree: it is the order of energy criterion to minimize for computing
//! the deformation of the surface.
//! The default value is 3
//! The recommanded value is i+2 where i is the maximum order of the
//! constraints.
//! NbPtsOnCur: it is the average number of points for discretisation
//! of the edges.
//! NbIter: it is the maximum number of iterations of the process.
//! For each iteration the number of discretisation points is
//! increased.
//! Anisotropie:
Standard_EXPORT void SetResolParam(const Standard_Integer Degree = 3,const Standard_Integer NbPtsOnCur = 15,const Standard_Integer NbIter = 2,const Standard_Boolean Anisotropie = Standard_False) ; //! Sets the parameters used for approximation of the surface
Standard_EXPORT void SetApproxParam(const Standard_Integer MaxDeg = 8,const Standard_Integer MaxSegments = 9) ; //! Loads the initial Surface
Standard_EXPORT void LoadInitSurface(const TopoDS_Face& aFace) ; //! Adds a new constraint which also defines an edge of the wire
//! of the face
//! Order: Order of the constraint:
//! GeomAbs_C0 : the surface has to pass by 3D representation
//! of the edge
//! GeomAbs_G1 : the surface has to pass by 3D representation
//! of the edge and to respect tangency with the first
//! face of the edge
//! GeomAbs_G2 : the surface has to pass by 3D representation
//! of the edge and to respect tangency and curvature
//! with the first face of the edge.
Standard_EXPORT Standard_Integer Add(const TopoDS_Edge& anEdge,const GeomAbs_Shape Order,const Standard_Boolean IsBound = Standard_True) ; //! Adds a new constraint which also defines an edge of the wire
//! of the face
//! Order: Order of the constraint:
//! GeomAbs_C0 : the surface has to pass by 3D representation
//! of the edge
//! GeomAbs_G1 : the surface has to pass by 3D representation
//! of the edge and to respect tangency with the
//! given face
//! GeomAbs_G2 : the surface has to pass by 3D representation
//! of the edge and to respect tangency and curvature
//! with the given face.
Standard_EXPORT Standard_Integer Add(const TopoDS_Edge& anEdge,const TopoDS_Face& Support,const GeomAbs_Shape Order,const Standard_Boolean IsBound = Standard_True) ; //! Adds a free constraint on a face. The corresponding edge has to
//! be automatically recomputed.
//! It is always a bound.
Standard_EXPORT Standard_Integer Add(const TopoDS_Face& Support,const GeomAbs_Shape Order) ; //! Adds a punctual constraint
Standard_EXPORT Standard_Integer Add(const gp_Pnt& Point) ; //! Adds a punctual constraint.
Standard_EXPORT Standard_Integer Add(const Standard_Real U,const Standard_Real V,const TopoDS_Face& Support,const GeomAbs_Shape Order) ; //! Builds the resulting faces
Standard_EXPORT void Build() ; Standard_EXPORT Standard_Boolean IsDone() const; Standard_EXPORT TopoDS_Face Face() const; Standard_EXPORT Standard_Real G0Error() const; Standard_EXPORT Standard_Real G1Error() const; Standard_EXPORT Standard_Real G2Error() const; Standard_EXPORT Standard_Real G0Error(const Standard_Integer Index) ; Standard_EXPORT Standard_Real G1Error(const Standard_Integer Index) ; Standard_EXPORT Standard_Real G2Error(const Standard_Integer Index) ; protected: private: //! Adds constraints to builder
Standard_EXPORT void AddConstraints(const BRepFill_SequenceOfEdgeFaceAndOrder& SeqOfConstraints) ; //! Builds wires of maximum length
Standard_EXPORT void BuildWires(TopTools_MapOfShape& EdgeMap,TopTools_MapOfShape& WireList) const; //! Finds extremities of future edges to fix the holes between wires.
//! Can properly operate only with convex contour
Standard_EXPORT void FindExtremitiesOfHoles(TopTools_MapOfShape& WireMap,TColgp_SequenceOfPnt& PntSeq) const; GeomPlate_BuildPlateSurface myBuilder; BRepFill_SequenceOfEdgeFaceAndOrder myBoundary; BRepFill_SequenceOfEdgeFaceAndOrder myConstraints; BRepFill_SequenceOfFaceAndOrder myFreeConstraints; GeomPlate_SequenceOfPointConstraint myPoints; TopoDS_Face myFace; TopoDS_Face myInitFace; Standard_Real myTol2d; Standard_Real myTol3d; Standard_Real myTolAng; Standard_Real myTolCurv; Standard_Integer myMaxDeg; Standard_Integer myMaxSegments; Standard_Integer myDegree; Standard_Integer myNbPtsOnCur; Standard_Integer myNbIter; Standard_Boolean myAnisotropie; Standard_Boolean myIsInitFaceGiven; Standard_Boolean myIsDone; }; // other Inline functions and methods (like "C++: function call" methods) #endif