// 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 _GeomFill_CircularBlendFunc_HeaderFile #define _GeomFill_CircularBlendFunc_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_DefineHandle_HeaderFile #include #endif #ifndef _Handle_GeomFill_CircularBlendFunc_HeaderFile #include #endif #ifndef _gp_Pnt_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Handle_Adaptor3d_HCurve_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Convert_ParameterisationType_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Approx_SweepFunction_HeaderFile #include #endif #ifndef _GeomAbs_Shape_HeaderFile #include #endif class Adaptor3d_HCurve; class Standard_OutOfRange; class TColgp_Array1OfPnt; class TColgp_Array1OfPnt2d; class TColStd_Array1OfReal; class TColgp_Array1OfVec; class TColgp_Array1OfVec2d; class TColStd_Array1OfInteger; class gp_Pnt; //! Circular Blend Function to approximate by
//! SweepApproximation from Approx
class GeomFill_CircularBlendFunc : public Approx_SweepFunction { public: //! Create a Blend with a constant radius with 2
//! guide-line. sets the type of fillet
//! surface. The -- default value is Convert_TgtThetaOver2 (classical --
//! nurbs -- representation of circles).
//! ChFi3d_QuasiAngular -- corresponds to a nurbs
//! representation of circles -- which
//! parameterisation matches the circle one. --
//! ChFi3d_Polynomial corresponds to a polynomial --
//! representation of circles.
Standard_EXPORT GeomFill_CircularBlendFunc(const Handle(Adaptor3d_HCurve)& Path,const Handle(Adaptor3d_HCurve)& Curve1,const Handle(Adaptor3d_HCurve)& Curve2,const Standard_Real Radius,const Standard_Boolean Polynomial = Standard_False); //! compute the section for v = param
Standard_EXPORT virtual Standard_Boolean D0(const Standard_Real Param,const Standard_Real First,const Standard_Real Last,TColgp_Array1OfPnt& Poles,TColgp_Array1OfPnt2d& Poles2d,TColStd_Array1OfReal& Weigths) ; //! compute the first derivative in v direction of the
//! section for v = param
Standard_EXPORT virtual Standard_Boolean D1(const Standard_Real Param,const Standard_Real First,const Standard_Real Last,TColgp_Array1OfPnt& Poles,TColgp_Array1OfVec& DPoles,TColgp_Array1OfPnt2d& Poles2d,TColgp_Array1OfVec2d& DPoles2d,TColStd_Array1OfReal& Weigths,TColStd_Array1OfReal& DWeigths) ; //! compute the second derivative in v direction of the
//! section for v = param
Standard_EXPORT virtual Standard_Boolean D2(const Standard_Real Param,const Standard_Real First,const Standard_Real Last,TColgp_Array1OfPnt& Poles,TColgp_Array1OfVec& DPoles,TColgp_Array1OfVec& D2Poles,TColgp_Array1OfPnt2d& Poles2d,TColgp_Array1OfVec2d& DPoles2d,TColgp_Array1OfVec2d& D2Poles2d,TColStd_Array1OfReal& Weigths,TColStd_Array1OfReal& DWeigths,TColStd_Array1OfReal& D2Weigths) ; //! get the number of 2d curves to approximate.
Standard_EXPORT virtual Standard_Integer Nb2dCurves() const; //! get the format of an section
Standard_EXPORT virtual void SectionShape(Standard_Integer& NbPoles,Standard_Integer& NbKnots,Standard_Integer& Degree) const; //! get the Knots of the section
Standard_EXPORT virtual void Knots(TColStd_Array1OfReal& TKnots) const; //! get the Multplicities of the section
Standard_EXPORT virtual void Mults(TColStd_Array1OfInteger& TMults) const; //! Returns if the section is rationnal or not
Standard_EXPORT virtual Standard_Boolean IsRational() const; //! Returns the number of intervals for continuity
//! . May be one if Continuity(me) >=
Standard_EXPORT virtual Standard_Integer NbIntervals(const GeomAbs_Shape S) const; //! Stores in the parameters bounding the intervals
//! of continuity .
//!
//! The array must provide enough room to accomodate
//! for the parameters. i.e. T.Length() > NbIntervals()
Standard_EXPORT virtual void Intervals(TColStd_Array1OfReal& T,const GeomAbs_Shape S) const; //! Sets the bounds of the parametric interval on
//! the fonction
//! This determines the derivatives in these values if the
//! function is not Cn.
Standard_EXPORT virtual void SetInterval(const Standard_Real First,const Standard_Real Last) ; //! Returns the tolerance to reach in approximation
//! to respecte
//! BoundTol error at the Boundary
//! AngleTol tangent error at the Boundary (in radian)
//! SurfTol error inside the surface.
Standard_EXPORT virtual void GetTolerance(const Standard_Real BoundTol,const Standard_Real SurfTol,const Standard_Real AngleTol,TColStd_Array1OfReal& Tol3d) const; //! Is usfull, if (me) have to be run numerical
//! algorithme to perform D0, D1 or D2
Standard_EXPORT virtual void SetTolerance(const Standard_Real Tol3d,const Standard_Real Tol2d) ; //! Get the barycentre of Surface. An very poor
//! estimation is sufficent. This information is usefull
//! to perform well conditionned rational approximation.
Standard_EXPORT virtual gp_Pnt BarycentreOfSurf() const; //! Returns the length of the maximum section. This
//! information is usefull to perform well conditionned rational
//! approximation.
Standard_EXPORT virtual Standard_Real MaximalSection() const; //! Compute the minimal value of weight for each poles
//! of all sections. This information is usefull to
//! perform well conditionned rational approximation.
Standard_EXPORT virtual void GetMinimalWeight(TColStd_Array1OfReal& Weigths) const; DEFINE_STANDARD_RTTI(GeomFill_CircularBlendFunc) protected: private: Standard_EXPORT void Discret() ; gp_Pnt myBary; Standard_Real myRadius; Standard_Real myMinW; Standard_Real maxang; Standard_Real minang; Standard_Real distmin; Handle_Adaptor3d_HCurve myPath; Handle_Adaptor3d_HCurve myCurve1; Handle_Adaptor3d_HCurve myCurve2; Handle_Adaptor3d_HCurve myTPath; Handle_Adaptor3d_HCurve myTCurve1; Handle_Adaptor3d_HCurve myTCurve2; Standard_Integer myDegree; Standard_Integer myNbKnots; Standard_Integer myNbPoles; Convert_ParameterisationType myTConv; Standard_Boolean myreverse; }; // other Inline functions and methods (like "C++: function call" methods) #endif