Open CASCADE Technology 6.6.0
|
Describes a surface of revolution (revolved surface).
Such a surface is obtained by rotating a curve (called
the "meridian") through a complete revolution about
an axis (referred to as the "axis of revolution"). The
curve and the axis must be in the same plane (the
"reference plane" of the surface).
Rotation around the axis of revolution in the
trigonometric sense defines the u parametric
direction. So the u parameter is an angle, and its
origin is given by the position of the meridian on the surface.
The parametric range for the u parameter is: [ 0, 2.*Pi ]
The v parameter is that of the meridian.
Note: A surface of revolution is built from a copy of the
original meridian. As a result the original meridian is
not modified when the surface is modified.
The form of a surface of revolution is typically a
general revolution surface
(GeomAbs_RevolutionForm). It can be:
More...
#include <Geom_SurfaceOfRevolution.hxx>
Public Member Functions | |
Geom_SurfaceOfRevolution (const Handle< Geom_Curve > &C, const gp_Ax1 &A1) | |
C : is the meridian or the referenced curve. A1 is the axis of revolution. The form of a SurfaceOfRevolution can be : . a general revolution surface (RevolutionForm), . a conical surface if the meridian is a line or a trimmed line (ConicalForm), . a cylindrical surface if the meridian is a line or a trimmed line parallel to the revolution axis (CylindricalForm), . a planar surface if the meridian is a line perpendicular to the revolution axis of the surface (PlanarForm). . a spherical surface, . a toroidal surface, . a quadric surface. Warnings : It is not checked that the curve C is planar and that the surface axis is in the plane of the curve. It is not checked that the revolved curve C doesn't self-intersects. | |
void | SetAxis (const gp_Ax1 &A1) |
Changes the axis of revolution. Warnings : It is not checked that the axis is in the plane of the revolved curve. | |
void | SetDirection (const gp_Dir &V) |
Changes the direction of the revolution axis. Warnings : It is not checked that the axis is in the plane of the revolved curve. | |
void | SetBasisCurve (const Handle< Geom_Curve > &C) |
Changes the revolved curve of the surface. Warnings : It is not checked that the curve C is planar and that the surface axis is in the plane of the curve. It is not checked that the revolved curve C doesn't self-intersects. | |
void | SetLocation (const gp_Pnt &P) |
Changes the location point of the revolution axis. Warnings : It is not checked that the axis is in the plane of the revolved curve. | |
gp_Ax1 | Axis () const |
Returns the revolution axis of the surface. | |
const gp_Pnt & | Location () const |
Returns the location point of the axis of revolution. | |
gp_Ax2 | ReferencePlane () const |
Computes the position of the reference plane of the surface defined by the basis curve and the symmetry axis. The location point is the location point of the revolution's axis, the XDirection of the plane is given by the revolution's axis and the orientation of the normal to the plane is given by the sense of revolution. Raised if the revolved curve is not planar or if the revolved curve and the symmetry axis are not in the same plane or if the maximum of distance between the axis and the revolved curve is lower or equal to Resolution from gp. | |
void | UReverse () |
Changes the orientation of this surface of revolution in the u parametric direction. The bounds of the surface are not changed but the given parametric direction is reversed. Hence the orientation of the surface is reversed. As a consequence: | |
Standard_Real | UReversedParameter (const Standard_Real U) const |
Computes the u parameter on the modified surface, when reversing its u parametric direction, for any point of u parameter U on this surface of revolution. In the case of a revolved surface: | |
void | VReverse () |
Changes the orientation of this surface of revolution in the v parametric direction. The bounds of the surface are not changed but the given parametric direction is reversed. Hence the orientation of the surface is reversed. As a consequence: | |
Standard_Real | VReversedParameter (const Standard_Real V) const |
Computes the v parameter on the modified surface, when reversing its v parametric direction, for any point of v parameter V on this surface of revolution. In the case of a revolved surface: | |
virtual void | TransformParameters (Standard_Real &U, Standard_Real &V, const gp_Trsf &T) const |
Computes the parameters on the transformed surface for the transform of the point of parameters U,V on <me>. me->Transformed(T)->Value(U',V') is the same point as me->Value(U,V).Transformed(T) Where U',V' are the new values of U,V after calling me->TranformParameters(U,V,T) This methods multiplies V by BasisCurve()->ParametricTransformation(T) | |
virtual gp_GTrsf2d | ParametricTransformation (const gp_Trsf &T) const |
Returns a 2d transformation used to find the new parameters of a point on the transformed surface. me->Transformed(T)->Value(U',V') is the same point as me->Value(U,V).Transformed(T) Where U',V' are obtained by transforming U,V with th 2d transformation returned by me->ParametricTransformation(T) This methods returns a scale centered on the U axis with BasisCurve()->ParametricTransformation(T) | |
void | Bounds (Standard_Real &U1, Standard_Real &U2, Standard_Real &V1, Standard_Real &V2) const |
Returns the parametric bounds U1, U2 , V1 and V2 of this surface. A surface of revolution is always complete, so U1 = 0, U2 = 2*PI. | |
Standard_Boolean | IsUClosed () const |
IsUClosed always returns true. | |
Standard_Boolean | IsVClosed () const |
IsVClosed returns true if the meridian of this surface of revolution is closed. | |
Standard_Boolean | IsCNu (const Standard_Integer N) const |
IsCNu always returns true. | |
Standard_Boolean | IsCNv (const Standard_Integer N) const |
IsCNv returns true if the degree of continuity of the meridian of this surface of revolution is at least N. //! Raised if N < 0. | |
Standard_Boolean | IsUPeriodic () const |
Returns True. | |
Standard_Boolean | IsVPeriodic () const |
IsVPeriodic returns true if the meridian of this surface of revolution is periodic. | |
Handle_Geom_Curve | UIso (const Standard_Real U) const |
Computes the U isoparametric curve of this surface of revolution. It is the curve obtained by rotating the meridian through an angle U about the axis of revolution. | |
Handle_Geom_Curve | VIso (const Standard_Real V) const |
Computes the U isoparametric curve of this surface of revolution. It is the curve obtained by rotating the meridian through an angle U about the axis of revolution. | |
void | D0 (const Standard_Real U, const Standard_Real V, gp_Pnt &P) const |
Computes the point P (U, V) on the surface. U is the angle of the rotation around the revolution axis. The direction of this axis gives the sense of rotation. V is the parameter of the revolved curve. | |
void | D1 (const Standard_Real U, const Standard_Real V, gp_Pnt &P, gp_Vec &D1U, gp_Vec &D1V) const |
Computes the current point and the first derivatives in the directions U and V. //! Raised if the continuity of the surface is not C1. | |
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 and the second derivatives in the directions U and V. //! Raised if the continuity of the surface is not C2. | |
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 current point, the first,the second and the third derivatives in the directions U and V. //! Raised if the continuity of the surface is not C3. | |
gp_Vec | DN (const Standard_Real U, const Standard_Real V, const Standard_Integer Nu, const Standard_Integer Nv) const |
Computes the derivative of order Nu in the direction u and Nv in the direction v. Raised if the continuity of the surface is not CNu in the u direction and CNv in the v direction. //! Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0. //! The following functions evaluates the local derivatives on surface. Useful to manage discontinuities on the surface. if Side = 1 -> P = S( U+,V ) if Side = -1 -> P = S( U-,V ) else P is betveen discontinuities can be evaluated using methods of global evaluations P = S( U ,V ) | |
void | LocalD0 (const Standard_Real U, const Standard_Real V, const Standard_Integer USide, gp_Pnt &P) const |
void | LocalD1 (const Standard_Real U, const Standard_Real V, const Standard_Integer USide, gp_Pnt &P, gp_Vec &D1U, gp_Vec &D1V) const |
void | LocalD2 (const Standard_Real U, const Standard_Real V, const Standard_Integer USide, gp_Pnt &P, gp_Vec &D1U, gp_Vec &D1V, gp_Vec &D2U, gp_Vec &D2V, gp_Vec &D2UV) const |
void | LocalD3 (const Standard_Real U, const Standard_Real V, const Standard_Integer USide, 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 |
gp_Vec | LocalDN (const Standard_Real U, const Standard_Real V, const Standard_Integer USide, const Standard_Integer Nu, const Standard_Integer Nv) const |
void | Transform (const gp_Trsf &T) |
Applies the transformation T to this surface of revolution. | |
Handle_Geom_Geometry | Copy () const |
Creates a new object which is a copy of this surface of revolution. |
Geom_SurfaceOfRevolution::Geom_SurfaceOfRevolution | ( | const Handle< Geom_Curve > & | C, |
const gp_Ax1 & | A1 | ||
) |
gp_Ax1 Geom_SurfaceOfRevolution::Axis | ( | ) | const |
void Geom_SurfaceOfRevolution::Bounds | ( | Standard_Real & | U1, |
Standard_Real & | U2, | ||
Standard_Real & | V1, | ||
Standard_Real & | V2 | ||
) | const [virtual] |
Implements Geom_Surface.
Handle_Geom_Geometry Geom_SurfaceOfRevolution::Copy | ( | ) | const [virtual] |
Implements Geom_Geometry.
void Geom_SurfaceOfRevolution::D0 | ( | const Standard_Real | U, |
const Standard_Real | V, | ||
gp_Pnt & | P | ||
) | const [virtual] |
Implements Geom_Surface.
void Geom_SurfaceOfRevolution::D1 | ( | const Standard_Real | U, |
const Standard_Real | V, | ||
gp_Pnt & | P, | ||
gp_Vec & | D1U, | ||
gp_Vec & | D1V | ||
) | const [virtual] |
Implements Geom_Surface.
void Geom_SurfaceOfRevolution::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 [virtual] |
Implements Geom_Surface.
void Geom_SurfaceOfRevolution::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 [virtual] |
Implements Geom_Surface.
gp_Vec Geom_SurfaceOfRevolution::DN | ( | const Standard_Real | U, |
const Standard_Real | V, | ||
const Standard_Integer | Nu, | ||
const Standard_Integer | Nv | ||
) | const [virtual] |
Implements Geom_Surface.
Standard_Boolean Geom_SurfaceOfRevolution::IsCNu | ( | const Standard_Integer | N | ) | const [virtual] |
Implements Geom_Surface.
Standard_Boolean Geom_SurfaceOfRevolution::IsCNv | ( | const Standard_Integer | N | ) | const [virtual] |
Implements Geom_Surface.
Standard_Boolean Geom_SurfaceOfRevolution::IsUClosed | ( | ) | const [virtual] |
Implements Geom_Surface.
Standard_Boolean Geom_SurfaceOfRevolution::IsUPeriodic | ( | ) | const [virtual] |
Implements Geom_Surface.
Standard_Boolean Geom_SurfaceOfRevolution::IsVClosed | ( | ) | const [virtual] |
Implements Geom_Surface.
Standard_Boolean Geom_SurfaceOfRevolution::IsVPeriodic | ( | ) | const [virtual] |
Implements Geom_Surface.
void Geom_SurfaceOfRevolution::LocalD0 | ( | const Standard_Real | U, |
const Standard_Real | V, | ||
const Standard_Integer | USide, | ||
gp_Pnt & | P | ||
) | const |
void Geom_SurfaceOfRevolution::LocalD1 | ( | const Standard_Real | U, |
const Standard_Real | V, | ||
const Standard_Integer | USide, | ||
gp_Pnt & | P, | ||
gp_Vec & | D1U, | ||
gp_Vec & | D1V | ||
) | const |
void Geom_SurfaceOfRevolution::LocalD2 | ( | const Standard_Real | U, |
const Standard_Real | V, | ||
const Standard_Integer | USide, | ||
gp_Pnt & | P, | ||
gp_Vec & | D1U, | ||
gp_Vec & | D1V, | ||
gp_Vec & | D2U, | ||
gp_Vec & | D2V, | ||
gp_Vec & | D2UV | ||
) | const |
void Geom_SurfaceOfRevolution::LocalD3 | ( | const Standard_Real | U, |
const Standard_Real | V, | ||
const Standard_Integer | USide, | ||
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 |
gp_Vec Geom_SurfaceOfRevolution::LocalDN | ( | const Standard_Real | U, |
const Standard_Real | V, | ||
const Standard_Integer | USide, | ||
const Standard_Integer | Nu, | ||
const Standard_Integer | Nv | ||
) | const |
const gp_Pnt& Geom_SurfaceOfRevolution::Location | ( | ) | const |
virtual gp_GTrsf2d Geom_SurfaceOfRevolution::ParametricTransformation | ( | const gp_Trsf & | T | ) | const [virtual] |
Reimplemented from Geom_Surface.
gp_Ax2 Geom_SurfaceOfRevolution::ReferencePlane | ( | ) | const |
void Geom_SurfaceOfRevolution::SetAxis | ( | const gp_Ax1 & | A1 | ) |
void Geom_SurfaceOfRevolution::SetBasisCurve | ( | const Handle< Geom_Curve > & | C | ) |
void Geom_SurfaceOfRevolution::SetDirection | ( | const gp_Dir & | V | ) |
void Geom_SurfaceOfRevolution::SetLocation | ( | const gp_Pnt & | P | ) |
void Geom_SurfaceOfRevolution::Transform | ( | const gp_Trsf & | T | ) | [virtual] |
Implements Geom_Geometry.
virtual void Geom_SurfaceOfRevolution::TransformParameters | ( | Standard_Real & | U, |
Standard_Real & | V, | ||
const gp_Trsf & | T | ||
) | const [virtual] |
Reimplemented from Geom_Surface.
Handle_Geom_Curve Geom_SurfaceOfRevolution::UIso | ( | const Standard_Real | U | ) | const [virtual] |
Implements Geom_Surface.
void Geom_SurfaceOfRevolution::UReverse | ( | ) | [virtual] |
Implements Geom_Surface.
Standard_Real Geom_SurfaceOfRevolution::UReversedParameter | ( | const Standard_Real | U | ) | const [virtual] |
Implements Geom_Surface.
Handle_Geom_Curve Geom_SurfaceOfRevolution::VIso | ( | const Standard_Real | V | ) | const [virtual] |
Implements Geom_Surface.
void Geom_SurfaceOfRevolution::VReverse | ( | ) | [virtual] |
Implements Geom_Surface.
Standard_Real Geom_SurfaceOfRevolution::VReversedParameter | ( | const Standard_Real | V | ) | const [virtual] |
Implements Geom_Surface.