OCC Main Page | ModelingData | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals

ModelingData
TKG3d
Geom


Geom_Surface Class Reference

Describes the common behavior of surfaces in 3D
space. The Geom package provides many
implementations of concrete derived surfaces, such as
planes, cylinders, cones, spheres and tori, surfaces of
linear extrusion, surfaces of revolution, Bezier and
BSpline surfaces, and so on.
The key characteristic of these surfaces is that they
are parameterized. Geom_Surface demonstrates:
- how to work with the parametric equation of a
surface to compute the point of parameters (u,
v), and, at this point, the 1st, 2nd ... Nth derivative,
- how to find global information about a surface in
each parametric direction (for example, level of
continuity, whether the surface is closed, its
periodicity, the bounds of the parameters and so on), and
- how the parameters change when geometric
transformations are applied to the surface, or the
orientation is modified.
Note that all surfaces must have a geometric
continuity, and any surface is at least "C0". Generally,
continuity is checked at construction time or when the
curve is edited. Where this is not the case, the
documentation makes this explicit.
Warning
The Geom package does not prevent the construction of
surfaces with null areas, or surfaces which self-intersect.
.

#include <Geom_Surface.hxx>

Inheritance diagram for Geom_Surface:

Inheritance graph
[legend]

Public Member Functions

virtual Standard_EXPORT void UReverse ()=0
 Reverses the U direction of parametrization of <me>.
The bounds of the surface are not modified.
.
Standard_EXPORT Handle_Geom_Surface UReversed () const
 Reverses the U direction of parametrization of <me>.
The bounds of the surface are not modified.
A copy of <me> is returned.
.
virtual Standard_EXPORT Standard_Real UReversedParameter (const Standard_Real U) const =0
 Returns the parameter on the Ureversed surface for
the point of parameter U on <me>.

me->UReversed()->Value(me->UReversedParameter(U),V)

is the same point as

me->Value(U,V)
.
virtual Standard_EXPORT void VReverse ()=0
 Reverses the V direction of parametrization of <me>.
The bounds of the surface are not modified.
.
Standard_EXPORT Handle_Geom_Surface VReversed () const
 Reverses the V direction of parametrization of <me>.
The bounds of the surface are not modified.
A copy of <me> is returned.
.
virtual Standard_EXPORT Standard_Real VReversedParameter (const Standard_Real V) const =0
 Returns the parameter on the Vreversed surface for
the point of parameter V on <me>.

me->VReversed()->Value(U,me->VReversedParameter(V))

is the same point as

me->Value(U,V)
.
virtual Standard_EXPORT 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 does not change <u> and <v>

It can be redefined. For example on the Plane,
Cylinder, Cone, Revolved and Extruded surfaces.
.
virtual Standard_EXPORT 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 an identity transformation

It can be redefined. For example on the Plane,
Cylinder, Cone, Revolved and Extruded surfaces.

.
virtual Standard_EXPORT void Bounds (Standard_Real &U1, Standard_Real &U2, Standard_Real &V1, Standard_Real &V2) const =0
 Returns the parametric bounds U1, U2, V1 and V2 of this surface.
If the surface is infinite, this function can return a value
equal to Precision::Infinite: instead of Standard_Real::LastReal.
.
virtual Standard_EXPORT Standard_Boolean IsUClosed () const =0
 Checks whether this surface is closed in the u
parametric direction.
Returns true if, in the u parametric direction: taking
uFirst and uLast as the parametric bounds in
the u parametric direction, for each parameter v, the
distance between the points P(uFirst, v) and
P(uLast, v) is less than or equal to gp::Resolution().
.
virtual Standard_EXPORT Standard_Boolean IsVClosed () const =0
 Checks whether this surface is closed in the u
parametric direction.
Returns true if, in the v parametric
direction: taking vFirst and vLast as the
parametric bounds in the v parametric direction, for
each parameter u, the distance between the points
P(u, vFirst) and P(u, vLast) is less than
or equal to gp::Resolution().
.
virtual Standard_EXPORT Standard_Boolean IsUPeriodic () const =0
 Checks if this surface is periodic in the u
parametric direction. Returns true if:
- this surface is closed in the u parametric direction, and
- there is a constant T such that the distance
between the points P (u, v) and P (u + T,
v) (or the points P (u, v) and P (u, v +
T)) is less than or equal to gp::Resolution().
Note: T is the parametric period in the u parametric direction.
.
virtual Standard_EXPORT Standard_Real UPeriod () const
 Returns the period of this surface in the u
parametric direction.
//! raises if the surface is not uperiodic.
.
virtual Standard_EXPORT Standard_Boolean IsVPeriodic () const =0
 Checks if this surface is periodic in the v
parametric direction. Returns true if:
- this surface is closed in the v parametric direction, and
- there is a constant T such that the distance
between the points P (u, v) and P (u + T,
v) (or the points P (u, v) and P (u, v +
T)) is less than or equal to gp::Resolution().
Note: T is the parametric period in the v parametric direction.
.
virtual Standard_EXPORT Standard_Real VPeriod () const
 Returns the period of this surface in the v parametric direction.
//! raises if the surface is not vperiodic.
.
virtual Standard_EXPORT Handle_Geom_Curve UIso (const Standard_Real U) const =0
 Computes the U isoparametric curve.
.
virtual Standard_EXPORT Handle_Geom_Curve VIso (const Standard_Real V) const =0
 Computes the V isoparametric curve.
.
virtual Standard_EXPORT GeomAbs_Shape Continuity () const =0
 Returns the Global Continuity of the surface in direction U and V :
C0 : only geometric continuity,
C1 : continuity of the first derivative all along the surface,
C2 : continuity of the second derivative all along the surface,
C3 : continuity of the third derivative all along the surface,
G1 : tangency continuity all along the surface,
G2 : curvature continuity all along the surface,
CN : the order of continuity is infinite.
Example :
If the surface is C1 in the V parametric direction and C2
in the U parametric direction Shape = C1.
.
virtual Standard_EXPORT Standard_Boolean IsCNu (const Standard_Integer N) const =0
 Returns the order of continuity of the surface in the
U parametric direction.
//! Raised if N < 0.
.
virtual Standard_EXPORT Standard_Boolean IsCNv (const Standard_Integer N) const =0
 Returns the order of continuity of the surface in the
V parametric direction.
//! Raised if N < 0.
.
virtual Standard_EXPORT void D0 (const Standard_Real U, const Standard_Real V, gp_Pnt &P) const =0
 Computes the point of parameter U,V on the surface.
Raised only for an "OffsetSurface" if it is not possible to
compute the current point.
.
virtual Standard_EXPORT void D1 (const Standard_Real U, const Standard_Real V, gp_Pnt &P, gp_Vec &D1U, gp_Vec &D1V) const =0
 Computes the point P and the first derivatives in the
directions U and V at this point.
//! Raised if the continuity of the surface is not C1.
.
virtual 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 =0
 Computes the point P, the first and the second derivatives in
the directions U and V at this point.
//! Raised if the continuity of the surface is not C2.
.
virtual 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 =0
 Computes the point P, the first,the second and the third
derivatives in the directions U and V at this point.
//! Raised if the continuity of the surface is not C2.
.
virtual Standard_EXPORT gp_Vec DN (const Standard_Real U, const Standard_Real V, const Standard_Integer Nu, const Standard_Integer Nv) const =0
 ---Purpose ;
Computes the derivative of order Nu in the direction U and Nv
in the direction V at the point P(U, V).
Raised if the continuity of the surface is not CNu in the U
direction or not CNv in the V direction.
//! Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0.

Standard_EXPORT gp_Pnt Value (const Standard_Real U, const Standard_Real V) const
 Computes the point of parameter U on the surface.

It is implemented with D0
Raised only for an "OffsetSurface" if it is not possible to
compute the current point.
.
Standard_EXPORT const Handle (Standard_Type)&DynamicType() const

Member Function Documentation

virtual Standard_EXPORT void Geom_Surface::Bounds Standard_Real &  U1,
Standard_Real &  U2,
Standard_Real &  V1,
Standard_Real &  V2
const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, and Geom_ToroidalSurface.

virtual Standard_EXPORT GeomAbs_Shape Geom_Surface::Continuity  )  const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ElementarySurface, Geom_OffsetSurface, Geom_RectangularTrimmedSurface, and Geom_SweptSurface.

virtual Standard_EXPORT void Geom_Surface::D0 const Standard_Real  U,
const Standard_Real  V,
gp_Pnt &  P
const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, and Geom_ToroidalSurface.

virtual Standard_EXPORT void Geom_Surface::D1 const Standard_Real  U,
const Standard_Real  V,
gp_Pnt &  P,
gp_Vec &  D1U,
gp_Vec &  D1V
const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, and Geom_ToroidalSurface.

virtual Standard_EXPORT void Geom_Surface::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 [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, and Geom_ToroidalSurface.

virtual Standard_EXPORT void Geom_Surface::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 [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, and Geom_ToroidalSurface.

virtual Standard_EXPORT gp_Vec Geom_Surface::DN const Standard_Real  U,
const Standard_Real  V,
const Standard_Integer  Nu,
const Standard_Integer  Nv
const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, and Geom_ToroidalSurface.

Standard_EXPORT const Geom_Surface::Handle Standard_Type   )  const
 

Reimplemented from Geom_Geometry.

Reimplemented in Geom_BezierSurface, Geom_BoundedSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_ElementarySurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, Geom_SweptSurface, and Geom_ToroidalSurface.

virtual Standard_EXPORT Standard_Boolean Geom_Surface::IsCNu const Standard_Integer  N  )  const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ElementarySurface, Geom_OffsetSurface, Geom_RectangularTrimmedSurface, Geom_SurfaceOfLinearExtrusion, and Geom_SurfaceOfRevolution.

virtual Standard_EXPORT Standard_Boolean Geom_Surface::IsCNv const Standard_Integer  N  )  const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ElementarySurface, Geom_OffsetSurface, Geom_RectangularTrimmedSurface, Geom_SurfaceOfLinearExtrusion, and Geom_SurfaceOfRevolution.

virtual Standard_EXPORT Standard_Boolean Geom_Surface::IsUClosed  )  const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, and Geom_ToroidalSurface.

virtual Standard_EXPORT Standard_Boolean Geom_Surface::IsUPeriodic  )  const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, and Geom_ToroidalSurface.

virtual Standard_EXPORT Standard_Boolean Geom_Surface::IsVClosed  )  const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, and Geom_ToroidalSurface.

virtual Standard_EXPORT Standard_Boolean Geom_Surface::IsVPeriodic  )  const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, and Geom_ToroidalSurface.

virtual Standard_EXPORT gp_GTrsf2d Geom_Surface::ParametricTransformation const gp_Trsf &  T  )  const [virtual]
 

Reimplemented in Geom_ConicalSurface, Geom_CylindricalSurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SurfaceOfLinearExtrusion, and Geom_SurfaceOfRevolution.

virtual Standard_EXPORT void Geom_Surface::TransformParameters Standard_Real &  U,
Standard_Real &  V,
const gp_Trsf &  T
const [virtual]
 

Reimplemented in Geom_ConicalSurface, Geom_CylindricalSurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SurfaceOfLinearExtrusion, and Geom_SurfaceOfRevolution.

virtual Standard_EXPORT Handle_Geom_Curve Geom_Surface::UIso const Standard_Real  U  )  const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, and Geom_ToroidalSurface.

virtual Standard_EXPORT Standard_Real Geom_Surface::UPeriod  )  const [virtual]
 

Reimplemented in Geom_OffsetSurface, and Geom_RectangularTrimmedSurface.

virtual Standard_EXPORT void Geom_Surface::UReverse  )  [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ElementarySurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SurfaceOfLinearExtrusion, and Geom_SurfaceOfRevolution.

Standard_EXPORT Handle_Geom_Surface Geom_Surface::UReversed  )  const
 

virtual Standard_EXPORT Standard_Real Geom_Surface::UReversedParameter const Standard_Real  U  )  const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_ElementarySurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, and Geom_ToroidalSurface.

Standard_EXPORT gp_Pnt Geom_Surface::Value const Standard_Real  U,
const Standard_Real  V
const
 

virtual Standard_EXPORT Handle_Geom_Curve Geom_Surface::VIso const Standard_Real  V  )  const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, and Geom_ToroidalSurface.

virtual Standard_EXPORT Standard_Real Geom_Surface::VPeriod  )  const [virtual]
 

Reimplemented in Geom_OffsetSurface, and Geom_RectangularTrimmedSurface.

virtual Standard_EXPORT void Geom_Surface::VReverse  )  [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_ElementarySurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SurfaceOfLinearExtrusion, and Geom_SurfaceOfRevolution.

Standard_EXPORT Handle_Geom_Surface Geom_Surface::VReversed  )  const
 

virtual Standard_EXPORT Standard_Real Geom_Surface::VReversedParameter const Standard_Real  V  )  const [pure virtual]
 

Implemented in Geom_BezierSurface, Geom_BSplineSurface, Geom_ConicalSurface, Geom_CylindricalSurface, Geom_ElementarySurface, Geom_OffsetSurface, Geom_Plane, Geom_RectangularTrimmedSurface, Geom_SphericalSurface, Geom_SurfaceOfLinearExtrusion, Geom_SurfaceOfRevolution, and Geom_ToroidalSurface.


The documentation for this class was generated from the following file:
Generated on Mon Aug 25 13:22:57 2008 for OpenCASCADE by  doxygen 1.4.1