Package com.badlogic.gdx.math
Class Bezier<T extends Vector<T>>
- java.lang.Object
-
- com.badlogic.gdx.math.Bezier<T>
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description float
approximate(T v)
float
approxLength(int samples)
static <T extends Vector<T>>
Tcubic(T out, float t, T p0, T p1, T p2, T p3, T tmp)
Cubic Bezier curvestatic <T extends Vector<T>>
Tcubic_derivative(T out, float t, T p0, T p1, T p2, T p3, T tmp)
Cubic Bezier curve derivativeT
derivativeAt(T out, float t)
static <T extends Vector<T>>
Tlinear(T out, float t, T p0, T p1, T tmp)
Simple linear interpolationstatic <T extends Vector<T>>
Tlinear_derivative(T out, float t, T p0, T p1, T tmp)
Simple linear interpolation derivativefloat
locate(T v)
static <T extends Vector<T>>
Tquadratic(T out, float t, T p0, T p1, T p2, T tmp)
Quadratic Bezier curvestatic <T extends Vector<T>>
Tquadratic_derivative(T out, float t, T p0, T p1, T p2, T tmp)
Quadratic Bezier curve derivativeBezier
set(Array<T> points, int offset, int length)
Bezier
set(T... points)
Bezier
set(T[] points, int offset, int length)
T
valueAt(T out, float t)
-
-
-
Method Detail
-
linear
public static <T extends Vector<T>> T linear(T out, float t, T p0, T p1, T tmp)
Simple linear interpolation- Parameters:
out
- TheVector
to set to the result.t
- The location (ranging 0..1) on the line.p0
- The start point.p1
- The end point.tmp
- A temporary vector to be used by the calculation.- Returns:
- The value specified by out for chaining
-
linear_derivative
public static <T extends Vector<T>> T linear_derivative(T out, float t, T p0, T p1, T tmp)
Simple linear interpolation derivative- Parameters:
out
- TheVector
to set to the result.t
- The location (ranging 0..1) on the line.p0
- The start point.p1
- The end point.tmp
- A temporary vector to be used by the calculation.- Returns:
- The value specified by out for chaining
-
quadratic
public static <T extends Vector<T>> T quadratic(T out, float t, T p0, T p1, T p2, T tmp)
Quadratic Bezier curve- Parameters:
out
- TheVector
to set to the result.t
- The location (ranging 0..1) on the curve.p0
- The first bezier point.p1
- The second bezier point.p2
- The third bezier point.tmp
- A temporary vector to be used by the calculation.- Returns:
- The value specified by out for chaining
-
quadratic_derivative
public static <T extends Vector<T>> T quadratic_derivative(T out, float t, T p0, T p1, T p2, T tmp)
Quadratic Bezier curve derivative- Parameters:
out
- TheVector
to set to the result.t
- The location (ranging 0..1) on the curve.p0
- The first bezier point.p1
- The second bezier point.p2
- The third bezier point.tmp
- A temporary vector to be used by the calculation.- Returns:
- The value specified by out for chaining
-
cubic
public static <T extends Vector<T>> T cubic(T out, float t, T p0, T p1, T p2, T p3, T tmp)
Cubic Bezier curve- Parameters:
out
- TheVector
to set to the result.t
- The location (ranging 0..1) on the curve.p0
- The first bezier point.p1
- The second bezier point.p2
- The third bezier point.p3
- The fourth bezier point.tmp
- A temporary vector to be used by the calculation.- Returns:
- The value specified by out for chaining
-
cubic_derivative
public static <T extends Vector<T>> T cubic_derivative(T out, float t, T p0, T p1, T p2, T p3, T tmp)
Cubic Bezier curve derivative- Parameters:
out
- TheVector
to set to the result.t
- The location (ranging 0..1) on the curve.p0
- The first bezier point.p1
- The second bezier point.p2
- The third bezier point.p3
- The fourth bezier point.tmp
- A temporary vector to be used by the calculation.- Returns:
- The value specified by out for chaining
-
derivativeAt
public T derivativeAt(T out, float t)
- Specified by:
derivativeAt
in interfacePath<T extends Vector<T>>
-
approximate
public float approximate(T v)
- Specified by:
approximate
in 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.
-
locate
public float locate(T v)
-
approxLength
public float approxLength(int samples)
- Specified by:
approxLength
in 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.
-
-