NLib - The NURBS based Library |
|
| Key Benefits |
|
- Contains functions for the representation, creation, approximation, conversion, shaping and processing of NURBS curve and surface geometry
- Platform- and application-independent geometry kernel
- Provided in ANSI C source code form
- A mature library written and supported by industry experts
- Includes NURBS constructions and manipulations
|
NURBS Constructions and Manipulations1 |
|
- Creation of common curves:
- Circles and circular arcs
- Conics and conic arcs
- Straight line segments
- Degenerate point curve
- Creation of common surfaces:
- Bilinear surfaces and planes
- Cones and cylinders (full or patches)
- Spheres and tori (full or patches)
- General extruded surfaces (TABCYL)
- Ruled surfaces
- Surfaces of revolution (full or partial)
- Ellipsoids, elliptic paraboloids and hyperboloids of one sheet (full or patches)
- Advanced surface construction methods:
- Swung surfaces
- Interpolative skinning, with or without a spine curve
- Approximative skinning with error bound specified (yields impressive data reduction)
- Interpolative and approximative skinning with rail curves and cross-boundary continuity constraints
- Translational swept surface
- Swept surface, arbitrary trajectory curve, interpolative or approximative to within specified error bound
- Gordon surface through a compatible curve network
- Bilinear Coons surface
- Bicubic Coons surface
- Creation of curves and surfaces by data fitting:
- Global curve interpolation to point data (arbitrary degree)
- Global curve interpolation to point and end derivative data (arbitrary degree)
- Cubic spline curve interpolation
- Global least squares curve approximation to point data (arbitrary degree)
- Approximation of the offset of a NURBS curve
- Offset of a connected set of NURBS curves with trimming and filleting
- Approximation of procedurally defined curves to within tolerance
- Mapping of a uv-domain curve onto its surface
- Approximation of a NURBS curve with a nonrational curve of specified degree
- Global surface interpolation to point data (arbitrary degrees)
- Global least squares surface approximation to point data (arbitrary degrees)
- Global weighted and constrained least squares curve approximation (arbitrary degree)
- Local C1-continuous non-rational cubic curve interpolation
- Local G1- or C1-continuous parabolic curve interpolation
- Local G1-continuous rational quadratic curve interpolation
- G1-continous bi-arc curve interpolation
- local data approximation with G1-continuous quadratic curves
- Local data approximation with G1-continuous cubic curves
- Global curve approximation / data reduction with error bound specified (arbitrary degree)
- Local C(1,1)-continuous non-rational bicubic surface interpolation
- Global surface approximation / data reduction with error bound specified (arbitrary degree)
- Curve/surface interpolation and approximation functions that allow specification of boundary constraints, including tangent/derivative vectors
- Evaluation of NURBS curves and surfaces:
- Compute point and derivatives of arbitrary order on a NURBS curve
- Compute the Frenet frame on a curve at a given point
- Compute point and partial derivatives of arbitrary order on a NURBS surface
- Compute the surface normal vector at a given point
- Compute curvature on curves and surfaces
- Transformations, projections and interactive shaping tools:
- Translation, rotation and scaling of curves and surfaces
- Parallel and perspective projection of curves and surfaces onto a plane
- Reposition curve/surface control points to obtain desired translational changes
- Modify curve/surface weights to obtain desired perspective changes
- Curve warping
- Surface region warping and polyline warping
- Curve flattening
- Surface flattening
- Curve bending
- Surface axial and central bending
- Curve axial deformations: pinch, taper, twist and shear
- Surface axial deformations: pinch, taper, twist and shear
- Constraint-based curve modification via control point repositioning
- Constraint-based surface modification via control point repositioning
- NURBS geometric tools:
- Knot insertion and knot refinement (curves and surfaces)
- Inverse knot insertion (curves and surfaces)
- Decomposition into piecewise Bezier form (curves and surfaces)
- Knot removal (curves and surfaces), including "cleaning" routines (data reduction) with specification of boundary constraints
- Degree elevation (curves and surfaces)
- Degree reduction (curves and surfaces)
- Subcurve and subsurface extraction
- Curve and surface splitting
- Extraction of isoparametric curves from surfaces
- Reparameterize a curve with a linear rational function
- Reparameterize a curve with a B-spline function
- Make curve end weights equal
- Reparameterize a surface with a linear rational function
- Triangular tessellation of trimmed surfaces
- Conversion between forms:
- Conversion from NURBS to piecewise Bezier or polynomial spline form
- Conversion from piecewise Bezier or polynomial form to NURBS form
- An extensive set of routines to support the evaluation and processing of Bezier and polynomial curves and surfaces
- Conversion of IGES curves and surfaces to NURBS form
- Curve and surface extensions and boundary modifications, with continuity control
- Miscellaneous NURBS curve and surface routines:
- Arc length of a curve segment
- Project a point to a curve or surface (closest point projection), given a point on a curve/surface, to determine the corresponding parameter space value
- Given a tangent direction on a surface, determine the corresponding direction in parameter space
- Reverse parameter direction of a curve or surface
- Unclamp a clamped curve or surface
- Scale/translate the parameter domain(s) of a curve or surface
- Various conic utilities; e.g. determine type of conic, implicit equation of conic, and geometric characteristics of a conic (vertex, radii, axes, etc)
- Computation of minmax box of curves and surfaces
- Make a set of curves or surfaces compatible (same degrees and knots)
- Analyze curves for cusps, straight line segments, and degeneracy’s
- Curve and surface cleaning, with reparameterization for enhanced cleaning of piecewise Bezier curves and surfaces
- Approximately equally spaced points on a curve
- Approximately uniformly spaced grid of points on a surface
- Scalar-valued NURBS functions of one or two variables:
- Creation of scalar-valued NURBS
- Functions of 1 or 2 parameters
- Evaluation of scalar-valued functions, including derivatives of any order
- A complete set of functions to process Bezier curves and surfaces
- B-spline and NURBS basis functions:
- Evaluation of rational and non-rational basis functions
- Computation of single or all nonzero functions
- Derivatives of arbitrary order
- Global maximum and maximum in each span
- Differentiation of curves, surfaces, and basis functions with respect to a knot
- Symbolic operators:
- Extract derivative curves and surfaces
- Compute maximum bounds on magnitudes of curve/surface derivatives
- Form linear combinations of curves/surfaces
- Extract the surface of normal vectors to a surface
- Compute various products of curves, surfaces, and functions
- Basic geometric computations and constructions:
- An extensive set of functions to perform basic geometric operations on vectors, lines, polygons, and planes; this includes distances, projections, intersections, bounding boxes, transformations, closure, and containment tests
- Basic math routines:
- An extensive set of functions to perform basic mathematical and numerical operations such as matrix algebra, solution to linear systems of equations, Horner evaluation of polynomials, polynomial root finding, and computation of the binomial coefficients
- Other utilities:
- A very large set of low-level NURBS curve and surface utilities; e.g. copy a curve or surface, input/output a curve or surface from/to an ASCII or IGES file, inquire curve or surface attributes (closed?, rational?, etc)
- Curve and surface error handling:
- An extensive set of functions to check (validate) object data and set error flags; e.g. validate the data defining a curve or surface object, and check if a parameter is within valid bounds
|
| Back To Top |
|
Copyright © SMLib, TSNLib, GSNLib, NLib, and VSLib are trademarks of Solid Modeling Solutions. All rights reserved. |
|
|
|
|
|