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

ModelingData
TKG3d
Geom


Geom_BezierSurface Class Reference

Describes a rational or non-rational Bezier surface.
- A non-rational Bezier surface is defined by a table
of poles (also known as control points).
- A rational Bezier surface is defined by a table of
poles with varying associated weights.
This data is manipulated using two associative 2D arrays:
- the poles table, which is a 2D array of gp_Pnt, and
- the weights table, which is a 2D array of reals.
The bounds of these arrays are:
- 1 and NbUPoles for the row bounds, where
NbUPoles is the number of poles of the surface
in the u parametric direction, and
- 1 and NbVPoles for the column bounds, where
NbVPoles is the number of poles of the surface
in the v parametric direction.
The poles of the surface, the "control points", are the
points used to shape and reshape the surface. They
comprise a rectangular network of points:
- The points (1, 1), (NbUPoles, 1), (1,
NbVPoles) and (NbUPoles, NbVPoles)
are the four parametric "corners" of the surface.
- The first column of poles and the last column of
poles define two Bezier curves which delimit the
surface in the v parametric direction. These are
the v isoparametric curves corresponding to
values 0 and 1 of the v parameter.
- The first row of poles and the last row of poles
define two Bezier curves which delimit the surface
in the u parametric direction. These are the u
isoparametric curves corresponding to values 0
and 1 of the u parameter.
It is more difficult to define a geometrical significance
for the weights. However they are useful for
representing a quadric surface precisely. Moreover, if
the weights of all the poles are equal, the surface has
a polynomial equation, and hence is a "non-rational surface".
The non-rational surface is a special, but frequently
used, case, where all poles have identical weights.
The weights are defined and used only in the case of
a rational surface. This rational characteristic is
defined in each parametric direction. Hence, a
surface can be rational in the u parametric direction,
and non-rational in the v parametric direction.
Likewise, the degree of a surface is defined in each
parametric direction. The degree of a Bezier surface
in a given parametric direction is equal to the number
of poles of the surface in that parametric direction,
minus 1. This must be greater than or equal to 1.
However, the degree for a Geom_BezierSurface is
limited to a value of (25) which is defined and
controlled by the system. This value is returned by the
function MaxDegree.
The parameter range for a Bezier surface is [ 0, 1 ]
in the two parametric directions.
A Bezier surface can also be closed, or open, in each
parametric direction. If the first row of poles is
identical to the last row of poles, the surface is closed
in the u parametric direction. If the first column of
poles is identical to the last column of poles, the
surface is closed in the v parametric direction.
The continuity of a Bezier surface is infinite in the u
parametric direction and the in v parametric direction.
Note: It is not possible to build a Bezier surface with
negative weights. Any weight value that is less than,
or equal to, gp::Resolution() is considered
to be zero. Two weight values, W1 and W2, are
considered equal if: |W2-W1| <= gp::Resolution()
.

#include <Geom_BezierSurface.hxx>

Inheritance diagram for Geom_BezierSurface:

Inheritance graph
[legend]

Public Member Functions

Standard_EXPORT Geom_BezierSurface (const TColgp_Array2OfPnt &SurfacePoles)
 Creates a non-rational Bezier surface with a set of poles.
Control points representation :
SPoles(Uorigin,Vorigin) ...................SPoles(Uorigin,Vend)
. .
. .
SPoles(Uend, Vorigin) .....................SPoles(Uend, Vend)
For the double array the row indice corresponds to the parametric
U direction and the columns indice corresponds to the parametric
V direction.
The weights are defaulted to all being 1.
Raised if the number of poles of the surface is lower than 2
or greater than MaxDegree + 1 in one of the two directions
U or V.
.
Standard_EXPORT Geom_BezierSurface (const TColgp_Array2OfPnt &SurfacePoles, const TColStd_Array2OfReal &PoleWeights)
 ---Purpose
Creates a rational Bezier surface with a set of poles and a
set of weights.
For the double array the row indice corresponds to the parametric
U direction and the columns indice corresponds to the parametric
V direction.
If all the weights are identical the surface is considered as
non-rational (the tolerance criterion is Resolution from package
gp).
Raised if SurfacePoles and PoleWeights have not the same
Rowlength or have not the same ColLength.
Raised if PoleWeights (i, j) <= Resolution from gp;
Raised if the number of poles of the surface is lower than 2
or greater than MaxDegree + 1 in one of the two directions U or V.

Standard_EXPORT void ExchangeUV ()
 Exchanges the direction U and V on a Bezier surface
As a consequence:
- the poles and weights tables are transposed,
- degrees, rational characteristics and so on are
exchanged between the two parametric directions, and
- the orientation of the surface is reversed.
.
Standard_EXPORT void Increase (const Standard_Integer UDeg, const Standard_Integer VDeg)
 Increases the degree of this Bezier surface in the two parametric directions.
Raised if UDegree < UDegree <me> or VDegree < VDegree <me>
Raised if the degree of the surface is greater than MaxDegree
in one of the two directions U or V.
.
Standard_EXPORT void InsertPoleColAfter (const Standard_Integer VIndex, const TColgp_Array1OfPnt &CPoles)
 Inserts a column of poles. If the surface is rational the weights
values associated with CPoles are equal defaulted to 1.
Raised if Vindex < 1 or VIndex > NbVPoles.
raises if VDegree is greater than MaxDegree.
raises if the Length of CPoles is not equal to NbUPoles
.
Standard_EXPORT void InsertPoleColAfter (const Standard_Integer VIndex, const TColgp_Array1OfPnt &CPoles, const TColStd_Array1OfReal &CPoleWeights)
 Inserts a column of poles and weights.
If the surface was non-rational it can become rational.
Raised if Vindex < 1 or VIndex > NbVPoles.
//! Raised if
. VDegree is greater than MaxDegree.
. the Length of CPoles is not equal to NbUPoles
. a weight value is lower or equal to Resolution from
package gp
.
Standard_EXPORT void InsertPoleColBefore (const Standard_Integer VIndex, const TColgp_Array1OfPnt &CPoles)
 Inserts a column of poles. If the surface is rational the weights
values associated with CPoles are equal defaulted to 1.
Raised if Vindex < 1 or VIndex > NbVPoles.
Raised if VDegree is greater than MaxDegree.
Raised if the Length of CPoles is not equal to NbUPoles
.
Standard_EXPORT void InsertPoleColBefore (const Standard_Integer VIndex, const TColgp_Array1OfPnt &CPoles, const TColStd_Array1OfReal &CPoleWeights)
 Inserts a column of poles and weights.
If the surface was non-rational it can become rational.
Raised if Vindex < 1 or VIndex > NbVPoles.
//! Raised if :
. VDegree is greater than MaxDegree.
. the Length of CPoles is not equal to NbUPoles
. a weight value is lower or equal to Resolution from
package gp
.
Standard_EXPORT void InsertPoleRowAfter (const Standard_Integer UIndex, const TColgp_Array1OfPnt &CPoles)
 Inserts a row of poles. If the surface is rational the weights
values associated with CPoles are equal defaulted to 1.
Raised if Uindex < 1 or UIndex > NbUPoles.
Raised if UDegree is greater than MaxDegree.
Raised if the Length of CPoles is not equal to NbVPoles
.
Standard_EXPORT void InsertPoleRowAfter (const Standard_Integer UIndex, const TColgp_Array1OfPnt &CPoles, const TColStd_Array1OfReal &CPoleWeights)
 Inserts a row of poles and weights.
If the surface was non-rational it can become rational.
Raised if Uindex < 1 or UIndex > NbUPoles.
//! Raised if :
. UDegree is greater than MaxDegree.
. the Length of CPoles is not equal to NbVPoles
. a weight value is lower or equal to Resolution from
package gp
.
Standard_EXPORT void InsertPoleRowBefore (const Standard_Integer UIndex, const TColgp_Array1OfPnt &CPoles)
 Inserts a row of poles. If the surface is rational the weights
values associated with CPoles are equal defaulted to 1.
Raised if Uindex < 1 or UIndex > NbUPoles.
Raised if UDegree is greater than MaxDegree.
Raised if the Length of CPoles is not equal to NbVPoles
.
Standard_EXPORT void InsertPoleRowBefore (const Standard_Integer UIndex, const TColgp_Array1OfPnt &CPoles, const TColStd_Array1OfReal &CPoleWeights)
 Inserts a row of poles and weights.
If the surface was non-rational it can become rational.
Raised if Uindex < 1 or UIndex > NbUPoles.
//! Raised if :
. UDegree is greater than MaxDegree.
. the Length of CPoles is not equal to NbVPoles
. a weight value is lower or equal to Resolution from
pacakage gp
.
Standard_EXPORT void RemovePoleCol (const Standard_Integer VIndex)
 Removes a column of poles.
If the surface was rational it can become non-rational.
Raised if NbVPoles <= 2 after removing, a Bezier surface
must have at least two columns of poles.
//! Raised if Vindex < 1 or VIndex > NbVPoles
.
Standard_EXPORT void RemovePoleRow (const Standard_Integer UIndex)
 Removes a row of poles.
If the surface was rational it can become non-rational.
Raised if NbUPoles <= 2 after removing, a Bezier surface
must have at least two rows of poles.
//! Raised if Uindex < 1 or UIndex > NbUPoles
.
Standard_EXPORT void Segment (const Standard_Real U1, const Standard_Real U2, const Standard_Real V1, const Standard_Real V2)
 Modifies this Bezier surface by segmenting it
between U1 and U2 in the u parametric direction,
and between V1 and V2 in the v parametric
direction. U1, U2, V1, and V2 can be outside the
bounds of this surface.
- U1 and U2 isoparametric Bezier curves,
segmented between V1 and V2, become the two
bounds of the surface in the v parametric
direction (0. and 1. u isoparametric curves).
- V1 and V2 isoparametric Bezier curves,
segmented between U1 and U2, become the two
bounds of the surface in the u parametric
direction (0. and 1. v isoparametric curves).
The poles and weights tables are modified, but the
degree of this surface in the u and v parametric
directions does not change.
U1 can be greater than U2, and V1 can be greater
than V2. In these cases, the corresponding
parametric direction is inverted. The orientation of
the surface is inverted if one (and only one)
parametric direction is inverted.
.
Standard_EXPORT void SetPole (const Standard_Integer UIndex, const Standard_Integer VIndex, const gp_Pnt &P)
 Modifies a pole value.
If the surface is rational the weight of range (UIndex, VIndex)
is not modified.
Raised if UIndex < 1 or UIndex > NbUPoles or VIndex < 1
or VIndex > NbVPoles.
.
Standard_EXPORT void SetPole (const Standard_Integer UIndex, const Standard_Integer VIndex, const gp_Pnt &P, const Standard_Real Weight)
 Substitutes the pole and the weight of range UIndex, VIndex.
If the surface <me> is not rational it can become rational.
if the surface was rational it can become non-rational.
raises if UIndex < 1 or UIndex > NbUPoles or VIndex < 1
or VIndex > NbVPoles.
//! Raised if Weight <= Resolution from package gp.
.
Standard_EXPORT void SetPoleCol (const Standard_Integer VIndex, const TColgp_Array1OfPnt &CPoles)
 Modifies a column of poles.
The length of CPoles can be lower but not greater than NbUPoles
so you can modify just a part of the column.
//! Raised if VIndex < 1 or VIndex > NbVPoles
Raised if CPoles.Lower() < 1 or CPoles.Upper() > NbUPoles
.
Standard_EXPORT void SetPoleCol (const Standard_Integer VIndex, const TColgp_Array1OfPnt &CPoles, const TColStd_Array1OfReal &CPoleWeights)
 Modifies a column of poles.
If the surface was rational it can become non-rational
If the surface was non-rational it can become rational.
The length of CPoles can be lower but not greater than NbUPoles
so you can modify just a part of the column.
//! Raised if VIndex < 1 or VIndex > NbVPoles
Raised if CPoles.Lower() < 1 or CPoles.Upper() > NbUPoles
Raised if CPoleWeights and CPoles have not the same bounds.
Raised if one of the weight value CPoleWeights (i) is lower
or equal to Resolution from package gp.
.
Standard_EXPORT void SetPoleRow (const Standard_Integer UIndex, const TColgp_Array1OfPnt &CPoles)
 Modifies a row of poles.
The length of CPoles can be lower but not greater than NbVPoles
so you can modify just a part of the row.
//! Raised if UIndex < 1 or UIndex > NbUPoles
Raised if CPoles.Lower() < 1 or CPoles.Upper() > NbVPoles
.
Standard_EXPORT void SetPoleRow (const Standard_Integer UIndex, const TColgp_Array1OfPnt &CPoles, const TColStd_Array1OfReal &CPoleWeights)
 Modifies a row of poles and weights.
If the surface was rational it can become non-rational.
If the surface was non-rational it can become rational.
The length of CPoles can be lower but not greater than NbVPoles
so you can modify just a part of the row.
//! Raised if UIndex < 1 or UIndex > NbUPoles
Raised if CPoles.Lower() < 1 or CPoles.Upper() > NbVPoles
Raised if CPoleWeights and CPoles have not the same bounds.
Raised if one of the weight value CPoleWeights (i) is lower
or equal to Resolution from gp.
.
Standard_EXPORT void SetWeight (const Standard_Integer UIndex, const Standard_Integer VIndex, const Standard_Real Weight)
 Modifies the weight of the pole of range UIndex, VIndex.
If the surface was non-rational it can become rational.
If the surface was rational it can become non-rational.
Raised if UIndex < 1 or UIndex > NbUPoles or VIndex < 1 or
VIndex > NbVPoles.
//! Raised if Weight <= Resolution from package gp.
.
Standard_EXPORT void SetWeightCol (const Standard_Integer VIndex, const TColStd_Array1OfReal &CPoleWeights)
 Modifies a column of weights.
If the surface was rational it can become non-rational.
If the surface was non-rational it can become rational.
The length of CPoleWeights can be lower but not greater than
NbUPoles.
//! Raised if VIndex < 1 or VIndex > NbVPoles
Raised if CPoleWeights.Lower() < 1 or CPoleWeights.Upper() >
NbUPoles
Raised if one of the weight value CPoleWeights (i) is lower
or equal to Resolution from package gp.
.
Standard_EXPORT void SetWeightRow (const Standard_Integer UIndex, const TColStd_Array1OfReal &CPoleWeights)
 Modifies a row of weights.
If the surface was rational it can become non-rational.
If the surface was non-rational it can become rational.
The length of CPoleWeights can be lower but not greater than
NbVPoles.
//! Raised if UIndex < 1 or UIndex > NbUPoles
Raised if CPoleWeights.Lower() < 1 or CPoleWeights.Upper() >
NbVPoles
Raised if one of the weight value CPoleWeights (i) is lower
or equal to Resolution from package gp.
.
Standard_EXPORT void UReverse ()
 Changes the orientation of this Bezier surface 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.
.
Standard_EXPORT Standard_Real UReversedParameter (const Standard_Real U) const
 Computes the u (or v) parameter on the modified
surface, produced by reversing its u (or v) parametric
direction, for any point of u parameter U (or of v
parameter V) on this Bezier surface.
In the case of a Bezier surface, these functions return respectively:
- 1.-U, or 1.-V.
.
Standard_EXPORT void VReverse ()
 Changes the orientation of this Bezier surface 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.
.
Standard_EXPORT Standard_Real VReversedParameter (const Standard_Real V) const
 Computes the u (or v) parameter on the modified
surface, produced by reversing its u (or v) parametric
direction, for any point of u parameter U (or of v
parameter V) on this Bezier surface.
In the case of a Bezier surface, these functions return respectively:
- 1.-U, or 1.-V.
.
Standard_EXPORT 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 Bezier surface.
In the case of a Bezier surface, this function returns
U1 = 0, V1 = 0, U2 = 1, V2 = 1.
.
Standard_EXPORT GeomAbs_Shape Continuity () const
 Returns the continuity of the surface CN : the order of
continuity is infinite.
.
Standard_EXPORT void D0 (const Standard_Real U, const Standard_Real V, gp_Pnt &P) const
 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.
.
Standard_EXPORT void D1 (const Standard_Real U, const Standard_Real V, gp_Pnt &P, gp_Vec &D1U, gp_Vec &D1V) const
 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.
.
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 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.
.
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 P, the point of parameters (U, V) of this Bezier surface, and
- one or more of the following sets of vectors:
- D1U and D1V, the first derivative vectors at this point,
- D2U, D2V and D2UV, the second derivative
vectors at this point,
- D3U, D3V, D3UUV and D3UVV, the third
derivative vectors at this point.
Note: The parameters U and V can be outside the bounds of the surface.
.
Standard_EXPORT 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 u
parametric direction, and Nv in the v parametric
direction, at the point of parameters (U, V) of this Bezier surface.
Note: The parameters U and V can be outside the bounds of the surface.
Exceptions
Standard_RangeError if:
- Nu + Nv is less than 1, or Nu or Nv is negative.
.
Standard_EXPORT Standard_Integer NbUPoles () const
 Returns the number of poles in the U direction.
.
Standard_EXPORT Standard_Integer NbVPoles () const
 Returns the number of poles in the V direction.
.
Standard_EXPORT gp_Pnt Pole (const Standard_Integer UIndex, const Standard_Integer VIndex) const
 Returns the pole of range UIndex, VIndex
//! Raised if UIndex < 1 or UIndex > NbUPoles, or
VIndex < 1 or VIndex > NbVPoles.
.
Standard_EXPORT void Poles (TColgp_Array2OfPnt &P) const
 Returns the poles of the Bezier surface.
Raised if the length of P in the U an V direction is not equal to
NbUPoles and NbVPoles.
.
Standard_EXPORT Standard_Integer UDegree () const
 Returns the degree of the surface in the U direction it is
NbUPoles - 1
.
Standard_EXPORT Handle_Geom_Curve UIso (const Standard_Real U) const
 Computes the U isoparametric curve. For a Bezier surface the
UIso curve is a Bezier curve.
.
Standard_EXPORT Standard_Integer VDegree () const
 Returns the degree of the surface in the V direction it is
NbVPoles - 1
.
Standard_EXPORT Handle_Geom_Curve VIso (const Standard_Real V) const
 Computes the V isoparametric curve. For a Bezier surface the
VIso curve is a Bezier curve.
.
Standard_EXPORT Standard_Real Weight (const Standard_Integer UIndex, const Standard_Integer VIndex) const
 Returns the weight of range UIndex, VIndex
Raised if UIndex < 1 or UIndex > NbUPoles, or
VIndex < 1 or VIndex > NbVPoles.
.
Standard_EXPORT void Weights (TColStd_Array2OfReal &W) const
 Returns the weights of the Bezier surface.
Raised if the length of W in the U an V direction is not
equal to NbUPoles and NbVPoles.
.
Standard_EXPORT Standard_Boolean IsUClosed () const
 Returns True if the first control points row and the
last control points row are identical. The tolerance
criterion is Resolution from package gp.
.
Standard_EXPORT Standard_Boolean IsVClosed () const
 Returns True if the first control points column
and the last control points column are identical.
The tolerance criterion is Resolution from package gp.
.
Standard_EXPORT Standard_Boolean IsCNu (const Standard_Integer N) const
 Returns True, a Bezier surface is always CN
.
Standard_EXPORT Standard_Boolean IsCNv (const Standard_Integer N) const
 Returns True, a BezierSurface is always CN
.
Standard_EXPORT Standard_Boolean IsUPeriodic () const
 Returns False.
.
Standard_EXPORT Standard_Boolean IsVPeriodic () const
 Returns False.
.
Standard_EXPORT Standard_Boolean IsURational () const
 Returns False if the weights are identical in the U direction,
The tolerance criterion is Resolution from package gp.
Example :
|1.0, 1.0, 1.0|
if Weights = |0.5, 0.5, 0.5| returns False
|2.0, 2.0, 2.0|
.
Standard_EXPORT Standard_Boolean IsVRational () const
 Returns False if the weights are identical in the V direction,
The tolerance criterion is Resolution from package gp.
Example :
|1.0, 2.0, 0.5|
if Weights = |1.0, 2.0, 0.5| returns False
|1.0, 2.0, 0.5|
.
Standard_EXPORT void Transform (const gp_Trsf &T)
 Applies the transformation T to this Bezier surface.
.
Standard_EXPORT void Resolution (const Standard_Real Tolerance3D, Standard_Real &UTolerance, Standard_Real &VTolerance)
 Computes two tolerance values for this Bezier
surface, based on the given tolerance in 3D space
Tolerance3D. The tolerances computed are:
- UTolerance in the u parametric direction, and
- VTolerance in the v parametric direction.
If f(u,v) is the equation of this Bezier surface,
UTolerance and VTolerance guarantee that:
| u1 - u0 | < UTolerance and
| v1 - v0 | < VTolerance
====> |f (u1,v1) - f (u0,v0)| < Tolerance3D
.
Standard_EXPORT Handle_Geom_Geometry Copy () const
 Creates a new object which is a copy of this Bezier surface.
.
Standard_EXPORT const Handle (Standard_Type)&DynamicType() const

Static Public Member Functions

static Standard_EXPORT Standard_Integer MaxDegree ()
 Returns the value of the maximum polynomial degree of a
Bezier surface. This value is 25.
.

Private Member Functions

Standard_EXPORT Geom_BezierSurface (const Handle(TColgp_HArray2OfPnt)&SurfacePoles, const Handle(TColgp_HArray2OfPnt)&SurfaceCoefficients, const Handle(TColStd_HArray2OfReal)&PoleWeights, const Handle(TColStd_HArray2OfReal)&CoefficientWeights, const Standard_Boolean IsURational, const Standard_Boolean IsVRational)
Standard_EXPORT void Init (const Handle(TColgp_HArray2OfPnt)&Poles, const Handle(TColStd_HArray2OfReal)&Weights)
 Set poles to Poles, weights to Weights (not
copied).
Create the arrays of coefficients. Poles
and Weights are assumed to have the first
coefficient 1.

if nbpoles < 2 or nbpoles > MaDegree
.
Standard_EXPORT void UpdateCoefficients (const Standard_Real U=0.0, const Standard_Real V=0.0)
 Recompute the coeficients.
.

Private Attributes

Standard_Boolean urational
Standard_Boolean vrational
Handle_TColgp_HArray2OfPnt poles
Handle_TColStd_HArray2OfReal weights
Handle_TColgp_HArray2OfPnt coeffs
Handle_TColStd_HArray2OfReal wcoeffs
Standard_Real ucacheparameter
Standard_Real vcacheparameter
Standard_Real ucachespanlenght
Standard_Real vcachespanlenght
Standard_Integer ucachespanindex
Standard_Integer vcachespanindex
Standard_Integer validcache
Standard_Real umaxderivinv
Standard_Real vmaxderivinv
Standard_Boolean maxderivinvok

Constructor & Destructor Documentation

Standard_EXPORT Geom_BezierSurface::Geom_BezierSurface const TColgp_Array2OfPnt &  SurfacePoles  ) 
 

Standard_EXPORT Geom_BezierSurface::Geom_BezierSurface const TColgp_Array2OfPnt &  SurfacePoles,
const TColStd_Array2OfReal &  PoleWeights
 

Standard_EXPORT Geom_BezierSurface::Geom_BezierSurface const Handle(TColgp_HArray2OfPnt)&  SurfacePoles,
const Handle(TColgp_HArray2OfPnt)&  SurfaceCoefficients,
const Handle(TColStd_HArray2OfReal)&  PoleWeights,
const Handle(TColStd_HArray2OfReal)&  CoefficientWeights,
const Standard_Boolean  IsURational,
const Standard_Boolean  IsVRational
[private]
 


Member Function Documentation

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

Implements Geom_Surface.

Standard_EXPORT GeomAbs_Shape Geom_BezierSurface::Continuity  )  const [virtual]
 

Implements Geom_Surface.

Standard_EXPORT Handle_Geom_Geometry Geom_BezierSurface::Copy  )  const [virtual]
 

Implements Geom_Geometry.

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

Implements Geom_Surface.

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

Implements Geom_Surface.

Standard_EXPORT void Geom_BezierSurface::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.

Standard_EXPORT void Geom_BezierSurface::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.

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

Implements Geom_Surface.

Standard_EXPORT void Geom_BezierSurface::ExchangeUV  ) 
 

Standard_EXPORT const Geom_BezierSurface::Handle Standard_Type   )  const
 

Reimplemented from Geom_BoundedSurface.

Standard_EXPORT void Geom_BezierSurface::Increase const Standard_Integer  UDeg,
const Standard_Integer  VDeg
 

Standard_EXPORT void Geom_BezierSurface::Init const Handle(TColgp_HArray2OfPnt)&  Poles,
const Handle(TColStd_HArray2OfReal)&  Weights
[private]
 

Standard_EXPORT void Geom_BezierSurface::InsertPoleColAfter const Standard_Integer  VIndex,
const TColgp_Array1OfPnt &  CPoles,
const TColStd_Array1OfReal &  CPoleWeights
 

Standard_EXPORT void Geom_BezierSurface::InsertPoleColAfter const Standard_Integer  VIndex,
const TColgp_Array1OfPnt &  CPoles
 

Standard_EXPORT void Geom_BezierSurface::InsertPoleColBefore const Standard_Integer  VIndex,
const TColgp_Array1OfPnt &  CPoles,
const TColStd_Array1OfReal &  CPoleWeights
 

Standard_EXPORT void Geom_BezierSurface::InsertPoleColBefore const Standard_Integer  VIndex,
const TColgp_Array1OfPnt &  CPoles
 

Standard_EXPORT void Geom_BezierSurface::InsertPoleRowAfter const Standard_Integer  UIndex,
const TColgp_Array1OfPnt &  CPoles,
const TColStd_Array1OfReal &  CPoleWeights
 

Standard_EXPORT void Geom_BezierSurface::InsertPoleRowAfter const Standard_Integer  UIndex,
const TColgp_Array1OfPnt &  CPoles
 

Standard_EXPORT void Geom_BezierSurface::InsertPoleRowBefore const Standard_Integer  UIndex,
const TColgp_Array1OfPnt &  CPoles,
const TColStd_Array1OfReal &  CPoleWeights
 

Standard_EXPORT void Geom_BezierSurface::InsertPoleRowBefore const Standard_Integer  UIndex,
const TColgp_Array1OfPnt &  CPoles
 

Standard_EXPORT Standard_Boolean Geom_BezierSurface::IsCNu const Standard_Integer  N  )  const [virtual]
 

Implements Geom_Surface.

Standard_EXPORT Standard_Boolean Geom_BezierSurface::IsCNv const Standard_Integer  N  )  const [virtual]
 

Implements Geom_Surface.

Standard_EXPORT Standard_Boolean Geom_BezierSurface::IsUClosed  )  const [virtual]
 

Implements Geom_Surface.

Standard_EXPORT Standard_Boolean Geom_BezierSurface::IsUPeriodic  )  const [virtual]
 

Implements Geom_Surface.

Standard_EXPORT Standard_Boolean Geom_BezierSurface::IsURational  )  const
 

Standard_EXPORT Standard_Boolean Geom_BezierSurface::IsVClosed  )  const [virtual]
 

Implements Geom_Surface.

Standard_EXPORT Standard_Boolean Geom_BezierSurface::IsVPeriodic  )  const [virtual]
 

Implements Geom_Surface.

Standard_EXPORT Standard_Boolean Geom_BezierSurface::IsVRational  )  const
 

static Standard_EXPORT Standard_Integer Geom_BezierSurface::MaxDegree  )  [static]
 

Standard_EXPORT Standard_Integer Geom_BezierSurface::NbUPoles  )  const
 

Standard_EXPORT Standard_Integer Geom_BezierSurface::NbVPoles  )  const
 

Standard_EXPORT gp_Pnt Geom_BezierSurface::Pole const Standard_Integer  UIndex,
const Standard_Integer  VIndex
const
 

Standard_EXPORT void Geom_BezierSurface::Poles TColgp_Array2OfPnt &  P  )  const
 

Standard_EXPORT void Geom_BezierSurface::RemovePoleCol const Standard_Integer  VIndex  ) 
 

Standard_EXPORT void Geom_BezierSurface::RemovePoleRow const Standard_Integer  UIndex  ) 
 

Standard_EXPORT void Geom_BezierSurface::Resolution const Standard_Real  Tolerance3D,
Standard_Real &  UTolerance,
Standard_Real &  VTolerance
 

Standard_EXPORT void Geom_BezierSurface::Segment const Standard_Real  U1,
const Standard_Real  U2,
const Standard_Real  V1,
const Standard_Real  V2
 

Standard_EXPORT void Geom_BezierSurface::SetPole const Standard_Integer  UIndex,
const Standard_Integer  VIndex,
const gp_Pnt &  P,
const Standard_Real  Weight
 

Standard_EXPORT void Geom_BezierSurface::SetPole const Standard_Integer  UIndex,
const Standard_Integer  VIndex,
const gp_Pnt &  P
 

Standard_EXPORT void Geom_BezierSurface::SetPoleCol const Standard_Integer  VIndex,
const TColgp_Array1OfPnt &  CPoles,
const TColStd_Array1OfReal &  CPoleWeights
 

Standard_EXPORT void Geom_BezierSurface::SetPoleCol const Standard_Integer  VIndex,
const TColgp_Array1OfPnt &  CPoles
 

Standard_EXPORT void Geom_BezierSurface::SetPoleRow const Standard_Integer  UIndex,
const TColgp_Array1OfPnt &  CPoles,
const TColStd_Array1OfReal &  CPoleWeights
 

Standard_EXPORT void Geom_BezierSurface::SetPoleRow const Standard_Integer  UIndex,
const TColgp_Array1OfPnt &  CPoles
 

Standard_EXPORT void Geom_BezierSurface::SetWeight const Standard_Integer  UIndex,
const Standard_Integer  VIndex,
const Standard_Real  Weight
 

Standard_EXPORT void Geom_BezierSurface::SetWeightCol const Standard_Integer  VIndex,
const TColStd_Array1OfReal &  CPoleWeights
 

Standard_EXPORT void Geom_BezierSurface::SetWeightRow const Standard_Integer  UIndex,
const TColStd_Array1OfReal &  CPoleWeights
 

Standard_EXPORT void Geom_BezierSurface::Transform const gp_Trsf &  T  )  [virtual]
 

Implements Geom_Geometry.

Standard_EXPORT Standard_Integer Geom_BezierSurface::UDegree  )  const
 

Standard_EXPORT Handle_Geom_Curve Geom_BezierSurface::UIso const Standard_Real  U  )  const [virtual]
 

Implements Geom_Surface.

Standard_EXPORT void Geom_BezierSurface::UpdateCoefficients const Standard_Real  U = 0.0,
const Standard_Real  V = 0.0
[private]
 

Standard_EXPORT void Geom_BezierSurface::UReverse  )  [virtual]
 

Implements Geom_Surface.

Standard_EXPORT Standard_Real Geom_BezierSurface::UReversedParameter const Standard_Real  U  )  const [virtual]
 

Implements Geom_Surface.

Standard_EXPORT Standard_Integer Geom_BezierSurface::VDegree  )  const
 

Standard_EXPORT Handle_Geom_Curve Geom_BezierSurface::VIso const Standard_Real  V  )  const [virtual]
 

Implements Geom_Surface.

Standard_EXPORT void Geom_BezierSurface::VReverse  )  [virtual]
 

Implements Geom_Surface.

Standard_EXPORT Standard_Real Geom_BezierSurface::VReversedParameter const Standard_Real  V  )  const [virtual]
 

Implements Geom_Surface.

Standard_EXPORT Standard_Real Geom_BezierSurface::Weight const Standard_Integer  UIndex,
const Standard_Integer  VIndex
const
 

Standard_EXPORT void Geom_BezierSurface::Weights TColStd_Array2OfReal &  W  )  const
 


Field Documentation

Handle_TColgp_HArray2OfPnt Geom_BezierSurface::coeffs [private]
 

Standard_Boolean Geom_BezierSurface::maxderivinvok [private]
 

Handle_TColgp_HArray2OfPnt Geom_BezierSurface::poles [private]
 

Standard_Real Geom_BezierSurface::ucacheparameter [private]
 

Standard_Integer Geom_BezierSurface::ucachespanindex [private]
 

Standard_Real Geom_BezierSurface::ucachespanlenght [private]
 

Standard_Real Geom_BezierSurface::umaxderivinv [private]
 

Standard_Boolean Geom_BezierSurface::urational [private]
 

Standard_Integer Geom_BezierSurface::validcache [private]
 

Standard_Real Geom_BezierSurface::vcacheparameter [private]
 

Standard_Integer Geom_BezierSurface::vcachespanindex [private]
 

Standard_Real Geom_BezierSurface::vcachespanlenght [private]
 

Standard_Real Geom_BezierSurface::vmaxderivinv [private]
 

Standard_Boolean Geom_BezierSurface::vrational [private]
 

Handle_TColStd_HArray2OfReal Geom_BezierSurface::wcoeffs [private]
 

Handle_TColStd_HArray2OfReal Geom_BezierSurface::weights [private]
 


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