// 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 _GeomConvert_HeaderFile #define _GeomConvert_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _Handle_Geom_BSplineCurve_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Handle_Geom_BSplineSurface_HeaderFile #include #endif #ifndef _Handle_Geom_Curve_HeaderFile #include #endif #ifndef _Convert_ParameterisationType_HeaderFile #include #endif #ifndef _Handle_Geom_Surface_HeaderFile #include #endif #ifndef _Handle_TColGeom_HArray1OfBSplineCurve_HeaderFile #include #endif #ifndef _Handle_TColStd_HArray1OfInteger_HeaderFile #include #endif class Geom_BSplineCurve; class Geom_BSplineSurface; class Geom_Curve; class Geom_Surface; class TColGeom_Array1OfBSplineCurve; class TColStd_Array1OfReal; class TColGeom_HArray1OfBSplineCurve; class TColStd_HArray1OfInteger; class GeomConvert_BSplineCurveKnotSplitting; class GeomConvert_BSplineSurfaceKnotSplitting; class GeomConvert_BSplineCurveToBezierCurve; class GeomConvert_CompCurveToBSplineCurve; class GeomConvert_BSplineSurfaceToBezierSurface; class GeomConvert_CompBezierSurfacesToBSplineSurface; class GeomConvert_ApproxSurface; class GeomConvert_ApproxCurve; //! The GeomConvert package provides some global functions as follows
//! - converting classical Geom curves into BSpline curves,
//! - segmenting BSpline curves, particularly at knots
//! values: this function may be used in conjunction with the
//! GeomConvert_BSplineCurveKnotSplitting
//! class to segment a BSpline curve into arcs which
//! comply with required continuity levels,
//! - converting classical Geom surfaces into BSpline surfaces, and
//! - segmenting BSpline surfaces, particularly at
//! knots values: this function may be used in conjunction with the
//! GeomConvert_BSplineSurfaceKnotSplitting
//! class to segment a BSpline surface into patches
//! which comply with required continuity levels.
//! All geometric entities used in this package are bounded.
//!
//! References :
//! . Generating the Bezier Points of B-spline curves and surfaces
//! (Wolfgang Bohm) CAGD volume 13 number 6 november 1981
//! . On NURBS: A Survey (Leslie Piegl) IEEE Computer Graphics and
//! Application January 1991
//! . Curve and surface construction using rational B-splines
//! (Leslie Piegl and Wayne Tiller) CAD Volume 19 number 9 november
//! 1987
//! . A survey of curve and surface methods in CAGD (Wolfgang BOHM)
//! CAGD 1 1984
class GeomConvert { 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); } //! Raised if FromK1 = ToK2
//! Raised if FromK1 or ToK2 are out of the bounds
//! [FirstUKnotIndex, LastUKnotIndex]
Standard_EXPORT static Handle_Geom_BSplineCurve SplitBSplineCurve(const Handle(Geom_BSplineCurve)& C,const Standard_Integer FromK1,const Standard_Integer ToK2,const Standard_Boolean SameOrientation = Standard_True) ; //! Raised if FromU1 or ToU2 are out of the parametric bounds of the
//! curve (The tolerance criterion is ParametricTolerance).
//! Raised if Abs (FromU1 - ToU2) <= ParametricTolerance
//! Raised if ParametricTolerance < Resolution from gp.
Standard_EXPORT static Handle_Geom_BSplineCurve SplitBSplineCurve(const Handle(Geom_BSplineCurve)& C,const Standard_Real FromU1,const Standard_Real ToU2,const Standard_Real ParametricTolerance,const Standard_Boolean SameOrientation = Standard_True) ; //! Raised if
//! FromUK1 = ToUK2 or FromVK1 = ToVK2
//! FromUK1 or ToUK2 are out of the bounds
//! [FirstUKnotIndex, LastUKnotIndex]
//! FromVK1 or ToVK2 are out of the bounds
//! [FirstVKnotIndex, LastVKnotIndex]
Standard_EXPORT static Handle_Geom_BSplineSurface SplitBSplineSurface(const Handle(Geom_BSplineSurface)& S,const Standard_Integer FromUK1,const Standard_Integer ToUK2,const Standard_Integer FromVK1,const Standard_Integer ToVK2,const Standard_Boolean SameUOrientation = Standard_True,const Standard_Boolean SameVOrientation = Standard_True) ; //! Raised if FromK1 = ToK2 or if
//! FromK1 or ToK2 are out of the bounds
//! [FirstUKnotIndex, LastUKnotIndex] in the
//! considered parametric direction.
Standard_EXPORT static Handle_Geom_BSplineSurface SplitBSplineSurface(const Handle(Geom_BSplineSurface)& S,const Standard_Integer FromK1,const Standard_Integer ToK2,const Standard_Boolean USplit,const Standard_Boolean SameOrientation = Standard_True) ; //! Raised if FromU1 or ToU2 or FromV1 or ToU2 are out of the
//! parametric bounds of the surface (the tolerance criterion is
//! ParametricTolerance).
//! Raised if Abs (FromU1 - ToU2) <= ParametricTolerance or
//! Abs (FromV1 - ToV2) <= ParametricTolerance.
//! Raised if ParametricTolerance < Resolution.
Standard_EXPORT static Handle_Geom_BSplineSurface SplitBSplineSurface(const Handle(Geom_BSplineSurface)& S,const Standard_Real FromU1,const Standard_Real ToU2,const Standard_Real FromV1,const Standard_Real ToV2,const Standard_Real ParametricTolerance,const Standard_Boolean SameUOrientation = Standard_True,const Standard_Boolean SameVOrientation = Standard_True) ; //! Raises if FromParam1 or ToParam2 are out of the parametric bounds
//! of the surface in the considered direction.
//! Raises if Abs (FromParam1 - ToParam2) <= ParametricTolerance.
Standard_EXPORT static Handle_Geom_BSplineSurface SplitBSplineSurface(const Handle(Geom_BSplineSurface)& S,const Standard_Real FromParam1,const Standard_Real ToParam2,const Standard_Boolean USplit,const Standard_Real ParametricTolerance,const Standard_Boolean SameOrientation = Standard_True) ; Standard_EXPORT static Handle_Geom_BSplineCurve CurveToBSplineCurve(const Handle(Geom_Curve)& C,const Convert_ParameterisationType Parameterisation = Convert_TgtThetaOver2) ; Standard_EXPORT static Handle_Geom_BSplineSurface SurfaceToBSplineSurface(const Handle(Geom_Surface)& S) ; //! This Method concatenates G1 the ArrayOfCurves as far
//! as it is possible.
//! ArrayOfCurves[0..N-1]
//! ArrayOfToler contains the biggest tolerance of the two
//! points shared by two consecutives curves.
//! Its dimension: [0..N-2]
//! ClosedG1 indicates if the ArrayOfCurves is closed.
//! In this case ClosedG1 contains the biggest tolerance
//! of the two points which are at the closure.
//! Otherwise its value is 0.0
Standard_EXPORT static void ConcatG1(TColGeom_Array1OfBSplineCurve& ArrayOfCurves,const TColStd_Array1OfReal& ArrayOfToler,Handle(TColGeom_HArray1OfBSplineCurve)& ArrayOfConcatenated,const Standard_Boolean ClosedG1Flag,const Standard_Real ClosedTolerance) ; //! This Method concatenates C1 the ArrayOfCurves as far
//! as it is possible.
//! ArrayOfCurves[0..N-1]
//! ArrayOfToler contains the biggest tolerance of the two
//! points shared by two consecutives curves.
//! Its dimension: [0..N-2]
//! ClosedG1 indicates if the ArrayOfCurves is closed.
//! In this case ClosedG1 contains the biggest tolerance
//! of the two points which are at the closure.
//! Otherwise its value is 0.0
Standard_EXPORT static void ConcatC1(TColGeom_Array1OfBSplineCurve& ArrayOfCurves,const TColStd_Array1OfReal& ArrayOfToler,Handle(TColStd_HArray1OfInteger)& ArrayOfIndices,Handle(TColGeom_HArray1OfBSplineCurve)& ArrayOfConcatenated,const Standard_Boolean ClosedG1Flag,const Standard_Real ClosedTolerance) ; //! This Method concatenates C1 the ArrayOfCurves as far
//! as it is possible.
//! ArrayOfCurves[0..N-1]
//! ArrayOfToler contains the biggest tolerance of the two
//! points shared by two consecutives curves.
//! Its dimension: [0..N-2]
//! ClosedG1 indicates if the ArrayOfCurves is closed.
//! In this case ClosedG1 contains the biggest tolerance
//! of the two points which are at the closure.
//! Otherwise its value is 0.0
//!
Standard_EXPORT static void ConcatC1(TColGeom_Array1OfBSplineCurve& ArrayOfCurves,const TColStd_Array1OfReal& ArrayOfToler,Handle(TColStd_HArray1OfInteger)& ArrayOfIndices,Handle(TColGeom_HArray1OfBSplineCurve)& ArrayOfConcatenated,const Standard_Boolean ClosedG1Flag,const Standard_Real ClosedTolerance,const Standard_Real AngularTolerance) ; //! This Method reduces as far as it is possible the
//! multiplicities of the knots of the BSpline BS.(keeping the
//! geometry). It returns a new BSpline which could still be C0.
//! tolerance is a geometrical tolerance.
//! The Angular toleranceis in radians and mesures the angle of
//! the tangents on the left and on the right to decide if the
//! curve is G1 or not at a given point
Standard_EXPORT static void C0BSplineToC1BSplineCurve(Handle(Geom_BSplineCurve)& BS,const Standard_Real tolerance,const Standard_Real AngularTolerance = 1.0e-7) ; //! This Method reduces as far as it is possible the
//! multiplicities of the knots of the BSpline BS.(keeping the geometry).
//! It returns an array of BSpline C1. tolerance is a geometrical tolerance.
Standard_EXPORT static void C0BSplineToArrayOfC1BSplineCurve(const Handle(Geom_BSplineCurve)& BS,Handle(TColGeom_HArray1OfBSplineCurve)& tabBS,const Standard_Real tolerance) ; //!This Method reduces as far as it is possible the
//! multiplicities of the knots of the BSpline BS.(keeping the
//! geometry). It returns an array of BSpline C1. tolerance is a
//! geometrical tolerance : it allows for the maximum deformation
//! The Angular tolerance is in radians and mesures the angle of
//! the tangents on the left and on the right to decide if the curve
//! is C1 or not at a given point
Standard_EXPORT static void C0BSplineToArrayOfC1BSplineCurve(const Handle(Geom_BSplineCurve)& BS,Handle(TColGeom_HArray1OfBSplineCurve)& tabBS,const Standard_Real AngularTolerance,const Standard_Real tolerance) ; protected: private: friend class GeomConvert_BSplineCurveKnotSplitting; friend class GeomConvert_BSplineSurfaceKnotSplitting; friend class GeomConvert_BSplineCurveToBezierCurve; friend class GeomConvert_CompCurveToBSplineCurve; friend class GeomConvert_BSplineSurfaceToBezierSurface; friend class GeomConvert_CompBezierSurfacesToBSplineSurface; friend class GeomConvert_ApproxSurface; friend class GeomConvert_ApproxCurve; }; // other Inline functions and methods (like "C++: function call" methods) #endif