nurbs

Collection of routines for the creation, and manipulation of Non-Uniform Rational B-Splines (NURBS), based on the NURBS toolbox by Mark Spink.

Select category:

Basic operations for NURBS curves, surfaces and volumes

nrbmak
NRBMAK: Construct the NURBS structure given the control points and the knots.
nrbkntins
NRBKNTINS: Insert a single or multiple knots into a NURBS curve, surface or volume.
nrbdegelev
NRBDEGELEV: Elevate the degree of the NURBS curve, surface or volume.
nrbderiv
NRBDERIV: Construct up to the fourth derivative representation of a NURBS curve, surface or volume.
nrbdeval
NRBDEVAL: Evaluation of the derivative and second derivatives of NURBS curve, surface or volume.
nrbeval
NRBEVAL: Evaluate a NURBS at parametric points.
nrbeval_der_w
NRBEVAL_DER_W: Compute the derivatives of a NURBS object at the point u with respect to the weight of the i-th control point.
nrbeval_der_p
NRBEVAL_DER_P: Compute the derivative of a NURBS object at a given point with respect to the coordinates of the i-th control point.
nrbinverse
NRBINVERSE: compute parametric point starting from physical point by inverting the NURBS map with a Newton scheme
crvkntremove
CRVKNTREMOVE: Remove one knot from the knot-vector of a NURBS curve.

Operations for constructing NURBS curves and surfaces

nrbtform
NRBTFORM: Apply transformation matrix to the NURBS.
nrbreverse
NRBREVERSE: Reverse the evaluation directions of a NURBS geometry.
nrbtransp
NRBTRANSP: Transpose a NURBS surface, by swapping U and V directions.
nrbpermute
NRBPERMUTE: Rearrange the directions of a NURBS volume or surface.
nrbline
NRBLINE: Construct a straight line.
nrbcirc
NRBCIRC: Construct a circular arc.
nrbrect
NRBRECT: Construct NURBS representation of a rectangular curve.
nrbsquare
NRBSQUARE: create the NURBS surface for a square.
nrb4surf
NRB4SURF: Constructs a NURBS bilinear surface.
nrbspheretiling
NRBSPHERETILING: Makes an array of NURBS patches representing a full or partial tiling of the sphere.
nrbspheretile
NRBSPHERETILE: Makes a quadrilateral NURBS tile of the unit sphere from four vertex points.
nrbcylind
NRBCYLIND: Construct a cylinder or cylindrical patch.
nrbextract
NRBEXTRACT: construct NURBS curves by extracting the boundaries of a NURBS surface, or NURBS surfaces by extracting the boundary of a NURBS volume.
nrbextrude
NRBEXTRUDE: Construct a NURBS surface by extruding a NURBS curve, or construct a NURBS volume by extruding a NURBS surface.
nrbrevolve
NRBREVOLVE: Construct a NURBS surface by revolving a NURBS curve, or construct a NURBS volume by revolving a NURBS surface.
nrbruled
NRBRULED: Construct a ruled surface between two NURBS curves, or a ruled volume between two NURBS surfaces.
nrbcoons
NRBCOONS: Construction of a Coons patch.
nrbtestcrv
NRBTESTCRV: Constructs a simple test curve.
nrbtestsrf
NRBTESTSRF: Constructs a simple test surface.
nrbclamp
NRBCLAMP: Compute the knot vector and control points of the clamped curve/surface.
nrbunclamp
NRBUNCLAMP: Compute the knot vector and control points of the unclamped curve or surface.
nrbmultipatch
NRBMULTIPATCH: construct the information for gluing conforming NURBS patches, using the same format as in GeoPDEs.
nrbglue
NRBGLUE: Glues two NURBS patches together with C^0-continuity at the interface.
nrbmodp
NRBMODP: Modify the coordinates of specific control points of any NURBS map.
nrbmodw
NRBMODW: Modify the weights of specific control points of any NURBS map.

Plot and export

nrbplot
NRBPLOT: Plot a NURBS curve or surface, or the boundary of a NURBS volume.
nrbctrlplot
NRBCTRLPLOT: Plot a NURBS entity along with its control points.
nrbkntplot
NRBKNTPLOT: Plot a NURBS entity with the knots subdivision.
nrbexport
NRBEXPORT: export NURBS geometries to a format compatible with the one used in GeoPDEs.
nrb2iges
NRB2IGES : Write a NURBS curve or surface to an IGES file.

B-Spline functions

bspeval
BSPEVAL: Evaluate B-Spline at parametric points
bspderiv
BSPDERIV: B-Spline derivative
bspkntins
BSPKNTINS: Insert knots into a B-Spline
bspdegelev
BSPDEGELEV: Degree elevate a univariate B-Spline.
bspinterpcrv
BSPINTERPCRV: B-Spline interpolation of a 3d curve.
bspinterpsurf
BSPINTERPSURF: B-Spline surface interpolation.
basisfun
BASISFUN: Compute B-Spline Basis Functions
basisfunder
BASISFUNDER: B-Spline Basis function derivatives
basiskntins
Compute the coefficient matrix for non-uniform B-splines subdivision.
findspan
FINDSPAN Find the span of a B-Spline knot vector at a parametric point
numbasisfun
NUMBASISFUN: List non-zero Basis functions for B-Spline in a given knot-span
tbasisfun
TBASISFUN: Compute a B- or T-Spline basis function, and its derivatives, from its local knot vector.

B-splines geometric entities

curvederivcpts
CURVEDERIVCPTS: Compute control points of n-th derivatives of a B-spline curve.
curvederiveval
CURVEDERIVEVAL: Compute the derivatives of a B-spline curve.
surfderivcpts
SURFDERIVCPTS: Compute control points of n-th derivatives of a NURBS surface.
surfderiveval
SURFDERIVEVAL: Compute the derivatives of a B-spline surface

NURBS geometric entities and functions

nrbbasisfun
NRBBASISFUN: Basis functions for NURBS
nrbmeasure
NRBMEASURE: Compute the distance between two given points along a NURBS curve.
nrbbasisfunder
NRBBASISFUNDER: NURBS basis functions derivatives
nrbnumbasisfun
NRBNUMBASISFUN: Numbering of basis functions for NURBS
nrbcrvderiveval
NRBCRVDERIVEVAL: Evaluate n-th order derivatives of a NURBS curve.
nrbsurfderiveval
NRBSURFDERIVEVAL: Evaluate n-th order derivatives of a NURBS surface.

Knots construction and refinement

aveknt
AVEKNT: compute the knot averages (Greville points) of a knot vector
kntuniform
KNTUNIFORM: generate uniform open knot vectors in the reference domain.
kntrefine
KNTREFINE: Refine a given knot vector by dividing each interval uniformly, maintaining the continuity in previously existing knots.
kntbrkdegreg
KNTBRKDEGREG: Construct an open knot vector by giving the sequence of knots, the degree and the regularity.
kntbrkdegmult
KNTBRKDEGMULT: Construct an open knot vector by giving the sequence of knots, the degree and the multiplicity.

Vector and Transformation Utilities

vecnormalize
VECNORMALIZE: Normalize the vectors.
vecmag
VECMAG: Magnitude of the vectors.
vecmag2
VECMAG2: Squared magnitude of a set of vectors.
vecangle
VECANGLE: An alternative to atan, returning an arctangent in the range 0 to 2*pi.
vecdot
VECDOT: The dot product of two vectors.
veccross
VECCROSS: The cross product of two vectors.
vecrot
VECROT: Transformation matrix for a rotation around the axis given by a vector.
vecrotx
VECROTX: Transformation matrix for a rotation around the x axis.
vecroty
VECROTY: Transformation matrix for a rotation around the y axis.
vecrotz
VECROTZ: Transformation matrix for a rotation around the z axis.
vecscale
VECSCALE: Transformation matrix for a scaling.
vectrans
VECTRANS: Transformation matrix for a translation.

Package: nurbs