// 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 _BRepOffsetAPI_MakeFilling_HeaderFile #define _BRepOffsetAPI_MakeFilling_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _BRepFill_Filling_HeaderFile #include #endif #ifndef _BRepBuilderAPI_MakeShape_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Standard_Real_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; //! 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 of the face 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 BRepOffsetAPI_MakeFilling : public BRepBuilderAPI_MakeShape { 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); } //! Constructs a wire filling object defined by
//! - the energy minimizing criterion Degree
//! - the number of points on the curve NbPntsOnCur
//! - the number of iterations NbIter
//! - the Boolean Anisotropie
//! - the 2D tolerance Tol2d
//! - the 3D tolerance Tol3d
//! - the angular tolerance TolAng
//! - the tolerance for curvature TolCur
//! - the highest polynomial degree MaxDeg
//! - the greatest number of segments MaxSeg.
//! If the Boolean Anistropie is true, the algorithm's
//! performance is better in cases where the ratio of the
//! length U and the length V indicate a great difference
//! between the two. In other words, when the surface is, for
//! example, extremely long.
Standard_EXPORT BRepOffsetAPI_MakeFilling(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 to approximate the filling
//! surface. These include:
//! - MaxDeg - the highest degree which the polynomial
//! defining the filling surface can have
//! - MaxSegments - the greatest number of segments
//! which the filling surface can have.
Standard_EXPORT void SetApproxParam(const Standard_Integer MaxDeg = 8,const Standard_Integer MaxSegments = 9) ; //! Loads the initial surface Surf to
//! begin the construction of the surface.
//! This optional function is useful if the surface resulting from
//! construction for the algorithm is likely to be complex.
//! The support surface of the face under construction is computed by a
//! deformation of Surf which satisfies the given constraints.
//! The set of bounding edges defines the wire of the face.
//! If no initial surface is given, the algorithm computes it
//! automatically. If the set of edges is not connected (Free constraint),
//! missing edges are automatically computed.
Standard_EXPORT void LoadInitSurface(const TopoDS_Face& Surf) ; //! 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.
//! Raises ConstructionError if the edge has no representation on a face and Order is
//! GeomAbs_G1 or GeomAbs_G2.
Standard_EXPORT Standard_Integer Add(const TopoDS_Edge& Constr,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.
//! Raises ConstructionError if the edge has no 2d representation on the given face
Standard_EXPORT Standard_Integer Add(const TopoDS_Edge& Constr,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 virtual void Build() ; //! Tests whether computation of the filling plate has been completed.
Standard_EXPORT virtual Standard_Boolean IsDone() const; //! Returns the maximum distance between the result and
//! the constraints. This is set at construction time.
Standard_EXPORT Standard_Real G0Error() const; //! Returns the maximum angle between the result and the
//! constraints. This is set at construction time.
Standard_EXPORT Standard_Real G1Error() const; //! Returns the maximum angle between the result and the
//! constraints. This is set at construction time.
Standard_EXPORT Standard_Real G2Error() const; //! Returns the maximum distance attained between the
//! result and the constraint Index. This is set at construction time.
Standard_EXPORT Standard_Real G0Error(const Standard_Integer Index) ; //! Returns the maximum angle between the result and the
//! constraints. This is set at construction time.
Standard_EXPORT Standard_Real G1Error(const Standard_Integer Index) ; //! Returns the greatest difference in curvature found
//! between the result and the constraint Index.
Standard_EXPORT Standard_Real G2Error(const Standard_Integer Index) ; protected: private: BRepFill_Filling myFilling; }; // other Inline functions and methods (like "C++: function call" methods) #endif