Defines a toroidal surface. More...
#include <cadex/Geom/ToroidalSurface.hxx>
Public Member Functions | |
| ToroidalSurface () | |
| Constructor. | |
| ToroidalSurface (const Axis3d &thePosition, double theMajorRadius, double theMinorRadius) | |
| Constructor. | |
| double | MajorRadius () const |
| Returns major radius. | |
| double | MinorRadius () const |
| Returns minor radius. | |
Public Member Functions inherited from cadex::Geom::ElementarySurface | |
| ElementarySurface () | |
| Constructor. | |
| Geom::Axis3d | Position () const |
| Returns a surface axis. | |
| Geom::Point | Location () const |
| Returns origin point. | |
| Geom::Direction | Direction () const |
| Returns Z direction of the axis placement. | |
| Geom::Point2d | Parameter (const Geom::Point &thePoint) const |
| Returns UV-point in surface parametric space for a 3D point. | |
Public Member Functions inherited from cadex::Geom::Surface | |
| Surface () | |
| Constructor. | |
| SurfaceType | Type () const |
| Returns a surface type. | |
| Geom::Continuity | Continuity () const |
| Returns a continuity type of the surface. | |
| Point | Value (double theParameterU, double theParameterV) const |
| Evaluates a point on the surface. | |
| Direction | Normal (double theParameterU, double theParameterV) const |
| Returns the normal direction theNormal at the current point. | |
| bool | IsUPeriodic () const |
| Returns true if the surface is periodic in U direction. | |
| bool | IsVPeriodic () const |
| Returns true if the surface is periodic in V direction. | |
| double | UMin () const |
| Returns a minimum parameter of a definition domain in U direction. | |
| double | UMax () const |
| Returns a maximum parameter of a definition domain in U direction. | |
| double | VMin () const |
| Returns a minimum parameter of a definition domain in V direction. | |
| double | VMax () const |
| Returns a maximum parameter of a definition domain in V direction. | |
| void | Domain (double &theUMin, double &theUMax, double &theVMin, double &theVMax) const |
| Returns a definition domain. | |
| bool | IsTrimmed () const |
| Returns whether surface is trimmed or not. | |
| void | SetTrim (double theUFirst, double theULast, double theVFirst, double theVLast) |
| Trims surface with [theUFirst, theULast] x [theVFirst, theVLast] section. | |
| void | Transform (const Transformation &theTransformation) |
| Applies transformation matrix to this object. | |
| Surface | Transformed (const Transformation &theTransformation) const |
| Returns a copy this object after applying transformation. | |
| void | D0 (double theParameterU, double theParameterV, Point &theValue) const |
| Returns the point theValue of parameter theU, theV on the surface. | |
| void | D1 (double theParameterU, double theParameterV, Point &theValue, Vector &theD1U, Vector &theD1V) const |
| Returns the point theValue and the first derivatives in the directions U theD1U and V theD1V at this point. | |
| void | D2 (double theParameterU, double theParameterV, Point &theValue, Vector &theD1U, Vector &theD1V, Vector &theD2U, Vector &theD2V, Vector &theD2UV) const |
| Returns the point theValue, the first and the second derivatives in the directions U and V at this point. | |
| bool | DN (double theParameterU, double theParameterV, size_t theDerivativeOrder, Geom::Point &theValue, std::vector< Geom::Vector > &theD) const |
| void | Curvature (double theParameterU, double theParameterV, Direction &thePrincipalMaxDirection, Direction &thePrincipalMinDirection) const |
| Returns the max and min principal curvature directions multiplied by max and min value of curvature respectively. | |
| void | Curvature (double theParameterU, double theParameterV, Direction &thePrincipalMaxDirection, Direction &thePrincipalMinDirection, double &theMaxCurvature, double &theMinCurvature) const |
| Returns the max and min principal curvature directions and their values. | |
| void | Mirror (const Point &thePoint) |
| void | Mirror (const Axis1d &theAxis) |
| void | Mirror (const Axis3d &theAxis) |
| Surface | Mirrored (const Point &theRef) const |
| Surface | Mirrored (const Axis1d &theAxis) const |
| Surface | Mirrored (const Axis3d &theAxis) const |
| void | Rotate (const Axis1d &theAxis, double theAngle) |
| Surface | Rotated (const Axis1d &theAxis, double theAngle) const |
| void | Translate (const Vector &theVector) |
| Surface | Translated (const Vector &theVector) const |
| void | Scale (const Point &thePoint, double theScale) |
| Surface | Scaled (const Point &thePoint, double theScale) const |
Public Member Functions inherited from cadex::BaseObject | |
| size_t | Id () const |
| Return unique identifier of public object. | |
| internal::BaseObjectImpl * | Impl () const |
| bool | IsNull () const |
| operator bool () const | |
| template<typename T > | |
| bool | IsOfType () const |
| template<typename T > | |
| T * | Impl () const |
| Reserved for internal use. | |
Static Public Member Functions | |
| static bool | CompareType (const BaseObject &theObject) |
Static Public Member Functions inherited from cadex::Geom::ElementarySurface | |
| static bool | CompareType (const BaseObject &theObject) |
Static Public Member Functions inherited from cadex::Geom::Surface | |
| static bool | CompareType (const BaseObject &theObject) |
Static Public Member Functions inherited from cadex::Geom::Geometry | |
| static bool | CompareType (const BaseObject &theObject) |
Additional Inherited Members | |
Public Types inherited from cadex::BaseObject | |
| typedef std::shared_ptr< internal::BaseObjectImpl > | ImplType |
Protected Member Functions inherited from cadex::Geom::ElementarySurface | |
| ElementarySurface (const ImplType &theImpl) | |
Protected Member Functions inherited from cadex::Geom::Surface | |
| Surface (const ImplType &theImpl) | |
Protected Member Functions inherited from cadex::Geom::Geometry | |
| Geometry (const ImplType &theImpl) | |
Protected Member Functions inherited from cadex::BaseObject | |
| BaseObject (const ImplType &theImpl) | |
Defines a toroidal surface.
A toroidal surface is defined by an axis and a major and minor radius. The following image depicts a toroidal surface example:
A toroidal surface is parametrized as follows: \(\mathbf{S}(u,v) = \mathbf{P} + (R_1 + R_2\cos(v))(\cos(u)\mathbf{D}_x + \sin(u)\mathbf{D}_y) + R_2\sin(v)\mathbf{D}_z\), where
U-parameter is an angle when rotating around the \(\mathbf{D}_z\) axis counterclockwise, and V-parameter is an angle in circular section at a given parameter U. Thus, U-isolines circles lying in the plane containing Z axis and V-isolines are circles in the planes perpendicular to Z axis.
V-isoline at \(v=0\) is a circle of radius \(R_1+R_2\) in the plane defined by an axis placement. U-isoline at \(u=0\) is a circle of radius \(R_2\) in the plane containing Z and X axes.
Radii \(R_1\) and \(R_2\) must be positive. If \(R_2>R_1\) then toroidal surface will be self-intersecting.
Toroidal surface is both U- and V-periodical with periods \(2\pi\).
If a face lies on a full toroidal surface its boundary wire will contain two seam-edges, corresponding to \(u=0\) and \(u=2\pi\), and \(v=0\) and \(v=2\pi\) respectively.
| cadex::Geom::ToroidalSurface::ToroidalSurface | ( | const Axis3d & | thePosition, |
| double | theMajorRadius, | ||
| double | theMinorRadius ) |
Constructor.
Creates a toroidal surface from an axis, major radius and minor radius.
theMajorRadius and theMinorRadius must be positive.
| double cadex::Geom::ToroidalSurface::MajorRadius | ( | ) | const |
Returns major radius.
Returns the value specified in the constructor.
| double cadex::Geom::ToroidalSurface::MinorRadius | ( | ) | const |
Returns minor radius.
Returns the value specified in the constructor.