| 
    Open CASCADE Technology 7.8.2.dev
    
   | 
 
Describes a rational or non-rational Bezier surface. More...
#include <Geom_BezierSurface.hxx>

Public Member Functions | |
| 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.   | |
| 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).   | |
| void | ExchangeUV () | 
| Exchanges the direction U and V on a Bezier surface As a consequence:   | |
| void | Increase (const Standard_Integer UDeg, const Standard_Integer VDeg) | 
| Increases the degree of this Bezier surface in the two parametric directions.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| void | RemovePoleCol (const Standard_Integer VIndex) | 
| Removes a column of poles. If the surface was rational it can become non-rational.   | |
| void | RemovePoleRow (const Standard_Integer UIndex) | 
| Removes a row of poles. If the surface was rational it can become non-rational.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| 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.   | |
| void | UReverse () override | 
| 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_Real | UReversedParameter (const Standard_Real U) const override | 
| 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:   | |
| void | VReverse () override | 
| 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_Real | VReversedParameter (const Standard_Real V) const override | 
| 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:   | |
| void | Bounds (Standard_Real &U1, Standard_Real &U2, Standard_Real &V1, Standard_Real &V2) const override | 
| 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.   | |
| GeomAbs_Shape | Continuity () const override | 
| Returns the continuity of the surface CN : the order of continuity is infinite.   | |
| void | D0 (const Standard_Real U, const Standard_Real V, gp_Pnt &P) const override | 
| Computes the point of parameter U,V on the surface.   | |
| void | D1 (const Standard_Real U, const Standard_Real V, gp_Pnt &P, gp_Vec &D1U, gp_Vec &D1V) const override | 
| 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.   | |
| 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 override | 
| 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.   | |
| 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 override | 
| Computes P, the point of parameters (U, V) of this Bezier surface, and.   | |
| gp_Vec | DN (const Standard_Real U, const Standard_Real V, const Standard_Integer Nu, const Standard_Integer Nv) const override | 
| 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:   | |
| Standard_Integer | NbUPoles () const | 
| Returns the number of poles in the U direction.   | |
| Standard_Integer | NbVPoles () const | 
| Returns the number of poles in the V direction.   | |
| const 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.   | |
| void | Poles (TColgp_Array2OfPnt &P) const | 
| Returns the poles of the Bezier surface.   | |
| const TColgp_Array2OfPnt & | Poles () const | 
| Returns the poles of the Bezier surface.   | |
| Standard_Integer | UDegree () const | 
| Returns the degree of the surface in the U direction it is NbUPoles - 1.   | |
| Handle< Geom_Curve > | UIso (const Standard_Real U) const override | 
| Computes the U isoparametric curve. For a Bezier surface the UIso curve is a Bezier curve.   | |
| Standard_Integer | VDegree () const | 
| Returns the degree of the surface in the V direction it is NbVPoles - 1.   | |
| Handle< Geom_Curve > | VIso (const Standard_Real V) const override | 
| Computes the V isoparametric curve. For a Bezier surface the VIso curve is a Bezier curve.   | |
| Standard_Real | Weight (const Standard_Integer UIndex, const Standard_Integer VIndex) const | 
| Returns the weight of range UIndex, VIndex.   | |
| void | Weights (TColStd_Array2OfReal &W) const | 
| Returns the weights of the Bezier surface.   | |
| const TColStd_Array2OfReal * | Weights () const | 
| Returns the weights of the Bezier surface.   | |
| Standard_Boolean | IsUClosed () const override | 
| 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_Boolean | IsVClosed () const override | 
| 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_Boolean | IsCNu (const Standard_Integer N) const override | 
| Returns True, a Bezier surface is always CN.   | |
| Standard_Boolean | IsCNv (const Standard_Integer N) const override | 
| Returns True, a BezierSurface is always CN.   | |
| Standard_Boolean | IsUPeriodic () const override | 
| Returns False.   | |
| Standard_Boolean | IsVPeriodic () const override | 
| Returns False.   | |
| 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_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|.   | |
| void | Transform (const gp_Trsf &T) override | 
| Applies the transformation T to this Bezier surface.   | |
| 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:   | |
| Handle< Geom_Geometry > | Copy () const override | 
| Creates a new object which is a copy of this Bezier surface.   | |
| virtual void | DumpJson (Standard_OStream &theOStream, Standard_Integer theDepth=-1) const override | 
| Dumps the content of me into the stream.   | |
  Public Member Functions inherited from Geom_Surface | |
| 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.   | |
| 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 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>.   | |
| 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.   | |
| 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_Real | VPeriod () const | 
| Returns the period of this surface in the v parametric direction. raises if the surface is not vperiodic.   | |
| gp_Pnt | Value (const Standard_Real U, const Standard_Real V) const | 
| Computes the point of parameter (U, V) on the surface.   | |
  Public Member Functions inherited from Geom_Geometry | |
| void | Mirror (const gp_Pnt &P) | 
| Performs the symmetrical transformation of a Geometry with respect to the point P which is the center of the symmetry.   | |
| void | Mirror (const gp_Ax1 &A1) | 
| Performs the symmetrical transformation of a Geometry with respect to an axis placement which is the axis of the symmetry.   | |
| void | Mirror (const gp_Ax2 &A2) | 
| Performs the symmetrical transformation of a Geometry with respect to a plane. The axis placement A2 locates the plane of the symmetry : (Location, XDirection, YDirection).   | |
| void | Rotate (const gp_Ax1 &A1, const Standard_Real Ang) | 
| Rotates a Geometry. A1 is the axis of the rotation. Ang is the angular value of the rotation in radians.   | |
| void | Scale (const gp_Pnt &P, const Standard_Real S) | 
| Scales a Geometry. S is the scaling value.   | |
| void | Translate (const gp_Vec &V) | 
| Translates a Geometry. V is the vector of the translation.   | |
| void | Translate (const gp_Pnt &P1, const gp_Pnt &P2) | 
| Translates a Geometry from the point P1 to the point P2.   | |
| Handle< Geom_Geometry > | Mirrored (const gp_Pnt &P) const | 
| Handle< Geom_Geometry > | Mirrored (const gp_Ax1 &A1) const | 
| Handle< Geom_Geometry > | Mirrored (const gp_Ax2 &A2) const | 
| Handle< Geom_Geometry > | Rotated (const gp_Ax1 &A1, const Standard_Real Ang) const | 
| Handle< Geom_Geometry > | Scaled (const gp_Pnt &P, const Standard_Real S) const | 
| Handle< Geom_Geometry > | Transformed (const gp_Trsf &T) const | 
| Handle< Geom_Geometry > | Translated (const gp_Vec &V) const | 
| Handle< Geom_Geometry > | Translated (const gp_Pnt &P1, const gp_Pnt &P2) const | 
  Public Member Functions inherited from Standard_Transient | |
| Standard_Transient () | |
| Empty constructor.   | |
| Standard_Transient (const Standard_Transient &) | |
| Copy constructor – does nothing.   | |
| Standard_Transient & | operator= (const Standard_Transient &) | 
| Assignment operator, needed to avoid copying reference counter.   | |
| virtual | ~Standard_Transient () | 
| Destructor must be virtual.   | |
| virtual const opencascade::handle< Standard_Type > & | DynamicType () const | 
| Returns a type descriptor about this object.   | |
| Standard_Boolean | IsInstance (const opencascade::handle< Standard_Type > &theType) const | 
| Returns a true value if this is an instance of Type.   | |
| Standard_Boolean | IsInstance (const Standard_CString theTypeName) const | 
| Returns a true value if this is an instance of TypeName.   | |
| Standard_Boolean | IsKind (const opencascade::handle< Standard_Type > &theType) const | 
| Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism.   | |
| Standard_Boolean | IsKind (const Standard_CString theTypeName) const | 
| Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism.   | |
| Standard_Transient * | This () const | 
| Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero.   | |
| Standard_Integer | GetRefCount () const noexcept | 
| Get the reference counter of this object.   | |
| void | IncrementRefCounter () noexcept | 
| Increments the reference counter of this object.   | |
| Standard_Integer | DecrementRefCounter () noexcept | 
| Decrements the reference counter of this object; returns the decremented value.   | |
| virtual void | Delete () const | 
| Memory deallocator for transient classes.   | |
Static Public Member Functions | |
| static Standard_Integer | MaxDegree () | 
| Returns the value of the maximum polynomial degree of a Bezier surface. This value is 25.   | |
  Static Public Member Functions inherited from Standard_Transient | |
| static constexpr const char * | get_type_name () | 
| Returns a type descriptor about this object.   | |
| static const opencascade::handle< Standard_Type > & | get_type_descriptor () | 
| Returns type descriptor of Standard_Transient class.   | |
Additional Inherited Members | |
  Public Types inherited from Standard_Transient | |
| typedef void | base_type | 
| Returns a type descriptor about this object.   | |
Describes a rational or non-rational Bezier surface.
| Geom_BezierSurface::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.
| Geom_BezierSurface::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.
      
  | 
  overridevirtual | 
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.
Implements Geom_Surface.
      
  | 
  overridevirtual | 
Returns the continuity of the surface CN : the order of continuity is infinite.
Implements Geom_Surface.
      
  | 
  overridevirtual | 
Creates a new object which is a copy of this Bezier surface.
Implements Geom_Geometry.
      
  | 
  overridevirtual | 
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.
Implements Geom_Surface.
      
  | 
  overridevirtual | 
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.
Tip: use GeomLib::NormEstim() to calculate surface normal at specified (U, V) point.
Implements Geom_Surface.
      
  | 
  overridevirtual | 
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.
Implements Geom_Surface.
      
  | 
  overridevirtual | 
Computes P, the point of parameters (U, V) of this Bezier surface, and.
Implements Geom_Surface.
      
  | 
  overridevirtual | 
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:
Implements Geom_Surface.
      
  | 
  overridevirtual | 
Dumps the content of me into the stream.
Reimplemented from Geom_Surface.
| void Geom_BezierSurface::ExchangeUV | ( | ) | 
Exchanges the direction U and V on a Bezier surface As a consequence:
| void Geom_BezierSurface::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.
| void Geom_BezierSurface::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
| void Geom_BezierSurface::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
| void Geom_BezierSurface::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
| void Geom_BezierSurface::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
| void Geom_BezierSurface::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
| void Geom_BezierSurface::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
| void Geom_BezierSurface::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
| void Geom_BezierSurface::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
      
  | 
  overridevirtual | 
Returns True, a Bezier surface is always CN.
Implements Geom_Surface.
      
  | 
  overridevirtual | 
Returns True, a BezierSurface is always CN.
Implements Geom_Surface.
      
  | 
  overridevirtual | 
Returns True if the first control points row and the last control points row are identical. The tolerance criterion is Resolution from package gp.
Implements Geom_Surface.
      
  | 
  overridevirtual | 
Returns False.
Implements Geom_Surface.
| Standard_Boolean Geom_BezierSurface::IsURational | ( | ) | const | 
      
  | 
  overridevirtual | 
Returns True if the first control points column and the last control points column are identical. The tolerance criterion is Resolution from package gp.
Implements Geom_Surface.
      
  | 
  overridevirtual | 
Returns False.
Implements Geom_Surface.
| Standard_Boolean Geom_BezierSurface::IsVRational | ( | ) | const | 
      
  | 
  static | 
Returns the value of the maximum polynomial degree of a Bezier surface. This value is 25.
| Standard_Integer Geom_BezierSurface::NbUPoles | ( | ) | const | 
Returns the number of poles in the U direction.
| Standard_Integer Geom_BezierSurface::NbVPoles | ( | ) | const | 
Returns the number of poles in the V direction.
| const gp_Pnt & Geom_BezierSurface::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.
      
  | 
  inline | 
Returns the poles of the Bezier surface.
| void Geom_BezierSurface::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.
| void Geom_BezierSurface::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
| void Geom_BezierSurface::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
| void Geom_BezierSurface::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:
| void Geom_BezierSurface::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.
| void Geom_BezierSurface::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.
| void Geom_BezierSurface::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.
| void Geom_BezierSurface::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
| void Geom_BezierSurface::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.
| void Geom_BezierSurface::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
| void Geom_BezierSurface::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.
| void Geom_BezierSurface::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.
| void Geom_BezierSurface::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.
| void Geom_BezierSurface::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.
Applies the transformation T to this Bezier surface.
Implements Geom_Geometry.
| Standard_Integer Geom_BezierSurface::UDegree | ( | ) | const | 
Returns the degree of the surface in the U direction it is NbUPoles - 1.
      
  | 
  overridevirtual | 
Computes the U isoparametric curve. For a Bezier surface the UIso curve is a Bezier curve.
Implements Geom_Surface.
      
  | 
  overridevirtual | 
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.
Implements Geom_Surface.
      
  | 
  overridevirtual | 
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:
Implements Geom_Surface.
| Standard_Integer Geom_BezierSurface::VDegree | ( | ) | const | 
Returns the degree of the surface in the V direction it is NbVPoles - 1.
      
  | 
  overridevirtual | 
Computes the V isoparametric curve. For a Bezier surface the VIso curve is a Bezier curve.
Implements Geom_Surface.
      
  | 
  overridevirtual | 
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.
Implements Geom_Surface.
      
  | 
  overridevirtual | 
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:
Implements Geom_Surface.
| Standard_Real Geom_BezierSurface::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.
      
  | 
  inline | 
Returns the weights of the Bezier surface.
| void Geom_BezierSurface::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.