|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectmaspack.matrix.VectorObject
maspack.matrix.Vector3d
Implements a 3 element vector, along with its most commonly used operations.
The size of these vectors is fixed.
Field Summary | |
double |
x
First element |
double |
y
Second element |
double |
z
Third element |
Constructor Summary | |
Vector3d()
Creates a 3-vector and initializes its elements to 0. |
|
Vector3d(double[] values)
Creates a 3-vector with the supplied element values. |
|
Vector3d(double x,
double y,
double z)
Creates a 3-vector with the supplied element values. |
|
Vector3d(Vector3d v)
Creates a 3-vector by copying an existing one. |
Method Summary | |
void |
absolute()
Sets the elements of this vector to their absolute values. |
void |
absolute(Vector3d v1)
Sets the elements of this vector to the absolute value of v1. |
void |
add(Vector3d v1)
Adds this vector to v1 and places the result in this vector. |
void |
add(Vector3d v1,
Vector3d v2)
Adds vector v1 to v2 and places the result in this vector. |
double |
angle(Vector3d v1)
Returns the angle between this vector and v1. |
void |
combine(double s1,
Vector3d v1,
double s2,
Vector3d v2)
Computes s1 v1 + s2 v2 and places
the result in this vector. |
void |
cross(Vector3d v1)
Computes the cross product of this vector and v1, and places the result in this vector. |
void |
cross(Vector3d v1,
Vector3d v2)
Computes the cross product of v1 and v2 and places the result in this vector. |
void |
crossAdd(Vector3d v1,
Vector3d v2,
Vector3d v3)
Computes the cross product of v1 and v2, adds this to v3, and places the result in this vector. |
double |
distance(Vector3d v)
Returns the Euclidean distance between this vector and vector v. |
double |
distanceSquared(Vector3d v)
Returns the squared of the Euclidean distance between this vector and vector v. |
double |
dot(Vector3d v1)
Returns the dot product of this vector and v1. |
boolean |
epsilonEquals(Vector3d v1,
double eps)
Returns true if the elements of this vector equal those of vector v1 within a
prescribed tolerance epsilon . |
boolean |
equals(Vector3d v1)
Returns true if the elements of this vector exactly equal those of vector v1 . |
void |
get(double[] values)
Copies the elements of this vector into an array of doubles. |
double |
get(int i)
Gets a single element of this vector. |
double |
infinityNorm()
Returns the infinity norm of this vector. |
void |
interpolate(double s,
Vector3d v1)
Computes the interpolation (1-s) this + s v1 and places
the result in this vector. |
void |
interpolate(Vector3d v1,
double s,
Vector3d v2)
Computes the interpolation (1-s) v1 + s v2 and places
the result in this vector. |
void |
inverseTransform(AffineTransform3dObject X)
Applies an inverse affine transformation to this vector, in place. |
void |
inverseTransform(AffineTransform3dObject X,
Vector3d v1)
Applies an inverse affine transformation to the vector v1, and places the result in this vector. |
void |
inverseTransform(RotationMatrix3d R)
Applies an inverse rotational transformation to this vector, in place. |
void |
inverseTransform(RotationMatrix3d R,
Vector3d v1)
Applies an inverse rotational transformation to the vector v1, and stores the result in this vector. |
int |
maxAbsIndex()
Returns the index (0, 1, or 2) of the element of this vector with the largest absolute value. |
double |
maxElement()
Returns the maximum element value of this vector. |
int |
minAbsIndex()
Returns the index (0, 1, or 2) of the element of this vector with the smallest absolute value. |
double |
minElement()
Returns the minimum element value of this vector. |
void |
mul(Matrix3d X,
Vector3d v1)
Multiplies matrix X by vector v1 and places the result in this vector. |
void |
mulTranspose(Matrix3d X,
Vector3d v1)
Multiplies the transpose of matrix X by vector v1 and places the result in this vector. |
void |
negate()
Negates this vector in place. |
void |
negate(Vector3d v1)
Sets this vector to the negative of v1. |
double |
norm()
Returns the 2 norm of this vector. |
void |
normalize()
Normalizes this vector in place. |
void |
normalize(Vector3d v1)
Computes a unit vector in the direction of v1 and places the result in this vector. |
double |
normSquared()
Returns the square of the 2 norm of this vector. |
double |
oneNorm()
Returns the 1 norm of this vector. |
void |
perpendicular(Vector3d v1)
Sets this vector to one which is perpendicular to v1. |
void |
scale(double s)
Scales the elements of this vector by s . |
void |
scale(double s,
Vector3d v1)
Scales the elements of vector v1 by s and places
the results in this vector. |
void |
scaleAdd(double s,
Vector3d v1)
Computes s this + v1 and places
the result in this vector. |
void |
scaleAdd(double s,
Vector3d v1,
Vector3d v2)
Computes s v1 + v2 and places
the result in this vector. |
void |
set(double[] values)
Sets the elements of this vector from an array of doubles. |
void |
set(double x,
double y,
double z)
Sets the elements of this vector to the prescribed values. |
void |
set(int i,
double value)
Sets a single element of this vector. |
void |
set(Vector3d v1)
Sets the values of this vector to those of v1. |
void |
setFromHomogeneous(Vector4d v1)
Sets the values of this vector from a homogeneous representation stored in the 4-vector v1. |
void |
setRandom()
Sets the elements of this vector to uniformly distributed random values in the range -0.5 (inclusive) to 0.5 (exclusive). |
void |
setRandom(double lower,
double upper)
Sets the elements of this vector to uniformly distributed random values in a specified range. |
void |
setRandom(double lower,
double upper,
java.util.Random generator)
Sets the elements of this vector to uniformly distributed random values in a specified range, using a supplied random number generator. |
void |
setZero()
Sets the elements of this vector to zero. |
int |
size()
Returns the size of this vector (which is always 3) |
void |
sort()
Sorts the contents of this vector by element value, with x being set to the largest value and z being set to the smallest value. |
void |
sort(Vector3d v1)
Sorts the contents of vector v1 by element value, with x being set to the largest value and z being set to the smallest value, and places the results in this vector. |
void |
sortAbsolute()
Sorts the contents of this vector by absolute element value, with x being set to the largest value and z being set to the smallest value. |
void |
sub(Vector3d v1)
Subtracts v1 from this vector and places the result in this vector. |
void |
sub(Vector3d v1,
Vector3d v2)
Subtracts vector v1 from v2 and places the result in this vector. |
void |
transform(AffineTransform3dObject X)
Applies a affine transformation to this vector, in place. |
void |
transform(AffineTransform3dObject X,
Vector3d v1)
Applies an affine transformation to the vector v1, and places the result in this vector. |
void |
transform(RotationMatrix3d R)
Applies a rotational transformation to this vector, in place. |
void |
transform(RotationMatrix3d R,
Vector3d v1)
Applies a rotational transformation to the vector v1 and stores the result in this vector. |
Methods inherited from class maspack.matrix.VectorObject |
dot, epsilonEquals, equals, equals, get, isFixedSize, scan, set, setSize, toString, toString, toString |
Methods inherited from class java.lang.Object |
getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public double x
public double y
public double z
Constructor Detail |
public Vector3d()
public Vector3d(Vector3d v)
v
- vector to be copiedpublic Vector3d(double x, double y, double z)
x
- first elementy
- second elementz
- third elementpublic Vector3d(double[] values)
values
- element valuesMethod Detail |
public int size()
size
in class VectorObject
public double get(int i)
get
in class VectorObject
i
- element index
public void get(double[] values)
get
in class VectorObject
values
- array into which values are copiedpublic void set(int i, double value)
set
in class VectorObject
i
- element indexvalue
- element value
public void set(double[] values)
set
in class VectorObject
values
- array from which values are copiedpublic void set(Vector3d v1)
v1
- vector whose values are copiedpublic void setFromHomogeneous(Vector4d v1)
v1
- homogenous vectorpublic void add(Vector3d v1, Vector3d v2)
v1
- left-hand vectorv2
- right-hand vectorpublic void add(Vector3d v1)
v1
- right-hand vectorpublic void sub(Vector3d v1, Vector3d v2)
v1
- left-hand vectorv2
- right-hand vectorpublic void sub(Vector3d v1)
v1
- right-hand vectorpublic void negate(Vector3d v1)
v1
- vector to negatepublic void negate()
public void scale(double s)
s
.
s
- scaling factorpublic void scale(double s, Vector3d v1)
s
and places
the results in this vector.
s
- scaling factorv1
- vector to be scaledpublic void interpolate(Vector3d v1, double s, Vector3d v2)
(1-s) v1 + s v2
and places
the result in this vector.
v1
- left-hand vectors
- interpolation factorv2
- right-hand vectorpublic void interpolate(double s, Vector3d v1)
(1-s) this + s v1
and places
the result in this vector.
s
- interpolation factorv1
- right-hand vectorpublic void scaleAdd(double s, Vector3d v1, Vector3d v2)
s v1 + v2
and places
the result in this vector.
s
- scaling factorv1
- vector to be scaledv2
- vector to be addedpublic void scaleAdd(double s, Vector3d v1)
s this + v1
and places
the result in this vector.
s
- scaling factorv1
- vector to be addedpublic void combine(double s1, Vector3d v1, double s2, Vector3d v2)
s1 v1 + s2 v2
and places
the result in this vector.
s1
- left-hand scaling factorv1
- left-hand vectors2
- right-hand scaling factorv2
- right-hand vectorpublic double norm()
norm
in class VectorObject
public double normSquared()
normSquared
in class VectorObject
public double distance(Vector3d v)
public double distanceSquared(Vector3d v)
public double maxElement()
maxElement
in class VectorObject
public double minElement()
minElement
in class VectorObject
public double infinityNorm()
infinityNorm
in class VectorObject
public double oneNorm()
oneNorm
in class VectorObject
public double dot(Vector3d v1)
v1
- right-hand vector
public double angle(Vector3d v1)
acos(c)
, where c
is the dot product of unit vectors parallel to this vector and v1.
v1
- right-hand vector
public void normalize()
public void normalize(Vector3d v1)
v1
- vector to normalizepublic void perpendicular(Vector3d v1)
v1
- perpendicular reference vectorpublic boolean epsilonEquals(Vector3d v1, double eps)
v1
within a
prescribed tolerance epsilon
.
v1
- vector to compare witheps
- comparison tolerance
public boolean equals(Vector3d v1)
v1
.
v1
- vector to compare with
public void setZero()
public void set(double x, double y, double z)
x
- value for first elementy
- value for second elementz
- value for third elementpublic void absolute()
public void absolute(Vector3d v1)
v1
- vector to take the absolute value ofpublic void sortAbsolute()
public int maxAbsIndex()
public int minAbsIndex()
public void sort(Vector3d v1)
v1
- vector to sortpublic void sort()
public void cross(Vector3d v1, Vector3d v2)
v1
- left-hand vectorv2
- right-hand vectorpublic void cross(Vector3d v1)
v1
- right-hand vectorpublic void crossAdd(Vector3d v1, Vector3d v2, Vector3d v3)
v1
- left-hand vector for cross productv2
- right-hand vector for cross productv3
- vector to addpublic void transform(RotationMatrix3d R)
R
- rotational transformation matrixpublic void transform(RotationMatrix3d R, Vector3d v1)
R
- rotational transformation matrixv1
- vector to transformpublic void inverseTransform(RotationMatrix3d R)
R
- rotational transformation matrixpublic void inverseTransform(RotationMatrix3d R, Vector3d v1)
R
- rotational transformation matrixv1
- vector to transformpublic void transform(AffineTransform3dObject X)
X
- affine transformationpublic void transform(AffineTransform3dObject X, Vector3d v1)
X
- affine transformationv1
- vector to be transformedpublic void inverseTransform(AffineTransform3dObject X)
X
- affine transformationpublic void inverseTransform(AffineTransform3dObject X, Vector3d v1)
X
- affine transformationv1
- vector to be transformedpublic void mul(Matrix3d X, Vector3d v1)
X
- matrixv1
- vectorpublic void mulTranspose(Matrix3d X, Vector3d v1)
X
- matrixv1
- vectorpublic void setRandom()
public void setRandom(double lower, double upper)
lower
- lower random value (inclusive)upper
- upper random value (exclusive)public void setRandom(double lower, double upper, java.util.Random generator)
lower
- lower random value (inclusive)upper
- upper random value (exclusive)generator
- random number generator
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |