1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262
|
// 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 _Geom_ToroidalSurface_HeaderFile
#define _Geom_ToroidalSurface_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_Geom_ToroidalSurface.hxx>
#include <Standard_Real.hxx>
#include <Geom_ElementarySurface.hxx>
#include <Standard_Boolean.hxx>
#include <Handle_Geom_Curve.hxx>
#include <Standard_Integer.hxx>
#include <Handle_Geom_Geometry.hxx>
class Standard_ConstructionError;
class Standard_DimensionError;
class Standard_RangeError;
class gp_Ax3;
class gp_Torus;
class TColStd_Array1OfReal;
class Geom_Curve;
class gp_Pnt;
class gp_Vec;
class gp_Trsf;
class Geom_Geometry;
//! 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 is the center of the torus.
//! - The surface is obtained by rotating a circle around
//! the "main Direction". This circle has a radius equal
//! to the minor radius, and is located in the plane
//! defined by the origin, "X Direction" and "main
//! Direction". It is centered on the "X Axis", on its
//! positive side, and positioned at a distance from the
//! origin equal to the major radius. This circle is the
//! "reference circle" of the torus.
//! - The plane defined by the origin, the "X Direction"
//! and the "Y Direction" is called the "reference plane" of the torus.
//! This coordinate system is the "local coordinate
//! system" of the torus. The following apply:
//! - Rotation around its "main Axis", in the trigonometric
//! sense given by "X Direction" and "Y Direction",
//! defines the u parametric direction.
//! - The "X Axis" gives the origin for the u parameter.
//! - Rotation around an axis parallel to the "Y Axis" and
//! passing through the center of the "reference circle"
//! gives the v parameter on the "reference circle".
//! - The "X Axis" gives the origin of the v parameter on
//! the "reference circle".
//! - The v parametric direction is oriented by the
//! inverse of the "main Direction", i.e. near 0, as v
//! increases, the Z coordinate decreases. (This
//! implies that the "Y Direction" orients the reference
//! circle only when the local coordinate system is direct.)
//! - The u isoparametric curve is a circle obtained by
//! rotating the "reference circle" of the torus through
//! an angle u about the "main Axis".
//! The parametric equation of the torus is :
//! P(u, v) = O + (R + r*cos(v)) * (cos(u)*XDir +
//! sin(u)*YDir ) + r*sin(v)*ZDir, where:
//! - O, XDir, YDir and ZDir are respectively the
//! origin, the "X Direction", the "Y Direction" and the "Z
//! Direction" of the local coordinate system,
//! - r and R are, respectively, the minor and major radius.
//! The parametric range of the two parameters is:
//! - [ 0, 2.*Pi ] for u
//! - [ 0, 2.*Pi ] for v
class Geom_ToroidalSurface : public Geom_ElementarySurface
{
public:
//! A3 is the local coordinate system of the surface.
//! The orientation of increasing V parametric value is defined
//! by the rotation around the main axis (ZAxis) in the
//! trigonometric sense. The parametrization of the surface in the
//! U direction is defined such as the normal Vector (N = D1U ^ D1V)
//! is oriented towards the "outside region" of the surface.
//! Warnings :
//! It is not forbidden to create a toroidal surface with
//! MajorRadius = MinorRadius = 0.0
//!
//! Raised if MinorRadius < 0.0 or if MajorRadius < 0.0
Standard_EXPORT Geom_ToroidalSurface(const gp_Ax3& A3, const Standard_Real MajorRadius, const Standard_Real MinorRadius);
//! Creates a ToroidalSurface from a non transient Torus from
//! package gp.
Standard_EXPORT Geom_ToroidalSurface(const gp_Torus& T);
//! Modifies this torus by changing its major radius.
//! Exceptions
//! Standard_ConstructionError if:
//! - MajorRadius is negative, or
//! - MajorRadius - r is less than or equal to
//! gp::Resolution(), where r is the minor radius of this torus.
Standard_EXPORT void SetMajorRadius (const Standard_Real MajorRadius) ;
//! Modifies this torus by changing its minor radius.
//! Exceptions
//! Standard_ConstructionError if:
//! - MinorRadius is negative, or
//! - R - MinorRadius is less than or equal to
//! gp::Resolution(), where R is the major radius of this torus.
Standard_EXPORT void SetMinorRadius (const Standard_Real MinorRadius) ;
//! Converts the gp_Torus torus T into this torus.
Standard_EXPORT void SetTorus (const gp_Torus& T) ;
//! Returns the non transient torus with the same geometric
//! properties as <me>.
Standard_EXPORT gp_Torus Torus() const;
//! Return the parameter on the Ureversed surface for
//! the point of parameter U on <me>.
//! Return 2.PI - U.
Standard_EXPORT Standard_Real UReversedParameter (const Standard_Real U) const;
//! Return the parameter on the Ureversed surface for
//! the point of parameter U on <me>.
//! Return 2.PI - U.
Standard_EXPORT Standard_Real VReversedParameter (const Standard_Real U) const;
//! Computes the aera of the surface.
Standard_EXPORT Standard_Real Area() const;
//! Returns the parametric bounds U1, U2, V1 and V2 of this torus.
//! For a torus: U1 = V1 = 0 and V1 = V2 = 2*PI .
Standard_EXPORT void Bounds (Standard_Real& U1, Standard_Real& U2, Standard_Real& V1, Standard_Real& V2) const;
//! Returns 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
//! Raised if the length of Coef is lower than 31.
Standard_EXPORT void Coefficients (TColStd_Array1OfReal& Coef) const;
//! Returns the major radius, or the minor radius, of this torus.
Standard_EXPORT Standard_Real MajorRadius() const;
//! Returns the major radius, or the minor radius, of this torus.
Standard_EXPORT Standard_Real MinorRadius() const;
//! Computes the volume.
Standard_EXPORT Standard_Real Volume() const;
//! Returns True.
Standard_EXPORT Standard_Boolean IsUClosed() const;
//! Returns True.
Standard_EXPORT Standard_Boolean IsVClosed() const;
//! Returns True.
Standard_EXPORT Standard_Boolean IsUPeriodic() const;
//! Returns True.
Standard_EXPORT Standard_Boolean IsVPeriodic() const;
//! Computes the U isoparametric curve.
//!
//! For a toroidal surface the UIso curve is a circle.
//! The center of the Uiso circle is at the distance MajorRadius
//! from the location point of the toroidal surface.
//! Warnings :
//! The radius of the circle can be zero if for the surface
//! MinorRadius = 0.0
Standard_EXPORT Handle(Geom_Curve) UIso (const Standard_Real U) const;
//! Computes the V isoparametric curve.
//!
//! For a ToroidalSurface the VIso curve is a circle.
//! The axis of the circle is the main axis (ZAxis) of the
//! toroidal surface.
//! Warnings :
//! The radius of the circle can be zero if for the surface
//! MajorRadius = MinorRadius
Standard_EXPORT Handle(Geom_Curve) VIso (const Standard_Real V) const;
//! Computes the point P (U, V) on the surface.
//! P (U, V) = Loc + MinorRadius * Sin (V) * Zdir +
//! (MajorRadius + MinorRadius * Cos(V)) *
//! (cos (U) * XDir + sin (U) * YDir)
//! where Loc is the origin of the placement plane (XAxis, YAxis)
//! XDir is the direction of the XAxis and YDir the direction of
//! the YAxis and ZDir the direction of the ZAxis.
Standard_EXPORT void D0 (const Standard_Real U, const Standard_Real V, gp_Pnt& P) const;
//! Computes the current point and the first derivatives in
//! the directions U and V.
Standard_EXPORT void D1 (const Standard_Real U, const Standard_Real V, gp_Pnt& P, gp_Vec& D1U, gp_Vec& D1V) const;
//! Computes the current point, the first and the second derivatives
//! in the directions U and V.
Standard_EXPORT void D2 (const Standard_Real U, const Standard_Real V, gp_Pnt& P, gp_Vec& D1U, gp_Vec& D1V, gp_Vec& D2U, gp_Vec& D2V, gp_Vec& D2UV) const;
//! Computes the current point, the first,the second and the
//! third derivatives in the directions U and V.
Standard_EXPORT void D3 (const Standard_Real U, const Standard_Real V, gp_Pnt& P, gp_Vec& D1U, gp_Vec& D1V, gp_Vec& D2U, gp_Vec& D2V, gp_Vec& D2UV, gp_Vec& D3U, gp_Vec& D3V, gp_Vec& D3UUV, gp_Vec& D3UVV) const;
//! Computes the derivative of order Nu in the direction u and
//! Nv in the direction v.
//! Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0.
Standard_EXPORT gp_Vec DN (const Standard_Real U, const Standard_Real V, const Standard_Integer Nu, const Standard_Integer Nv) const;
//! Applies the transformation T to this torus.
Standard_EXPORT void Transform (const gp_Trsf& T) ;
//! Creates a new object which is a copy of this torus.
Standard_EXPORT Handle(Geom_Geometry) Copy() const;
DEFINE_STANDARD_RTTI(Geom_ToroidalSurface)
protected:
private:
Standard_Real majorRadius;
Standard_Real minorRadius;
};
#endif // _Geom_ToroidalSurface_HeaderFile
|