Package gaiasky.util.math
Interface Vectord<T extends Vectord<T>>


Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description T
add(T v)
Adds the given vector to this vectorT
clamp(double min, double max)
Clamps this vector's length to given min and max valuesT
cpy()
double
dot(T v)
double
dst(T v)
double
dst2(T v)
This method is faster thandst(Vectord)
because it avoids calculating a square root.boolean
epsilonEquals(T other, double epsilon)
Compares this vector with the other vector, using the supplied epsilon for fuzzy equality testing.boolean
hasOppositeDirection(T other)
boolean
hasSameDirection(T other)
T
interpolate(T target, double alpha, Interpolationd interpolator)
Interpolates between this vector and the given target vector by alpha (within range [0,1]) using the given Interpolation method.boolean
isCollinear(T other)
boolean
isCollinear(T other, double epsilon)
boolean
isCollinearOpposite(T other)
boolean
isCollinearOpposite(T other, double epsilon)
boolean
isOnLine(T other)
boolean
isOnLine(T other, double epsilon)
boolean
isPerpendicular(T other)
boolean
isPerpendicular(T other, double epsilon)
boolean
isUnit()
boolean
isUnit(double margin)
boolean
isZero()
boolean
isZero(double margin)
double
len()
double
len2()
This method is faster thanlen()
because it avoids calculating a square root.T
lerp(T target, double alpha)
Linearly interpolates between this vector and the target vector by alpha which is in the range [0,1].T
limit(double limit)
Limits the length of this vector, based on the desired maximum length.T
limit2(double limit2)
Limits the length of this vector, based on the desired maximum length squared.T
mulAdd(T v, double scalar)
First scale a supplied vector, then add it to this vector.T
mulAdd(T v, T mulVec)
First scale a supplied vector, then add it to this vector.T
nor()
Normalizes this vector.T
scl(double scalar)
Scales this vector by a scalarT
scl(T v)
Scales this vector by another vectorT
set(T v)
Sets this vector from the given vectorT
setLength(double len)
Sets the length of this vector.T
setLength2(double len2)
Sets the length of this vector, based on the square of the desired length.T
setToRandomDirection()
Sets this vector to the unit vector with a random directionT
setZero()
Sets the components of this vector to 0T
sub(T v)
Subtracts the given vector from this vector.



Method Detail

cpy
T cpy()
 Returns:
 a copy of this vector

len
double len()
 Returns:
 The euclidean length

len2
double len2()
This method is faster thanlen()
because it avoids calculating a square root. It is useful for comparisons, but not for getting exact lengths, as the return value is the square of the actual length. Returns:
 The squared euclidean length

limit
T limit(double limit)
Limits the length of this vector, based on the desired maximum length. Parameters:
limit
 desired maximum length for this vector Returns:
 this vector for chaining

limit2
T limit2(double limit2)
Limits the length of this vector, based on the desired maximum length squared.This method is slightly faster than limit().
 Parameters:
limit2
 squared desired maximum length for this vector Returns:
 this vector for chaining
 See Also:
len2()

setLength
T setLength(double len)
Sets the length of this vector. Does nothing is this vector is zero. Parameters:
len
 desired length for this vector Returns:
 this vector for chaining

setLength2
T setLength2(double len2)
Sets the length of this vector, based on the square of the desired length. Does nothing is this vector is zero.This method is slightly faster than setLength().
 Parameters:
len2
 desired square of the length for this vector Returns:
 this vector for chaining
 See Also:
len2()

clamp
T clamp(double min, double max)
Clamps this vector's length to given min and max values Parameters:
min
 Min lengthmax
 Max length Returns:
 This vector for chaining

set
T set(T v)
Sets this vector from the given vector Parameters:
v
 The vector Returns:
 This vector for chaining

sub
T sub(T v)
Subtracts the given vector from this vector. Parameters:
v
 The vector Returns:
 This vector for chaining

nor
T nor()
Normalizes this vector. Does nothing if it is zero. Returns:
 This vector for chaining

add
T add(T v)
Adds the given vector to this vector Parameters:
v
 The vector Returns:
 This vector for chaining

dot
double dot(T v)
 Parameters:
v
 The other vector Returns:
 The dot product between this and the other vector

scl
T scl(double scalar)
Scales this vector by a scalar Parameters:
scalar
 The scalar Returns:
 This vector for chaining

dst
double dst(T v)
 Parameters:
v
 The other vector Returns:
 the distance between this and the other vector

dst2
double dst2(T v)
This method is faster thandst(Vectord)
because it avoids calculating a square root. It is useful for comparisons, but not for getting accurate distances, as the return value is the square of the actual distance. Parameters:
v
 The other vector Returns:
 the squared distance between this and the other vector

lerp
T lerp(T target, double alpha)
Linearly interpolates between this vector and the target vector by alpha which is in the range [0,1]. The result is stored in this vector. Parameters:
target
 The target vectoralpha
 The interpolation coefficient Returns:
 This vector for chaining.

interpolate
T interpolate(T target, double alpha, Interpolationd interpolator)
Interpolates between this vector and the given target vector by alpha (within range [0,1]) using the given Interpolation method. the result is stored in this vector. Parameters:
target
 The target vectoralpha
 The interpolation coefficientinterpolator
 An Interpolation object describing the used interpolation method Returns:
 This vector for chaining.

setToRandomDirection
T setToRandomDirection()
Sets this vector to the unit vector with a random direction Returns:
 This vector for chaining

isUnit
boolean isUnit()
 Returns:
 Whether this vector is a unit length vector

isUnit
boolean isUnit(double margin)
 Returns:
 Whether this vector is a unit length vector within the given margin.

isZero
boolean isZero()
 Returns:
 Whether this vector is a zero vector

isZero
boolean isZero(double margin)
 Returns:
 Whether the length of this vector is smaller than the given margin

isOnLine
boolean isOnLine(T other, double epsilon)
 Returns:
 true if this vector is in line with the other vector (either in the same or the opposite direction)

isOnLine
boolean isOnLine(T other)
 Returns:
 true if this vector is in line with the other vector (either in the same or the opposite direction)

isCollinear
boolean isCollinear(T other, double epsilon)
 Returns:
 true if this vector is collinear with the other vector (
isOnLine(Vectord, double)
&&hasSameDirection(Vectord)
).

isCollinear
boolean isCollinear(T other)
 Returns:
 true if this vector is collinear with the other vector (
isOnLine(Vectord)
&&hasSameDirection(Vectord)
).

isCollinearOpposite
boolean isCollinearOpposite(T other, double epsilon)
 Returns:
 true if this vector is opposite collinear with the other vector (
isOnLine(Vectord, double)
&&hasOppositeDirection(Vectord)
).

isCollinearOpposite
boolean isCollinearOpposite(T other)
 Returns:
 true if this vector is opposite collinear with the other vector (
isOnLine(Vectord)
&&hasOppositeDirection(Vectord)
).

isPerpendicular
boolean isPerpendicular(T other)
 Returns:
 Whether this vector is perpendicular with the other vector. True if the dot product is 0.

isPerpendicular
boolean isPerpendicular(T other, double epsilon)
 Parameters:
epsilon
 a positive small number close to zero Returns:
 Whether this vector is perpendicular with the other vector. True if the dot product is 0.

hasSameDirection
boolean hasSameDirection(T other)
 Returns:
 Whether this vector has similar direction compared to the other vector. True if the normalized dot product is > 0.

hasOppositeDirection
boolean hasOppositeDirection(T other)
 Returns:
 Whether this vector has opposite direction compared to the other vector. True if the normalized dot product is < 0.

epsilonEquals
boolean epsilonEquals(T other, double epsilon)
Compares this vector with the other vector, using the supplied epsilon for fuzzy equality testing. Parameters:
other
epsilon
 Returns:
 whether the vectors have fuzzy equality.

mulAdd
T mulAdd(T v, double scalar)
First scale a supplied vector, then add it to this vector. Parameters:
v
 addition vectorscalar
 for scaling the addition vector

mulAdd
T mulAdd(T v, T mulVec)
First scale a supplied vector, then add it to this vector. Parameters:
v
 addition vectormulVec
 vector by whose values the addition vector will be scaled

setZero
T setZero()
Sets the components of this vector to 0 Returns:
 This vector for chaining

