// 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 _gp_Torus_HeaderFile #define _gp_Torus_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _gp_Ax3_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Standard_Storable_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _gp_Ax1_HeaderFile #include #endif #ifndef _Standard_PrimitiveTypes_HeaderFile #include #endif class Standard_ConstructionError; class Standard_DimensionError; class gp_Ax3; class gp_Ax1; class gp_Pnt; class TColStd_Array1OfReal; class gp_Ax2; class gp_Trsf; class gp_Vec; Standard_EXPORT const Handle(Standard_Type)& STANDARD_TYPE(gp_Torus); //! Describes a torus.
//! A torus is defined by its major and minor radii and
//! positioned in space with a coordinate system (a gp_Ax3
//! object) as follows:
//! - The origin of the coordinate system is the center of the torus;
//! - The surface is obtained by rotating a circle of radius
//! equal to the minor radius of the torus about the "main
//! Direction" of the coordinate system. This circle is
//! located in the plane defined by the origin, the "X
//! Direction" and the "main Direction" of the coordinate
//! system. It is centered on the "X Axis" of this coordinate
//! system, and located at a distance, from the origin of
//! this coordinate system, equal to the major radius of the torus;
//! - The "X Direction" and "Y Direction" define the
//! reference plane of the torus.
//! The coordinate system described above is the "local
//! coordinate system" of the torus.
//! Note: when a gp_Torus torus is converted into a
//! Geom_ToroidalSurface torus, some implicit properties
//! of its local coordinate system are used explicitly:
//! - its origin, "X Direction", "Y Direction" and "main
//! Direction" are used directly to define the parametric
//! directions on the torus and the origin of the parameters,
//! - its implicit orientation (right-handed or left-handed)
//! gives the orientation (direct, indirect) to the
//! Geom_ToroidalSurface torus.
//! See Also
//! gce_MakeTorus which provides functions for more
//! complex torus constructions
//! Geom_ToroidalSurface which provides additional
//! functions for constructing tori and works, in particular,
//! with the parametric equations of tori.
class gp_Torus { 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); } //! creates an indefinite Torus.
gp_Torus(); //! a torus centered on the origin of coordinate system
//! A3, with major radius MajorRadius and minor radius
//! MinorRadius, and with the reference plane defined
//! by the origin, the "X Direction" and the "Y Direction" of A3.
//! Warnings :
//! It is not forbidden to create a torus with
//! MajorRadius = MinorRadius = 0.0
//! Raises ConstructionError if MinorRadius < 0.0 or if MajorRadius < 0.0
gp_Torus(const gp_Ax3& A3,const Standard_Real MajorRadius,const Standard_Real MinorRadius); //! Modifies this torus, by redefining its local coordinate
//! system so that:
//! - its origin and "main Direction" become those of the
//! axis A1 (the "X Direction" and "Y Direction" are then recomputed).
//! Raises ConstructionError if the direction of A1 is parallel to the "XDirection"
//! of the coordinate system of the toroidal surface.
void SetAxis(const gp_Ax1& A1) ; //! Changes the location of the torus.
void SetLocation(const gp_Pnt& Loc) ; //! Assigns value to the major radius of this torus.
//! Raises ConstructionError if MajorRadius - MinorRadius <= Resolution()
void SetMajorRadius(const Standard_Real MajorRadius) ; //! Assigns value to the minor radius of this torus.
//! Raises ConstructionError if MinorRadius < 0.0 or if
//! MajorRadius - MinorRadius <= Resolution from gp.
void SetMinorRadius(const Standard_Real MinorRadius) ; //! Changes the local coordinate system of the surface.
void SetPosition(const gp_Ax3& A3) ; //! Computes the area of the torus.
Standard_Real Area() const; //! Reverses the U parametrization of the torus
//! reversing the YAxis.
void UReverse() ; //! Reverses the V parametrization of the torus
//! reversing the ZAxis.
Standard_EXPORT void VReverse() ; //! returns true if the Ax3, the local coordinate system of this torus, is right handed.
Standard_Boolean Direct() const; //! returns the symmetry axis of the torus.
const gp_Ax1& Axis() const; //! Computes the coefficients of the implicit equation of the surface
//! in the absolute cartesian coordinate system :
//! Coef(1) * X**4 + Coef(2) * Y**4 + Coef(3) * Z**4 +
//! Coef(4) * X**3 * Y + Coef(5) * X**3 * Z + Coef(6) * Y**3 * X +
//! Coef(7) * Y**3 * Z + Coef(8) * Z**3 * X + Coef(9) * Z**3 * Y +
//! Coef(10) * X**2 * Y**2 + Coef(11) * X**2 * Z**2 +
//! Coef(12) * Y**2 * Z**2 + Coef(13) * X**3 + Coef(14) * Y**3 +
//! Coef(15) * Z**3 + Coef(16) * X**2 * Y + Coef(17) * X**2 * Z +
//! Coef(18) * Y**2 * X + Coef(19) * Y**2 * Z + Coef(20) * Z**2 * X +
//! Coef(21) * Z**2 * Y + Coef(22) * X**2 + Coef(23) * Y**2 +
//! Coef(24) * Z**2 + Coef(25) * X * Y + Coef(26) * X * Z +
//! Coef(27) * Y * Z + Coef(28) * X + Coef(29) * Y + Coef(30) * Z +
//! Coef(31) = 0.0
//! Raises DimensionError if the length of Coef is lower than 31.
Standard_EXPORT void Coefficients(TColStd_Array1OfReal& Coef) const; //! Returns the Torus's location.
const gp_Pnt& Location() const; //! Returns the local coordinates system of the torus.
const gp_Ax3& Position() const; //! returns the major radius of the torus.
Standard_Real MajorRadius() const; //! returns the minor radius of the torus.
Standard_Real MinorRadius() const; //! Computes the volume of the torus.
Standard_Real Volume() const; //! returns the axis X of the torus.
gp_Ax1 XAxis() const; //! returns the axis Y of the torus.
gp_Ax1 YAxis() const; Standard_EXPORT void Mirror(const gp_Pnt& P) ; //! Performs the symmetrical transformation of a torus
//! with respect to the point P which is the center of the
//! symmetry.
Standard_EXPORT gp_Torus Mirrored(const gp_Pnt& P) const; Standard_EXPORT void Mirror(const gp_Ax1& A1) ; //! Performs the symmetrical transformation of a torus with
//! respect to an axis placement which is the axis of the
//! symmetry.
Standard_EXPORT gp_Torus Mirrored(const gp_Ax1& A1) const; Standard_EXPORT void Mirror(const gp_Ax2& A2) ; //! Performs the symmetrical transformation of a torus with respect
//! to a plane. The axis placement A2 locates the plane of the
//! of the symmetry : (Location, XDirection, YDirection).
Standard_EXPORT gp_Torus Mirrored(const gp_Ax2& A2) const; void Rotate(const gp_Ax1& A1,const Standard_Real Ang) ; //! Rotates a torus. A1 is the axis of the rotation.
//! Ang is the angular value of the rotation in radians.
gp_Torus Rotated(const gp_Ax1& A1,const Standard_Real Ang) const; void Scale(const gp_Pnt& P,const Standard_Real S) ; //! Scales a torus. S is the scaling value.
//! The absolute value of S is used to scale the torus
gp_Torus Scaled(const gp_Pnt& P,const Standard_Real S) const; void Transform(const gp_Trsf& T) ; //! Transforms a torus with the transformation T from class Trsf.
gp_Torus Transformed(const gp_Trsf& T) const; void Translate(const gp_Vec& V) ; //! Translates a torus in the direction of the vector V.
//! The magnitude of the translation is the vector's magnitude.
gp_Torus Translated(const gp_Vec& V) const; void Translate(const gp_Pnt& P1,const gp_Pnt& P2) ; //! Translates a torus from the point P1 to the point P2.
gp_Torus Translated(const gp_Pnt& P1,const gp_Pnt& P2) const; const gp_Ax3& _CSFDB_Getgp_Toruspos() const { return pos; } Standard_Real _CSFDB_Getgp_TorusmajorRadius() const { return majorRadius; } void _CSFDB_Setgp_TorusmajorRadius(const Standard_Real p) { majorRadius = p; } Standard_Real _CSFDB_Getgp_TorusminorRadius() const { return minorRadius; } void _CSFDB_Setgp_TorusminorRadius(const Standard_Real p) { minorRadius = p; } protected: private: gp_Ax3 pos; Standard_Real majorRadius; Standard_Real minorRadius; }; #include // other Inline functions and methods (like "C++: function call" methods) #endif