Package arc.math.geom
Class CatmullRomSpline<T extends Vector<T>>
java.lang.Object
arc.math.geom.CatmullRomSpline<T>
- All Implemented Interfaces:
Path<T>
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfloatapproximate(T v) floatapproximate(T in, int near) floatapproximate(T in, int start, int count) floatapproxLength(int samples) static <T extends Vector<T>>
Tcalculate(T out, float t, T[] points, boolean continuous, T tmp) Calculates the catmullrom value for the given position (t).static <T extends Vector<T>>
Tcalculate(T out, int i, float u, T[] points, boolean continuous, T tmp) Calculates the catmullrom value for the given span (i) at the given position (u).static <T extends Vector<T>>
Tderivative(T out, float t, T[] points, boolean continuous, T tmp) Calculates the derivative of the catmullrom spline for the given position (t).static <T extends Vector<T>>
Tderivative(T out, int i, float u, T[] points, boolean continuous, T tmp) Calculates the derivative of the catmullrom spline for the given span (i) at the given position (u).derivativeAt(T out, float t) derivativeAt(T out, int span, float u) floatintint
-
Field Details
-
controlPoints
-
continuous
public boolean continuous -
spanCount
public int spanCount
-
-
Constructor Details
-
CatmullRomSpline
public CatmullRomSpline() -
CatmullRomSpline
-
-
Method Details
-
calculate
public static <T extends Vector<T>> T calculate(T out, float t, T[] points, boolean continuous, T tmp) Calculates the catmullrom value for the given position (t).- Parameters:
out- The Vector to set to the result.t- The position (0<=t<=1) on the splinepoints- The control pointscontinuous- If true the b-spline restarts at 0 when reaching 1tmp- A temporary vector used for the calculation- Returns:
- The value of out
-
calculate
public static <T extends Vector<T>> T calculate(T out, int i, float u, T[] points, boolean continuous, T tmp) Calculates the catmullrom value for the given span (i) at the given position (u).- Parameters:
out- The Vector to set to the result.i- The span (0<=i<spanCount) spanCount = continuous ? points.length : points.length - degreeu- The position (0<=u<=1) on the spanpoints- The control pointscontinuous- If true the b-spline restarts at 0 when reaching 1tmp- A temporary vector used for the calculation- Returns:
- The value of out
-
derivative
public static <T extends Vector<T>> T derivative(T out, float t, T[] points, boolean continuous, T tmp) Calculates the derivative of the catmullrom spline for the given position (t).- Parameters:
out- The Vector to set to the result.t- The position (0<=t<=1) on the splinepoints- The control pointscontinuous- If true the b-spline restarts at 0 when reaching 1tmp- A temporary vector used for the calculation- Returns:
- The value of out
-
derivative
public static <T extends Vector<T>> T derivative(T out, int i, float u, T[] points, boolean continuous, T tmp) Calculates the derivative of the catmullrom spline for the given span (i) at the given position (u).- Parameters:
out- The Vector to set to the result.i- The span (0<=i<spanCount) spanCount = continuous ? points.length : points.length - degreeu- The position (0<=u<=1) on the spanpoints- The control pointscontinuous- If true the b-spline restarts at 0 when reaching 1tmp- A temporary vector used for the calculation- Returns:
- The value of out
-
set
-
valueAt
-
valueAt
- Returns:
- The value of the spline at position u of the specified span
-
derivativeAt
- Specified by:
derivativeAtin interfacePath<T extends Vector<T>>
-
derivativeAt
- Returns:
- The derivative of the spline at position u of the specified span
-
nearest
- Returns:
- The span closest to the specified value
-
nearest
- Returns:
- The span closest to the specified value, restricting to the specified spans.
-
approximate
- Specified by:
approximatein interfacePath<T extends Vector<T>>- Returns:
- The approximated value (between 0 and 1) on the path which is closest to the specified value. Note that the
implementation of this method might be optimized for speed against precision, see
Path.locate(Object)for a more precise (but more intensive) method.
-
approximate
-
approximate
-
locate
-
approxLength
public float approxLength(int samples) - Specified by:
approxLengthin interfacePath<T extends Vector<T>>- Parameters:
samples- The amount of divisions used to approximate length. Higher values will produce more precise results, but will be more CPU intensive.- Returns:
- An approximated length of the spline through sampling the curve and accumulating the euclidean distances between the sample points.
-