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 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 | |
| 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 package 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 |
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|.
|
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 |
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|.
|
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.
|
overridevirtual |
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.