com.badlogic.gdx.math
Class Bezier<T extends Vector<T>>

java.lang.Object
  extended by com.badlogic.gdx.math.Bezier<T>
All Implemented Interfaces:
Path<T>

public class Bezier<T extends Vector<T>>
extends Object
implements Path<T>

Implementation of the Bezier curve.

Author:
Xoppa

Field Summary
 Array<T> points
           
 
Constructor Summary
Bezier()
           
Bezier(Array<T> points, int offset, int length)
           
Bezier(T... points)
           
Bezier(T[] points, int offset, int length)
           
 
Method Summary
 float approximate(T v)
           
static
<T extends Vector<T>>
T
cubic(T out, float t, T p0, T p1, T p2, T p3, T tmp)
          Cubic Bezier curve
static
<T extends Vector<T>>
T
linear(T out, float t, T p0, T p1, T tmp)
          Simple linear interpolation
 float locate(T v)
           
static
<T extends Vector<T>>
T
quadratic(T out, float t, T p0, T p1, T p2, T tmp)
          Quadratic Bezier curve
 Bezier 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)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

points

public Array<T extends Vector<T>> points
Constructor Detail

Bezier

public Bezier()

Bezier

public Bezier(T... points)

Bezier

public Bezier(T[] points,
              int offset,
              int length)

Bezier

public Bezier(Array<T> points,
              int offset,
              int length)
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 - The Vector 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 - The Vector 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 - The Vector 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

set

public Bezier set(T... points)

set

public Bezier set(T[] points,
                  int offset,
                  int length)

set

public Bezier set(Array<T> points,
                  int offset,
                  int length)

valueAt

public T valueAt(T out,
                 float t)
Specified by:
valueAt in interface Path<T extends Vector<T>>
Returns:
The value of the path at t where 0<=t<=1

approximate

public float approximate(T v)
Specified by:
approximate in interface Path<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)
Specified by:
locate in interface Path<T extends Vector<T>>
Returns:
The precise location (between 0 and 1) on the path which is closest to the specified value. Note that the implementation of this method might be CPU intensive, see Path.approximate(Object) for a faster (but less precise) method.


Copyright © 2013. All Rights Reserved.