public class NURBSCurve2d extends NURBSCurveBase
CLOSED, init, OPENTRANSPARENT, TWO_DIMENSIONAL| Constructor and Description |
|---|
NURBSCurve2d()
Creates an empty NURBS curve.
|
NURBSCurve2d(int d,
int type,
Vector4d[] ctrlPnts,
double[] knots)
Creates an open or closed NURBS curve with a specified degree, knots, and
control points.
|
NURBSCurve2d(NURBSCurve2d curve)
Creates a NURBS curve that is a copy of another curve.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addControlPoint(Vector4d pnt,
double knotSpacing)
Add an additional control point and knot to the end of this curve.
|
void |
eval(Point3d pnt,
double u)
Evaluates the point on this curve for parameter u.
|
Point2d[] |
evalPoints(int npnts)
Returns a set of points evaluated along the curve at intervals which are
evenly spaced with respect to the curve parameter.
|
double |
findPoint(Point2d pnt,
double umin,
double umax)
Finds a u value for a given curve point within a specified interval of the
curve.
|
int |
getOrientation()
For closed curves, return 1 if it is oriented counter-clockwise and -1 if
clockwise.
|
void |
set(int d,
int type,
Vector4d[] ctrlPnts,
double[] knots)
Sets this NURBS curve to either an open or closed curve with a specified
degree, knots, and control points.
|
void |
set(NURBSCurve2d curve) |
computeControlPolygonLength, convertToBezier, createRenderProps, createUniformKnots, getDegree, getKnot, getKnotIndex, getKnots, getRange, getResolution, getType, insertKnot, isBezier, isBSpline, isClosed, numKnots, read, read, removeControlPoint, render, reset, set, set, setBezier, setCircle, setRange, setResolution, setUniformCubic, write, writecontrolPointIsSelected, getControlPoint, getControlPoints, getDrawControlShape, getLineWidth, getObjToWorld, getObjToWorld, getPointSize, getRenderHints, getRenderProps, getSelection, isSelectable, numControlPoints, numSelectionQueriesNeeded, prerender, render, selectControlPoint, setDrawControlShape, setLineWidth, setObjToWorld, setPointSize, setRenderProps, transform, updateBounds, write, writepublic NURBSCurve2d()
public NURBSCurve2d(NURBSCurve2d curve)
public NURBSCurve2d(int d,
int type,
Vector4d[] ctrlPnts,
double[] knots)
set.d - degree of the curvetype - curve type, which must be either OPEN or
CLOSED.knots - knot valuesctrlPnts - control pointsjava.lang.IllegalArgumentException - if constraints on the arguments are violatedset(int,int,Vector4d[],double[])public Point2d[] evalPoints(int npnts)
npnts - number of points to createpublic int getOrientation()
public void set(int d,
int type,
Vector4d[] ctrlPnts,
double[] knots)
Let d, numk, and numc be the degree of the curve, the number of knots, and the number of control points. The degree must be 1 or greater. For open curves,
numc = numk - d + 1and for closed curves,
numc = numk - 2*d + 1
The knots argument may be set to null, in which case an appropriate number of uniformly spaced knots will be created, in the range [0, 1]. Otherwise, if knots is specified, the ctrlPnts argument must contain at least numc elements.
This method automatically sets ustart and uend (see
setRange) to knots[d-1] and knots[numk-d].
The control points are specified as 4-vectors, where their spatial location is given by x, y, and z and their weight is given by w. The points should not be in homogeneous form; i.e., x, y, and z should not be premultipled by w.
set in class NURBSCurveBased - degree of the curvetype - curve type, which must be either OPEN or
CLOSED.ctrlPnts - control pointsknots - knot valuespublic void addControlPoint(Vector4d pnt, double knotSpacing)
NURBSCurveBaseh. If this is specified as -1,
then the default uniform knot spacing (typically 1) is used.addControlPoint in class NURBSCurveBasepublic void eval(Point3d pnt, double u)
eval in class NURBSCurveBasepnt - returns the curve point valueu - curve parameter valuepublic double findPoint(Point2d pnt, double umin, double umax)
This routine uses an iterative golden section search, and so is not particularly fast.
pnt - point to search forumin - minimum u valu for the intervalumax - maximum u valu for the intervalpublic void set(NURBSCurve2d curve)