Package uk.ac.starlink.dpac.epoch
Class GVector3d
- java.lang.Object
-
- uk.ac.starlink.dpac.epoch.GVector3d
-
public class GVector3d extends java.lang.ObjectClass representing a three-dimensional vector in Eucledian space. The space is spanned by a right-handed, orthonormal triad designated [X, Y, Z] in the following.The class suppors all the usual methods to perform conventional vector arithmetics such as vector and dot product.
- Version:
- $Id: GVector3d.java 359256 2014-04-07 17:09:18Z hsiddiqu $
- Author:
- aolias
-
-
Constructor Summary
Constructors Constructor Description GVector3d()Constructs and initializes aGVector3dto(0, 0, 0)GVector3d(double s)Constructs and initializes aGVector3dto the tuple(s, s, s).GVector3d(double[] v)Constructs and initializes aGVector3dfrom the first 3 elements of a given double array.GVector3d(double x, double y, double z)Constructs and initializes aGVector3dfrom a specified(x, y, z)tuple.GVector3d(GVector3d v)The copy constructor - constructs a newGVector3dfrom a given one by copying all elements.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description GVector3dadd(double r)Adds a scalarrto all coordinates of the vector, i.e.,this = this + (r, r, r).GVector3dadd(GVector3d v)Adds another vectorvto this one, i.e.static GVector3dadd(GVector3d v, GVector3d w)Adds two vectors and return the result a new one.GVector3dcross(GVector3d vec)Sets this vector to the outer product of itself and a second vectorv, i.e.static GVector3dcross(GVector3d v, GVector3d w)Calculates the outer product of two given vectorsvandwand returns the result as a newGVector3d.doubledot(GVector3d v)Calculates the dot product of this and another given vector.doublegetX()doublegetY()doublegetZ()static GVector3d[]localTriad(double alpha, double delta)Computes the normal triad [p q r] at spherical coordinates(alpha, delta)GVector3dscale(double s)Scales the vector by a scalars, i.e.static GVector3dscale(double s, GVector3d v)Constructs new vector from scaling a given one.GVector3dscaleAdd(double s, GVector3d v)Scales a given vector with a scalar and add the result to this one, i.e.static GVector3dscaleAdd(GVector3d v1, double s, GVector3d v2)Constructs new vector as sum of a given vectorv1and a scaled vectors*v2.GVector3dset(double x, double y, double z)Sets the elements of this vector to given 3-tuple.doublex()Identical togetX()doubley()Identical togetY()doublez()Identical togetZ()
-
-
-
Constructor Detail
-
GVector3d
public GVector3d()
Constructs and initializes aGVector3dto(0, 0, 0)
-
GVector3d
public GVector3d(double s)
Constructs and initializes aGVector3dto the tuple(s, s, s).- Parameters:
s- double value to be assigned to all components
-
GVector3d
public GVector3d(double[] v) throws java.lang.IllegalArgumentExceptionConstructs and initializes aGVector3dfrom the first 3 elements of a given double array.- Parameters:
v- array of length >=3 to initialize this vector from- Throws:
java.lang.IllegalArgumentException- if input array has less than three elements
-
GVector3d
public GVector3d(double x, double y, double z)Constructs and initializes aGVector3dfrom a specified(x, y, z)tuple.- Parameters:
x-xcoordinatey-ycoordinatez-zcoordinate
-
GVector3d
public GVector3d(GVector3d v)
The copy constructor - constructs a newGVector3dfrom a given one by copying all elements.- Parameters:
v- Vector to set this object to
-
-
Method Detail
-
set
public GVector3d set(double x, double y, double z)
Sets the elements of this vector to given 3-tuple.- Parameters:
x- new value of theXcoordinatey- new value of theYcoordinatez- new value of theZcoordinate- Returns:
- GVector3d
-
getX
public double getX()
- Returns:
Xcoordinate value of this vector
-
getY
public double getY()
- Returns:
Ycoordinate value of this vector
-
getZ
public double getZ()
- Returns:
Zcoordinate value of this vector
-
x
public double x()
Identical togetX()- Returns:
- double
-
y
public double y()
Identical togetY()- Returns:
- double
-
z
public double z()
Identical togetZ()- Returns:
- double
-
localTriad
public static GVector3d[] localTriad(double alpha, double delta)
Computes the normal triad [p q r] at spherical coordinates(alpha, delta)- Parameters:
alpha- longitude [rad] (0<=alpha<2 Pi)delta- latitude [rad] (-Pi/2<=delta<=Pi/2)- Returns:
- computed normal trid as three element array 0: unit vector in the
direction of increasing
alpha1: unit vector in the direction of increasingdelta2: unit vector towards the point(alpha, delta)
-
add
public GVector3d add(double r)
Adds a scalarrto all coordinates of the vector, i.e.,this = this + (r, r, r).- Parameters:
r- scalar to add to all coordinates- Returns:
- vector modified in place
-
add
public GVector3d add(GVector3d v)
Adds another vectorvto this one, i.e.this = this + v.- Parameters:
v- vector to add- Returns:
- vector modified in place
-
add
public static GVector3d add(GVector3d v, GVector3d w)
Adds two vectors and return the result a new one.- Parameters:
v- first operandw- second operand- Returns:
- sum of
vandw
-
cross
public GVector3d cross(GVector3d vec)
Sets this vector to the outer product of itself and a second vectorv, i.e.this = this x v- Parameters:
vec- vector with which to build the outer product- Returns:
- vector modified in place
-
cross
public static GVector3d cross(GVector3d v, GVector3d w)
Calculates the outer product of two given vectorsvandwand returns the result as a newGVector3d.- Parameters:
v- left operandw- right operand- Returns:
- outer product of
vandw
-
dot
public double dot(GVector3d v)
Calculates the dot product of this and another given vector.- Parameters:
v- vector to build the dot product with- Returns:
- dot product of this vector and
v
-
scale
public GVector3d scale(double s)
Scales the vector by a scalars, i.e.this = s*this- Parameters:
s- scalar to scale the vector with- Returns:
- vector modified in place
-
scale
public static GVector3d scale(double s, GVector3d v)
Constructs new vector from scaling a given one.- Parameters:
s- scalar scaling factorv- vector to scale- Returns:
- product of
sandvas a newGVector3d
-
scaleAdd
public GVector3d scaleAdd(double s, GVector3d v)
Scales a given vector with a scalar and add the result to this one, i.e.this = this + s*v.- Parameters:
s- scalar scaling factorv- vector to scale- Returns:
- vector modified in place
-
-