Conversion to and from BSplines

The Conversion to and from BSplines component has the following two distinct purposes:

- Firstly, it provides a homogenous formulation which can be used to describe any curve or surface. This is useful for writing algorithms for a single data structure model. The BSpline formulation can be used to represent most basic geometric objects provided by the components which describe geometric data structures ("Fundamental Geometry Types", "2D Geometry Types" and "3D Geometry Types" components).

- Secondly, it can be used to divide a BSpline curve or surface into a series of curves or surfaces, thereby providing a higher degree of continuity. This is useful for writing algorithms which require a specific degree of continuity in the objects to which they are applied. Discontinuities are situated on the boundaries of objects only.

The "Conversion to and from BSplines" component is composed of three packages.

The Convert package provides algorithms to convert the following into a BSpline curve or surface:

- a bounded curve based on an elementary 2D curve (line, circle or conic) from the gp package,

- a bounded surface based on an elementary surface (cylinder, cone, sphere or torus) from the gp package,

- a series of adjacent 2D or 3D Bezier curves defined by their poles.

These algorithms compute the data needed to define the resulting BSpline curve or surface. This elementary data (degrees, periodic characteristics, poles and weights, knots and multiplicities) may then be used directly in an algorithm, or can be used to construct the curve or the surface by calling the appropriate constructor provided by the classes Geom2d_BSplineCurve, Geom_BSplineCurve or Geom_BSplineSurface.

The Geom2dConvert package provides the following:

- a global function which is used to construct a BSpline curve from a bounded curve based on a 2D curve from the Geom2d package,

- a splitting algorithm which computes the points at which a 2D BSpline curve should be cut in order to obtain arcs with the same degree of continuity,

- global functions used to construct the BSpline curves created by this splitting algorithm, or by other types of segmentation of the BSpline curve,

- an algorithm which converts a 2D BSpline curve into a series of adjacent Bezier curves.

The GeomConvert package also provides the following:

- a global function used to construct a BSpline curve from a bounded curve based on a curve from the Geom package,

- a splitting algorithm which computes the points at which a BSpline curve should be cut in order to obtain arcs with the same degree of continuity,

- global functions to construct BSpline curves created by this splitting algorithm, or by other types of BSpline curve segmentation,

- an algorithm which converts a BSpline curve into a series of adjacent Bezier curves,

- a global function to construct a BSpline surface from a bounded surface based on a surface from the Geom package,

- a splitting algorithm which determines the curves along which a BSpline surface should be cut in order to obtain patches with the same degree of continuity,

- global functions to construct BSpline surfaces created by this splitting algorithm, or by other types of BSpline surface segmentation,

- an algorithm which converts a BSpline surface into a series of adjacent Bezier surfaces,

- an algorithm which converts a grid of adjacent Bezier surfaces into a BSpline surface.