Maven module :un.api : api-math :
Class : un.impl.math.Vector
Extends/Implements : un.impl.math.DefaultTuple
Subclasses : -

author  Johann Sorel


Variables : -
Functions : Vector, Vector, Vector, Vector, Vector, Vector, Vector, Vector, getXY, getXYZ, getXYZW, length, lengthSquare, dot, add, subtract, multiply, divide, scale, cross, lerp, normalize, negate, shortestAngle, project, reflect, add, subtract, multiply, divide, scale, cross, lerp, normalize, negate, localAdd, localAdd, localAdd, localAdd, localSubtract, localMultiply, localDivide, localScale, localCross, localNormalize, localNegate, localLerp, copy, extend



public void Vector (int size)

public void Vector (double x, double y)

public void Vector (double x, double y, double z)

public void Vector (double x, double y, double z, double w)


Construct a vector adding one dimension.
param  tuple
param  value1
public void Vector (Tuple tuple, double value1)

public void Vector (double[] values)

public void Vector (float[] values)

public void Vector (Tuple v)


{@inheritDoc }
public Vector getXY ()


{@inheritDoc }
public Vector getXYZ ()


{@inheritDoc }
public Vector getXYZW ()

public double length ()

public double lengthSquare ()

public double dot (Tuple other)



public Vector add (Tuple other)

public Vector subtract (Tuple other)

public Vector multiply (Tuple other)

public Vector divide (Tuple other)

public Vector scale (double scale)

public Vector cross (Tuple other)

public Vector lerp (Tuple other, double ratio)

public Vector normalize ()

public Vector negate ()


Calculate shortest angle to given vector.
formula : acos(dot(vec1,vec2))
param  second
return  shortest angle in radian
public double shortestAngle (Vector second)


Calculate the projected vector of given vector on this vector.

formula :
v = this vector
u = other vector
((u dot v) / |v|^2 ) * v

@param candidate vector to project
@return projected vector of candidate on this vector.
public Vector project (Tuple candidate)


Calculate reflected vector.
param  normal
return
public Vector reflect (Tuple normal)



public Vector add (Tuple other, Vector buffer)

public Vector subtract (Tuple other, Vector buffer)

public Vector multiply (Tuple other, Vector buffer)

public Vector divide (Tuple other, Vector buffer)

public Vector scale (double scale, Vector buffer)

public Vector cross (Tuple other, Vector buffer)

public Vector lerp (Tuple other, double ratio, Vector buffer)

public Vector normalize (Vector buffer)

public Vector negate (Vector buffer)



public Vector localAdd (double x, double y)

public Vector localAdd (double x, double y, double z)

public Vector localAdd (double x, double y, double z, double w)

public Vector localAdd (Tuple other)

public Vector localSubtract (Tuple other)

public Vector localMultiply (Tuple other)

public Vector localDivide (Tuple other)

public Vector localScale (double scale)

public Vector localCross (Tuple other)

public Vector localNormalize ()

public Vector localNegate ()

public Vector localLerp (Tuple other, double ratio)

public Vector copy ()


Create a new vector with current vector values and extend it with
given value.
param  value, value to add at the end of Vector
return  Vector
public Vector extend (double value)