Modify

verb.eval.Modify

CLASS

Source code

Modify contains many fundamental algorithms for working with NURBS. These include algorithms for:

Many of these algorithsm owe their implementation to Piegl & Tiller's, "The NURBS Book"

curveReverse

STATIC METHOD

Source code

curveReverse(curve : NurbsCurveData) : NurbsCurveData

Reverses the parameterization of a NURBS curve. The domain is unaffected.

params

returns

surfaceReverse

STATIC METHOD

Source code

surfaceReverse(surface : NurbsSurfaceData, useV : Bool) : NurbsSurfaceData

Reverse the parameterization of a NURBS surface in the specified direction. The domain is unaffected.

params

returns

knotsReverse

STATIC METHOD

Source code

knotsReverse(knots : KnotArray) : KnotArray

Reverse a knot vector

params

returns

unifyCurveKnotVectors

STATIC METHOD

Source code

unifyCurveKnotVectors(curves : Array<NurbsCurveData>) : Array<NurbsCurveData>

Unify the knot vectors of a collection of NURBS curves. This can be used, for example, is used for lofting between curves.

params

returns

curveElevateDegree

STATIC METHOD

Source code

curveElevateDegree(curve : NurbsCurveData, finalDegree : Int) : NurbsCurveData

Elevate the degree of a NURBS curve

params

returns

rationalSurfaceTransform

STATIC METHOD

Source code

rationalSurfaceTransform(surface : NurbsSurfaceData, mat : Matrix) : NurbsSurfaceData

Transform a NURBS surface using a matrix

params

returns

rationalCurveTransform

STATIC METHOD

Source code

rationalCurveTransform(curve : NurbsCurveData, mat : Matrix) : NurbsCurveData

Transform a NURBS curve using a matrix

params

returns

surfaceKnotRefine

STATIC METHOD

Source code

surfaceKnotRefine(surface : NurbsSurfaceData, knotsToInsert : Array<Float>, useV : Bool) : NurbsSurfaceData

Perform knot refinement on a NURBS surface by inserting knots at various parameters

params

returns

decomposeCurveIntoBeziers

STATIC METHOD

Source code

decomposeCurveIntoBeziers(curve : NurbsCurveData) : Array<NurbsCurveData>

Decompose a NURBS curve into a collection of bezier's. Useful as each bezier fits into it's convex hull. This is a useful starting point for intersection, closest point, divide & conquer algorithms

params

returns

curveKnotRefine

STATIC METHOD

Source code

curveKnotRefine(curve : NurbsCurveData, knotsToInsert : Array<Float>) : NurbsCurveData

Insert a collection of knots on a curve

Corresponds to Algorithm A5.4 (Piegl & Tiller)

params

returns

curveKnotInsert

STATIC METHOD

Source code

curveKnotInsert(curve : NurbsCurveData, u : Float, r : Int) : NurbsCurveData

Insert a knot along a rational curve. Note that this algorithm only works for r + s <= degree, where s is the initial multiplicity (number of duplicates) of the knot.

Corresponds to algorithm A5.1 (Piegl & Tiller)

Use the curveKnotRefine for applications like curve splitting.

params

returns