Geom_BezierSurface.hxx File Reference

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_Geom_BezierSurface.hxx>
#include <Standard_Boolean.hxx>
#include <Handle_TColgp_HArray2OfPnt.hxx>
#include <Handle_TColStd_HArray2OfReal.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
#include <Geom_BoundedSurface.hxx>
#include <Handle_Geom_BoundedSurface.hxx>
#include <Geom_Surface.hxx>
#include <GeomAbs_Shape.hxx>
#include <Handle_Geom_Curve.hxx>
#include <Handle_Geom_Geometry.hxx>

Data Structures

class  Geom_BezierSurface
 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()
More...
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Thu Mar 3 10:39:48 2011 for Open CASCADE Technology by  doxygen 1.6.3