public final class BasicNurbsCurve extends NurbsCurve implements javolution.lang.ValueType
Modified by: Joseph A. Huwaldt
GTOL
RESOURCES
Modifier and Type | Method and Description |
---|---|
BasicNurbsCurve |
copy()
Returns a copy of this
BasicNurbsCurve instance
allocated by the calling thread
(possibly on the stack). |
BasicNurbsCurve |
copyToReal()
Return a copy of this object with any transformations or subranges removed
(applied).
|
boolean |
equals(java.lang.Object obj)
Compares this BasicNurbsCurve against the specified object for strict equality
(same values and same units).
|
Point |
getBoundsMax()
Return the coordinate point representing the maximum bounding box corner (e.g.: max
X, max Y, max Z).
|
Point |
getBoundsMin()
Return the coordinate point representing the minimum bounding box corner of this
geometry element (e.g.: min X, min Y, min Z).
|
java.util.List<ControlPoint> |
getControlPoints()
Return a list of control points for this curve.
|
int |
getDegree()
Return the degree of the NURBS curve.
|
KnotVector |
getKnotVector()
Return the knot vector of this curve.
|
int |
getPhyDimension()
Returns the number of physical dimensions of the geometry element.
|
Point |
getRealPoint(double s)
Calculate a point on the curve for the given parametric distance along the curve,
p(s) . |
java.util.List<Vector<Length>> |
getSDerivatives(double s,
int grade)
Calculate all the derivatives from
0 to grade with
respect to parametric distance on the curve for the given parametric distance along
the curve, d^{grade}p(s)/d^{grade}s . |
Unit<Length> |
getUnit()
Returns the unit in which the control points in this curve are stated.
|
int |
hashCode()
Returns the hash code for this parameter.
|
BasicNurbsCurve |
immutable()
Return an immutable version of this NURBS curve.
|
static BasicNurbsCurve |
newInstance(ControlPoint[] cps,
int degree,
double... uK)
Create a NURBS curve from the given control points, knots and degree.
|
static BasicNurbsCurve |
newInstance(java.util.List<ControlPoint> cpList,
KnotVector uKnots)
Generate a NURBS curve from the given control points and the given knot vector.
|
static void |
recycle(BasicNurbsCurve instance)
Recycles a
BasicNurbsCurve instance immediately (on the stack when
executing in a StackContext). |
void |
reset()
Resets the internal state of this object to its default values.
|
int |
size()
Returns the number of child-elements that make up this geometry element.
|
BasicNurbsCurve |
to(Unit<Length> unit)
Returns the equivalent to this curve but stated in the specified unit.
|
BasicNurbsCurve |
toDimension(int newDim)
Return the equivalent of this curve converted to the specified number of physical
dimensions.
|
javolution.text.Text |
toText()
Returns the text representation of this geometry element that consists of the name
followed by the control point values, followed by the knot vector.
|
getArcLength, getArcLength, getTransformed, gridToTolerance, insertKnot, intersect, isDegenerate, isLine, isPlanar, isValid, mergeKnotVector, refineKnotVector, refineKnotVector, removeKnot, reverse, splitAt, toNurbs, toNurbs
extractGrid, getArcLength, getBinormal, getBinormal, getClosest, getClosest, getClosest, getClosest, getClosest, getClosest, getCurvature, getCurvature, getDerivatives, getEnclosedArea, getFarthest, getFarthest, getFarthest, getLimitPoint, getParDimension, getPoint, getPoint, getPointAtArcLength, getPrincipalNormal, getPrincipalNormal, getRealPoint, getSDerivative, getSDerivatives, getTangencyPoint, getTangent, getTangent, getTorsion, getTorsion, getVariationOfCurvature, getVariationOfCurvature, intersect, intersect, intersect, intersect, isCircular, splitAt
addChangeListener, clone, compareTo, getAllUserData, getID, getName, getUserData, putAllUserData, putUserData, removeChangeListener, removeUserData, setName, toString
addChangeListener, getAllUserData, getID, getName, getUserData, putAllUserData, putUserData, removeChangeListener, removeUserData, setName
public static BasicNurbsCurve newInstance(ControlPoint[] cps, int degree, double... uK)
cps
- Array of control points. May not be null.degree
- Degree of the NURBS curveuK
- Knot values. May not be null.java.lang.IllegalArgumentException
- if the knot vector is not valid.public static BasicNurbsCurve newInstance(java.util.List<ControlPoint> cpList, KnotVector uKnots)
cpList
- List of control points. May not be null.uKnots
- Knot vector for the curve. May not be null.java.lang.IllegalArgumentException
- if the knot vector is not consistent with the
number of control points.public int size()
size
in interface GeomElement<NurbsCurve>
public int getPhyDimension()
getPhyDimension
in interface GeomElement<NurbsCurve>
public java.util.List<ControlPoint> getControlPoints()
getControlPoints
in class NurbsCurve
public KnotVector getKnotVector()
getKnotVector
in class NurbsCurve
public int getDegree()
getDegree
in class NurbsCurve
public Point getRealPoint(double s)
p(s)
.getRealPoint
in interface Curve<NurbsCurve>
s
- parametric distance to calculate a point for (0.0 to 1.0 inclusive).public java.util.List<Vector<Length>> getSDerivatives(double s, int grade)
0
to grade
with
respect to parametric distance on the curve for the given parametric distance along
the curve, d^{grade}p(s)/d^{grade}s
.
Example:
1st derivative (grade = 1), this returns [p(s), dp(s)/ds]
;
2nd derivative (grade = 2), this returns [p(s), dp(s)/ds, d^2p(s)/d^2s]
; etc.
getSDerivatives
in interface Curve<NurbsCurve>
s
- Parametric distance to calculate derivatives for (0.0 to 1.0
inclusive).grade
- The maximum grade to calculate the derivatives for (1=1st derivative,
2=2nd derivative, etc)java.lang.IllegalArgumentException
- if the grade is < 0.public Point getBoundsMin()
getBoundsMin
in interface GeomElement<NurbsCurve>
java.lang.IndexOutOfBoundsException
- if this list contains no geometry.public Point getBoundsMax()
getBoundsMax
in interface GeomElement<NurbsCurve>
java.lang.IndexOutOfBoundsException
- if this list contains no elements.public Unit<Length> getUnit()
getUnit
in interface GeomElement<NurbsCurve>
public BasicNurbsCurve to(Unit<Length> unit) throws ConversionException
to
in interface Curve<NurbsCurve>
to
in interface GeomElement<NurbsCurve>
to
in interface ParametricGeometry<NurbsCurve>
unit
- The length unit of the curve to be returned. May not be null.ConversionException
- if the the input unit is not a length unit.public BasicNurbsCurve toDimension(int newDim)
toDimension
in interface Curve<NurbsCurve>
toDimension
in interface GeomElement<NurbsCurve>
toDimension
in interface ParametricGeometry<NurbsCurve>
newDim
- The dimension of the curve to return.public BasicNurbsCurve copy()
BasicNurbsCurve
instance
allocated
by the calling thread
(possibly on the stack).copy
in interface Curve<NurbsCurve>
copy
in interface GeomElement<NurbsCurve>
copy
in interface ParametricGeometry<NurbsCurve>
copy
in interface javolution.lang.ValueType
public BasicNurbsCurve copyToReal()
copyToReal
in interface Curve<NurbsCurve>
copyToReal
in interface GeomElement<NurbsCurve>
public BasicNurbsCurve immutable()
immutable
in class NurbsCurve
public void reset()
reset
in interface javolution.lang.Reusable
reset
in class AbstractGeomElement<NurbsCurve>
public boolean equals(java.lang.Object obj)
equals
in class AbstractGeomElement<NurbsCurve>
obj
- the object to compare with.true
if this object is identical to that object;
false
otherwise.public int hashCode()
hashCode
in class AbstractGeomElement<NurbsCurve>
public javolution.text.Text toText()
{aCurve = {{{1 ft, 0 ft}, 1.0}, {{0 ft, 1 ft}, 0.25}, {{-1 ft, 0 ft}, 1.0}},{degree=2,{0.0, 0.0, 0.0, 1.0, 1.0, 1.0}}}If there is no name, then the output looks like this:
{{{{1 ft, 0 ft}, 1.0}, {{0 ft, 1 ft}, 0.25}, {{-1 ft, 0 ft}, 1.0}},{degree=2,{0.0, 0.0, 0.0, 1.0, 1.0, 1.0}}}
toText
in interface GeomElement<NurbsCurve>
toText
in class NurbsCurve
public static void recycle(BasicNurbsCurve instance)
BasicNurbsCurve
instance immediately (on the stack when
executing in a StackContext).instance
- The instance to be recycled.