// 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 _Convert_ElementarySurfaceToBSplineSurface_HeaderFile #define _Convert_ElementarySurfaceToBSplineSurface_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _TColgp_Array2OfPnt_HeaderFile #include #endif #ifndef _TColStd_Array2OfReal_HeaderFile #include #endif #ifndef _TColStd_Array1OfReal_HeaderFile #include #endif #ifndef _TColStd_Array1OfInteger_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif class Standard_OutOfRange; class gp_Pnt; //!Root class for algorithms which convert an elementary
//! surface (cylinder, cone, sphere or torus) into a BSpline
//! surface (CylinderToBSplineSurface, ConeToBSplineSurface,
//! SphereToBSplineSurface, TorusToBSplineSurface).
//! These algorithms all work on elementary surfaces from
//! the gp package and compute all the data needed to
//! construct a BSpline surface equivalent to the cylinder,
//! cone, sphere or torus. This data consists of the following:
//! - degrees in the u and v parametric directions,
//! - periodic characteristics in the u and v parametric directions,
//! - a poles table with associated weights,
//! - a knots table (for the u and v parametric directions)
//! with associated multiplicities.
//! The abstract class
//! ElementarySurfaceToBSplineSurface provides a
//! framework for storing and consulting this computed data.
//! This data may then be used to construct a
//! Geom_BSplineSurface surface, for example.
//! All those classes define algorithmes to convert an
//! ElementarySurface into a B-spline surface.
//! This abstract class implements the methods to get
//! the geometric representation of the B-spline surface.
//! The B-spline representation is computed at the creation
//! time in the sub classes.
//! The B-spline surface is defined with its degree in the
//! parametric U and V directions, its control points (Poles),
//! its weights, its knots and their multiplicity.
//! KeyWords :
//! Convert, ElementarySurface, BSplineSurface.
class Convert_ElementarySurfaceToBSplineSurface { 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); } Standard_EXPORT Standard_Integer UDegree() const; //! Returns the degree for the u or v parametric direction of
//! the BSpline surface whose data is computed in this framework.
Standard_EXPORT Standard_Integer VDegree() const; Standard_EXPORT Standard_Integer NbUPoles() const; //! Returns the number of poles for the u or v parametric
//! direction of the BSpline surface whose data is computed in this framework.
Standard_EXPORT Standard_Integer NbVPoles() const; Standard_EXPORT Standard_Integer NbUKnots() const; //! Returns the number of knots for the u or v parametric
//! direction of the BSpline surface whose data is computed in this framework .
Standard_EXPORT Standard_Integer NbVKnots() const; Standard_EXPORT Standard_Boolean IsUPeriodic() const; //! Returns true if the BSpline surface whose data is computed
//! in this framework is periodic in the u or v parametric direction.
Standard_EXPORT Standard_Boolean IsVPeriodic() const; //! Returns the pole of index (UIndex,VIndex) to the poles
//! table of the BSpline surface whose data is computed in this framework.
//! Exceptions
//! Standard_OutOfRange if, for the BSpline surface whose
//! data is computed in this framework:
//! - UIndex is outside the bounds of the poles table in the u
//! parametric direction, or
//! - VIndex is outside the bounds of the poles table in the v
//! parametric direction.
Standard_EXPORT gp_Pnt Pole(const Standard_Integer UIndex,const Standard_Integer VIndex) const; //! Returns the weight of the pole of index (UIndex,VIndex) to
//! the poles table of the BSpline surface whose data is computed in this framework.
//! Exceptions
//! Standard_OutOfRange if, for the BSpline surface whose
//! data is computed in this framework:
//! - UIndex is outside the bounds of the poles table in the u
//! parametric direction, or
//! - VIndex is outside the bounds of the poles table in the v
//! parametric direction.
Standard_EXPORT Standard_Real Weight(const Standard_Integer UIndex,const Standard_Integer VIndex) const; //! Returns the U-knot of range UIndex.
//! Raised if UIndex < 1 or UIndex > NbUKnots.
Standard_EXPORT Standard_Real UKnot(const Standard_Integer UIndex) const; //! Returns the V-knot of range VIndex.
//! Raised if VIndex < 1 or VIndex > NbVKnots.
Standard_EXPORT Standard_Real VKnot(const Standard_Integer UIndex) const; //! Returns the multiplicity of the U-knot of range UIndex.
//! Raised if UIndex < 1 or UIndex > NbUKnots.
Standard_EXPORT Standard_Integer UMultiplicity(const Standard_Integer UIndex) const; //! Returns the multiplicity of the V-knot of range VIndex.
//! Raised if VIndex < 1 or VIndex > NbVKnots.
Standard_EXPORT Standard_Integer VMultiplicity(const Standard_Integer VIndex) const; protected: Standard_EXPORT Convert_ElementarySurfaceToBSplineSurface(const Standard_Integer NumberOfUPoles,const Standard_Integer NumberOfVPoles,const Standard_Integer NumberOfUKnots,const Standard_Integer NumberOfVKnots,const Standard_Integer UDegree,const Standard_Integer VDegree); TColgp_Array2OfPnt poles; TColStd_Array2OfReal weights; TColStd_Array1OfReal uknots; TColStd_Array1OfInteger umults; TColStd_Array1OfReal vknots; TColStd_Array1OfInteger vmults; Standard_Integer udegree; Standard_Integer vdegree; Standard_Integer nbUPoles; Standard_Integer nbVPoles; Standard_Integer nbUKnots; Standard_Integer nbVKnots; Standard_Boolean isuperiodic; Standard_Boolean isvperiodic; private: }; // other Inline functions and methods (like "C++: function call" methods) #endif