// 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 _TopTrans_CurveTransition_HeaderFile #define _TopTrans_CurveTransition_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _gp_Dir_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _TopAbs_Orientation_HeaderFile #include #endif #ifndef _TopAbs_State_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif class gp_Dir; //! This algorithm is used to compute the transition
//! of a Curve intersecting a curvilinear boundary.
//!
//! The geometric elements are described locally at
//! the intersection point by a second order
//! development.
//!
//! The curve is described by the intersection point,
//! the tangent vector and the curvature.
//!
//! The boundary is described by a set of curve
//! elements, a curve element is either :
//!
//! - A curve.
//!
//! - A curve and an orientation called a half-curve,
//! the boundary of the curve is before or after the
//! intersection point depending on the orientation.
//!
class TopTrans_CurveTransition { 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); } //! Create an empty Curve Transition.
Standard_EXPORT TopTrans_CurveTransition(); //! Initialize a Transition with the local description
//! of a Curve.
Standard_EXPORT void Reset(const gp_Dir& Tgt,const gp_Dir& Norm,const Standard_Real Curv) ; //! Initialize a Transition with the local description
//! of a straigth line.
Standard_EXPORT void Reset(const gp_Dir& Tgt) ; //! Add a curve element to the boundary. If Or is
//! REVERSED the curve is before the intersection,
//! else if Or is FORWARD the curv is after the
//! intersection and if Or is INTERNAL the
//! intersection is in the middle of the curv.
Standard_EXPORT void Compare(const Standard_Real Tole,const gp_Dir& Tang,const gp_Dir& Norm,const Standard_Real Curv,const TopAbs_Orientation S,const TopAbs_Orientation Or) ; //! returns the state of the curve before the
//! intersection, this is the position relative to the
//! boundary of a point very close to the intersection
//! on the negative side of the tangent.
Standard_EXPORT TopAbs_State StateBefore() const; //! returns the state of the curve after the
//! intersection, this is the position relative to the
//! boundary of a point very close to the intersection
//! on the positive side of the tangent.
Standard_EXPORT TopAbs_State StateAfter() const; protected: private: //! Compare two curvature and return true if N1,C1 is
//! before N2,C2 in the edge orientation
Standard_EXPORT Standard_Boolean IsBefore(const Standard_Real Tole,const Standard_Real Angl,const gp_Dir& Nor1,const Standard_Real Cur1,const gp_Dir& Nor2,const Standard_Real Cur2) const; //! Compare two angles at tolerance Tole
Standard_EXPORT Standard_Integer Compare(const Standard_Real Ang1,const Standard_Real Ang2,const Standard_Real Tole) const; gp_Dir myTgt; gp_Dir myNorm; Standard_Real myCurv; Standard_Boolean Init; gp_Dir TgtFirst; gp_Dir NormFirst; Standard_Real CurvFirst; TopAbs_Orientation TranFirst; gp_Dir TgtLast; gp_Dir NormLast; Standard_Real CurvLast; TopAbs_Orientation TranLast; }; // other Inline functions and methods (like "C++: function call" methods) #endif