Non-Uniform Rational B-Splines (NURBS) curves and surface are parametric functions which can represent any type of curves or surfaces.
This C library hides the basic mathematics of NURBS. This allows the user to focus on the more challenging parts of their projects. The library also offers a lot of features to help generate NURBS from data points.
The NURBS package includes a matrix library, an image manipulation library, a numerical library and a NURBS library. They can all be used on their own but they are all developped to support my NURBS needs.
Features:
- NURBS curve:
- Generate a NURBS curve of any degree
- Evaluate the curve in homogenous space or 3D space.
- Evaluate the derivative of the curve in homogenous space or 3D space.
- Degree elevation.
- Knot removal or insertion.
- Remove knots to a certain error bound.
- Generate a curve by global interpolation.
- Generate a curve by least square fitting.
- Generate a curve by global approximation.
- Generate a circular arc.
- Project a point to the curve.
- You can compute the length of a curve and you can even limit this computation to a certain range.
- Can write the NURBS curve as a VRML file, a POV-Ray file or a RIB file.
- An interface to OpenGL exists.
- NURBS surface:
- Generate a NURBS surface of any degree
- Evaluate the surface in homogenous space or 3D space.
- Evaluate the partial derivative of the surface in homogenous space or 3D space.
- Degree elevation in u and/or v parametric direction
- Knot removal or insertion in the u and/or v parametric space
- Generate a surface by global interpolation.
- Generate a surface by least square fitting.
- Generate a surface by skinning curves.
- Generate a surface by sweeping a curve along a path.
- Generate a surface by revolution of a curve around an axis.
- Generates a Gordon surface from a bi-directionnal set of curves.
- Generate an offset (or parallel) surface from another.
- Project a point to the surface.
- Can write the NURBS surface as a VRML file, a POV-Ray file or a RIB file.
- An interface to OpenGL exists.
- Hierachical NURBS surface:
- Generate a HNURBS surface of any degree
- Evaluate the surface in homogenous space or 3D space.
- Evaluate the partial derivative of the surface in homogenous space or 3D space.
- Degree elevation
- Knot removal or insertion
- Add/Remove levels of details
- Project a point to the surface.
- Transform from a NURBS surface into a HNURBS surface
- Transform a HNURBS surface into a NURBS surface
- Can write the HNURBS surface as a VRML file, a POV-Ray file or a RIB file.
- An interface to OpenGL exists.
- A NURBS editor:
- Uses OpenGL for the display.
- Is a test bed to find and elliminate bugs in the library.
- Is used to test new functions and new user interface. Progress in this category will be added to the Mind's Eyes project modeller.