Modifier and Type | Field and Description |
---|---|
boolean |
continuous |
T[] |
controlPoints |
int |
spanCount |
Constructor and Description |
---|
CatmullRomSpline() |
CatmullRomSpline(T[] controlPoints,
boolean continuous) |
Modifier and Type | Method and Description |
---|---|
float |
approximate(T v) |
float |
approximate(T in,
int near) |
float |
approximate(T in,
int start,
int count) |
float |
approxLength(int samples) |
static <T extends Vector<T>> |
calculate(T out,
float t,
T[] points,
boolean continuous,
T tmp)
Calculates the catmullrom value for the given position (t).
|
static <T extends Vector<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).
|
static <T extends Vector<T>> |
derivative(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>> |
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).
|
T |
derivativeAt(T out,
float t) |
T |
derivativeAt(T out,
int span,
float u) |
float |
locate(T v) |
int |
nearest(T in) |
int |
nearest(T in,
int start,
int count) |
CatmullRomSpline |
set(T[] controlPoints,
boolean continuous) |
T |
valueAt(T out,
float t) |
T |
valueAt(T out,
int span,
float u) |
public CatmullRomSpline()
public CatmullRomSpline(T[] controlPoints, boolean continuous)
public static <T extends Vector<T>> T calculate(T out, float t, T[] points, boolean continuous, T tmp)
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 calculationpublic static <T extends Vector<T>> T calculate(T out, int i, float u, T[] points, boolean continuous, T tmp)
out
- The Vector to set to the result.i
- The span (0<=iu
- 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 calculationpublic static <T extends Vector<T>> T derivative(T out, float t, T[] points, boolean continuous, T tmp)
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 calculationpublic static <T extends Vector<T>> T derivative(T out, int i, float u, T[] points, boolean continuous, T tmp)
out
- The Vector to set to the result.i
- The span (0<=iu
- 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 calculationpublic CatmullRomSpline set(T[] controlPoints, boolean continuous)
public T valueAt(T out, int span, float u)
public T derivativeAt(T out, float t)
derivativeAt
in interface Path<T extends Vector<T>>
public T derivativeAt(T out, int span, float u)
public int nearest(T in)
public int nearest(T in, int start, int count)
public float approximate(T v)
approximate
in interface Path<T extends Vector<T>>
Path.locate(Object)
for a more
precise (but more intensive) method.public float approximate(T in, int start, int count)
public float approximate(T in, int near)
public float locate(T v)
public float approxLength(int samples)
approxLength
in interface Path<T extends Vector<T>>
samples
- The amount of divisions used to approximate length. Higher values will produce more precise results,
but will be more CPU intensive.Copyright © 2015. All rights reserved.