Package uk.ac.starlink.dpac.epoch
Class GVector3d
- java.lang.Object
-
- uk.ac.starlink.dpac.epoch.GVector3d
-
public class GVector3d extends java.lang.Object
Class 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 aGVector3d
to(0, 0, 0)
GVector3d(double s)
Constructs and initializes aGVector3d
to the tuple(s, s, s)
.GVector3d(double[] v)
Constructs and initializes aGVector3d
from the first 3 elements of a given double array.GVector3d(double x, double y, double z)
Constructs and initializes aGVector3d
from a specified(x, y, z)
tuple.GVector3d(GVector3d v)
The copy constructor - constructs a newGVector3d
from a given one by copying all elements.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description GVector3d
add(double r)
Adds a scalarr
to all coordinates of the vector, i.e.,this = this + (r, r, r)
.GVector3d
add(GVector3d v)
Adds another vectorv
to this one, i.e.static GVector3d
add(GVector3d v, GVector3d w)
Adds two vectors and return the result a new one.GVector3d
cross(GVector3d vec)
Sets this vector to the outer product of itself and a second vectorv
, i.e.static GVector3d
cross(GVector3d v, GVector3d w)
Calculates the outer product of two given vectorsv
andw
and returns the result as a newGVector3d
.double
dot(GVector3d v)
Calculates the dot product of this and another given vector.double
getX()
double
getY()
double
getZ()
static GVector3d[]
localTriad(double alpha, double delta)
Computes the normal triad [p q r] at spherical coordinates(alpha, delta)
GVector3d
scale(double s)
Scales the vector by a scalars
, i.e.static GVector3d
scale(double s, GVector3d v)
Constructs new vector from scaling a given one.GVector3d
scaleAdd(double s, GVector3d v)
Scales a given vector with a scalar and add the result to this one, i.e.static GVector3d
scaleAdd(GVector3d v1, double s, GVector3d v2)
Constructs new vector as sum of a given vectorv1
and a scaled vectors*v2
.GVector3d
set(double x, double y, double z)
Sets the elements of this vector to given 3-tuple.double
x()
Identical togetX()
double
y()
Identical togetY()
double
z()
Identical togetZ()
-
-
-
Constructor Detail
-
GVector3d
public GVector3d()
Constructs and initializes aGVector3d
to(0, 0, 0)
-
GVector3d
public GVector3d(double s)
Constructs and initializes aGVector3d
to the tuple(s, s, s)
.- Parameters:
s
- double value to be assigned to all components
-
GVector3d
public GVector3d(double[] v) throws java.lang.IllegalArgumentException
Constructs and initializes aGVector3d
from 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 aGVector3d
from a specified(x, y, z)
tuple.- Parameters:
x
-x
coordinatey
-y
coordinatez
-z
coordinate
-
GVector3d
public GVector3d(GVector3d v)
The copy constructor - constructs a newGVector3d
from 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 theX
coordinatey
- new value of theY
coordinatez
- new value of theZ
coordinate- Returns:
- GVector3d
-
getX
public double getX()
- Returns:
X
coordinate value of this vector
-
getY
public double getY()
- Returns:
Y
coordinate value of this vector
-
getZ
public double getZ()
- Returns:
Z
coordinate 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
alpha
1: unit vector in the direction of increasingdelta
2: unit vector towards the point(alpha, delta)
-
add
public GVector3d add(double r)
Adds a scalarr
to 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 vectorv
to 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
v
andw
-
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 vectorsv
andw
and returns the result as a newGVector3d
.- Parameters:
v
- left operandw
- right operand- Returns:
- outer product of
v
andw
-
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
s
andv
as 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
-
-