Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions
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:
More...

#include <Geom_Surface.hxx>

Inheritance diagram for Geom_Surface:
Inheritance graph
[legend]

Public Member Functions

virtual void UReverse ()=0
 Reverses the U direction of parametrization of <me>.
The bounds of the surface are not modified.

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_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 void VReverse ()=0
 Reverses the V direction of parametrization of <me>.
The bounds of the surface are not modified.

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_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 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 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 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_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_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_Boolean IsUPeriodic () const =0
 Checks if this surface is periodic in the u
parametric direction. Returns true if:

virtual Standard_Real UPeriod () const
 Returns the period of this surface in the u
parametric direction.
//! raises if the surface is not uperiodic.

virtual Standard_Boolean IsVPeriodic () const =0
 Checks if this surface is periodic in the v
parametric direction. Returns true if:

virtual Standard_Real VPeriod () const
 Returns the period of this surface in the v parametric direction.
//! raises if the surface is not vperiodic.

virtual Handle_Geom_Curve UIso (const Standard_Real U) const =0
 Computes the U isoparametric curve.

virtual Handle_Geom_Curve VIso (const Standard_Real V) const =0
 Computes the V isoparametric curve.

virtual 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_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_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 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 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 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 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 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.

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.


Detailed Description


Member Function Documentation

virtual void Geom_Surface::Bounds ( Standard_Real U1,
Standard_Real U2,
Standard_Real V1,
Standard_Real V2 
) const [pure virtual]
virtual GeomAbs_Shape Geom_Surface::Continuity ( ) const [pure virtual]
virtual void Geom_Surface::D0 ( const Standard_Real  U,
const Standard_Real  V,
gp_Pnt P 
) const [pure virtual]
virtual void Geom_Surface::D1 ( const Standard_Real  U,
const Standard_Real  V,
gp_Pnt P,
gp_Vec D1U,
gp_Vec D1V 
) const [pure virtual]
virtual 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]
virtual 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]
virtual gp_Vec Geom_Surface::DN ( const Standard_Real  U,
const Standard_Real  V,
const Standard_Integer  Nu,
const Standard_Integer  Nv 
) const [pure virtual]
virtual Standard_Boolean Geom_Surface::IsCNu ( const Standard_Integer  N) const [pure virtual]
virtual Standard_Boolean Geom_Surface::IsCNv ( const Standard_Integer  N) const [pure virtual]
virtual Standard_Boolean Geom_Surface::IsUClosed ( ) const [pure virtual]
virtual Standard_Boolean Geom_Surface::IsUPeriodic ( ) const [pure virtual]
  • 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.

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

virtual Standard_Boolean Geom_Surface::IsVClosed ( ) const [pure virtual]
virtual Standard_Boolean Geom_Surface::IsVPeriodic ( ) const [pure virtual]
  • 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.

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

virtual void Geom_Surface::TransformParameters ( Standard_Real U,
Standard_Real V,
const gp_Trsf T 
) const [virtual]
virtual Handle_Geom_Curve Geom_Surface::UIso ( const Standard_Real  U) const [pure virtual]
virtual Standard_Real Geom_Surface::UPeriod ( ) const [virtual]
virtual void Geom_Surface::UReverse ( ) [pure virtual]
Handle_Geom_Surface Geom_Surface::UReversed ( ) const
virtual Handle_Geom_Curve Geom_Surface::VIso ( const Standard_Real  V) const [pure virtual]
virtual Standard_Real Geom_Surface::VPeriod ( ) const [virtual]
virtual void Geom_Surface::VReverse ( ) [pure virtual]
Handle_Geom_Surface Geom_Surface::VReversed ( ) const

The documentation for this class was generated from the following file: