org.jbox2d.common
Class Vec2

java.lang.Object
  extended by org.jbox2d.common.Vec2

public class Vec2
extends Object

A 2-dimensional vector class. Used heavily in JBox2d. djm: added ToOut methods


Field Summary
static int creationCount
          Running count of Vec2 creations.
static boolean watchCreations
          Should we count Vec2 creations?
 float x
           
 float y
           
 
Constructor Summary
Vec2()
           
Vec2(float x, float y)
           
Vec2(Vec2 toCopy)
           
 
Method Summary
 Vec2 abs()
          Return a new vector that has positive components.
static Vec2 abs(Vec2 a)
           
 void absLocal()
           
static void absToOut(Vec2 a, Vec2 out)
           
 Vec2 add(Vec2 v)
          Return the sum of this vector and another; does not alter either one.
 Vec2 addLocal(float x, float y)
          Adds values to this vector and returns result - alters this vector.
 Vec2 addLocal(Vec2 v)
          Add another vector to this one and returns result - alters this vector.
 Vec2 clone()
           
static Vec2 cross(float s, Vec2 a)
           
static Vec2 cross(Vec2 a, float s)
           
static float cross(Vec2 a, Vec2 b)
           
static void crossToOut(float s, Vec2 a, Vec2 out)
           
static void crossToOut(Vec2 a, float s, Vec2 out)
           
static float dot(Vec2 a, Vec2 b)
           
 boolean isValid()
          True if the vector represents a pair of valid, non-infinite floating point numbers.
 float length()
          Return the length of this vector.
 float lengthSquared()
          Return the squared length of this vector.
static Vec2 max(Vec2 a, Vec2 b)
           
static void maxToOut(Vec2 a, Vec2 b, Vec2 out)
           
static Vec2 min(Vec2 a, Vec2 b)
           
static void minToOut(Vec2 a, Vec2 b, Vec2 out)
           
 Vec2 mul(float a)
          Return this vector multiplied by a scalar; does not alter this vector.
 Vec2 mulLocal(float a)
          Multiply this vector by a number and return result - alters this vector.
 Vec2 negate()
          Return the negation of this vector; does not alter this vector.
 Vec2 negateLocal()
          Flip the vector and return it - alters this vector.
static void negateToOut(Vec2 a, Vec2 out)
           
 float normalize()
          Normalize this vector and return the length before normalization.
 void set(float x, float y)
          Set the vector component-wise.
 void set(Vec2 v)
          Set this vector to another vector.
 void setZero()
          Zero out this vector.
 Vec2 sub(Vec2 v)
          Return the difference of this vector and another; does not alter either one.
 Vec2 subLocal(Vec2 v)
          Subtract another vector from this one and return result - alters this vector.
 String toString()
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

watchCreations

public static boolean watchCreations
Should we count Vec2 creations?


creationCount

public static int creationCount
Running count of Vec2 creations. Must be zeroed out manually (perhaps at start of time step). Incremented in Vec2 constructor if watchCreations flag is true.

Mainly used for optimization purposes, since temporary Vec2 creation is often a bottleneck.


x

public float x

y

public float y
Constructor Detail

Vec2

public Vec2()

Vec2

public Vec2(float x,
            float y)

Vec2

public Vec2(Vec2 toCopy)
Method Detail

setZero

public final void setZero()
Zero out this vector.


set

public final void set(float x,
                      float y)
Set the vector component-wise.


set

public final void set(Vec2 v)
Set this vector to another vector.


add

public final Vec2 add(Vec2 v)
Return the sum of this vector and another; does not alter either one.


sub

public final Vec2 sub(Vec2 v)
Return the difference of this vector and another; does not alter either one.


mul

public final Vec2 mul(float a)
Return this vector multiplied by a scalar; does not alter this vector.


negate

public final Vec2 negate()
Return the negation of this vector; does not alter this vector.


negateLocal

public final Vec2 negateLocal()
Flip the vector and return it - alters this vector.


addLocal

public final Vec2 addLocal(Vec2 v)
Add another vector to this one and returns result - alters this vector.


addLocal

public final Vec2 addLocal(float x,
                           float y)
Adds values to this vector and returns result - alters this vector.


subLocal

public final Vec2 subLocal(Vec2 v)
Subtract another vector from this one and return result - alters this vector.


mulLocal

public final Vec2 mulLocal(float a)
Multiply this vector by a number and return result - alters this vector.


length

public final float length()
Return the length of this vector.


lengthSquared

public final float lengthSquared()
Return the squared length of this vector.


normalize

public final float normalize()
Normalize this vector and return the length before normalization. Alters this vector.


isValid

public final boolean isValid()
True if the vector represents a pair of valid, non-infinite floating point numbers.


abs

public final Vec2 abs()
Return a new vector that has positive components.


absLocal

public final void absLocal()

clone

public final Vec2 clone()
Overrides:
clone in class Object

toString

public final String toString()
Overrides:
toString in class Object

abs

public static final Vec2 abs(Vec2 a)

absToOut

public static final void absToOut(Vec2 a,
                                  Vec2 out)

dot

public static final float dot(Vec2 a,
                              Vec2 b)

cross

public static final float cross(Vec2 a,
                                Vec2 b)

cross

public static final Vec2 cross(Vec2 a,
                               float s)

crossToOut

public static final void crossToOut(Vec2 a,
                                    float s,
                                    Vec2 out)

cross

public static final Vec2 cross(float s,
                               Vec2 a)

crossToOut

public static final void crossToOut(float s,
                                    Vec2 a,
                                    Vec2 out)

negateToOut

public static final void negateToOut(Vec2 a,
                                     Vec2 out)

min

public static final Vec2 min(Vec2 a,
                             Vec2 b)

max

public static final Vec2 max(Vec2 a,
                             Vec2 b)

minToOut

public static final void minToOut(Vec2 a,
                                  Vec2 b,
                                  Vec2 out)

maxToOut

public static final void maxToOut(Vec2 a,
                                  Vec2 b,
                                  Vec2 out)