A 3D vector on Earth. More...
#include <MVuvw.h>
Public Member Functions | |
MVuvw () | |
Default constructor generates a (0,0,0) uvw. | |
MVuvw (const MVPosition &other) | |
Copy constructor. | |
MVuvw (Double in0, Double in1, Double in2) | |
Creates a specified vector. | |
MVuvw (Double in0) | |
Creates a vector with specified length towards pole. | |
MVuvw (const Quantity &l) | |
MVuvw (const Quantity &l, Double angle0, Double angle1) | |
Creates the uvw from specified (azimuth,elevation) angles and length. | |
MVuvw (const Quantity &l, const Quantity &angle0, const Quantity &angle1) | |
Creates the uvw from specified angles and length. | |
MVuvw (const Quantum< Vector< Double > > &angle) | |
If not enough angles: pole assumed (if none), or elevation =0 (if 1). | |
MVuvw (const Quantity &l, const Quantum< Vector< Double > > &angle) | |
MVuvw (const Vector< Double > &other) | |
Create from specified length and/or angles and/or uvw. | |
MVuvw (const Vector< Quantity > &other) | |
MVuvw (const MVBaseline &pos, const MVDirection &dr, Bool ew=False) | |
uvw from a baseline and a reference direction (in same frame) | |
MVuvw & | operator= (const MVuvw &other) |
Copy assignment. | |
~MVuvw () | |
Destructor. | |
Double | operator* (const MVuvw &other) const |
Multiplication defined as in-product. | |
Bool | operator== (const MVuvw &other) const |
Equality comparisons. | |
Bool | operator!= (const MVuvw &other) const |
Bool | near (const MVuvw &other, Double tol=1e-13) const |
Bool | near (const MVuvw &other, Quantity tol) const |
Bool | nearAbs (const MVuvw &other, Double tol=1e-13) const |
MVuvw | operator- () const |
Addition and subtraction. | |
MVuvw & | operator+= (const MVuvw &right) |
MVuvw | operator+ (const MVuvw &right) const |
MVuvw & | operator-= (const MVuvw &right) |
MVuvw | operator- (const MVuvw &right) const |
virtual uInt | type () const |
Tell me your type. | |
virtual void | adjust () |
Normalise direction aspects by adjusting the length to 1. | |
virtual void | adjust (Double &res) |
Adjustment with returned factor. | |
virtual void | readjust (Double res) |
Re-adjust using factor given. | |
virtual Double | radius () |
Get radius(i.e. | |
Vector< Double > | get () const |
Generate a 3-vector of coordinates (length(m), angles(rad)). | |
const Vector< Double > & | getValue () const |
Generate a 3-vector of x,y,z in m. | |
Quantum< Vector< Double > > | getAngle () const |
Generate angle 2-vector (in rad). | |
Quantum< Vector< Double > > | getAngle (const Unit &unit) const |
and with specified units | |
Quantity | getLength () const |
Generate the length. | |
Quantity | getLength (const Unit &unit) const |
and generate it with the specified units | |
Double | uvwAngle (const MVuvw &other) const |
Get the uvw angle between the directions. | |
Quantity | uvwAngle (const MVuvw &other, const Unit &unit) const |
Double | separation (const MVuvw &other) const |
Get the angular separation between two directions. | |
Quantity | separation (const MVuvw &other, const Unit &unit) const |
MVuvw | crossProduct (const MVuvw &other) const |
Produce the cross product. | |
virtual void | print (ostream &os) const |
Print data. | |
virtual MeasValue * | clone () const |
Clone. | |
virtual Vector< Double > | getVector () const |
Get the value in internal units. | |
virtual void | putVector (const Vector< Double > &in) |
Set the value from internal units (set 0 for empty vector). | |
virtual Vector< Quantum< Double > > | getRecordValue () const |
Get the internal value as a Vector<Quantity> . | |
virtual Vector< Quantum< Double > > | getXRecordValue () const |
virtual Vector< Quantum< Double > > | getTMRecordValue () const |
virtual Bool | putValue (const Vector< Quantum< Double > > &in) |
Set the internal value if correct values and dimensions. | |
Static Public Member Functions | |
static void | assure (const MeasValue &in) |
A 3D vector on Earth.
Public interface
From Measure, Value and uvw
A MVuvw is a 3-vector of uvws in a rectangular frame with internal units of m.
It can be constructed with:
MVuvw(Quantity, Quantum<Vector<Double> >)
creates a MVuvw from angle vector, using first two angles, and assuming second as zero if not present. MVuvw(Quantum<Vector<Double> >
creates from angles or uvws, depending on the units in the quantum vector. In the angle case, the data derived can be scaled with the readjust() function. If the unit of the quantum vector is length, uvw is assumed. MVuvw(Vector<Double>
creates from angles (less than or equal to two elements) or x,y,z (3 elements). MVuvw(Vector<Quantity>
creates from length+angles, angles, or x,y,z, depending on units. MVuvw(MVBaseline, MVDirection)
creates a uvw in the specified reference direction (in same reference frame) A void adjust(Double) function normalises the vector to a length of 1; a get() returns as a Double 3-vector the length and angles of the uvw vector; a getAngle() returns a Quantum 2-vector, (uInt) returns the indicated element, and getValue returns the vector.
uvws can be added and subtracted.
The multiplication of two uvws produces the in-product.
See Muvw class.
To do coordinate transformations
Definition at line 110 of file MVuvw.h.
casacore::MVuvw::MVuvw | ( | ) |
Default constructor generates a (0,0,0) uvw.
casacore::MVuvw::MVuvw | ( | const MVPosition & | other | ) |
Copy constructor.
casacore::MVuvw::MVuvw | ( | Double | in0 | ) | [explicit] |
Creates a vector with specified length towards pole.
casacore::MVuvw::MVuvw | ( | const Quantity & | l | ) |
Creates the uvw from specified (azimuth,elevation) angles and length.
Creates the uvw from specified angles and length.
or uvws
If not enough angles: pole assumed (if none), or elevation =0 (if 1).
Create from specified length and/or angles and/or uvw.
casacore::MVuvw::MVuvw | ( | const MVBaseline & | pos, | |
const MVDirection & | dr, | |||
Bool | ew = False | |||
) |
uvw from a baseline and a reference direction (in same frame)
casacore::MVuvw::~MVuvw | ( | ) |
Destructor.
virtual void casacore::MVuvw::adjust | ( | Double & | res | ) | [virtual] |
Adjustment with returned factor.
Reimplemented from casacore::MVPosition.
virtual void casacore::MVuvw::adjust | ( | ) | [virtual] |
Normalise direction aspects by adjusting the length to 1.
Reimplemented from casacore::MVPosition.
static void casacore::MVuvw::assure | ( | const MeasValue & | in | ) | [static] |
Reimplemented from casacore::MVPosition.
virtual MeasValue* casacore::MVuvw::clone | ( | ) | const [virtual] |
Clone.
Reimplemented from casacore::MVPosition.
Produce the cross product.
Reimplemented from casacore::MVPosition.
Generate a 3-vector of coordinates (length(m), angles(rad)).
Reimplemented from casacore::MVPosition.
and with specified units
Reimplemented from casacore::MVPosition.
Generate angle 2-vector (in rad).
Reimplemented from casacore::MVPosition.
and generate it with the specified units
Reimplemented from casacore::MVPosition.
Quantity casacore::MVuvw::getLength | ( | ) | const |
Generate the length.
Reimplemented from casacore::MVPosition.
Get the internal value as a Vector<Quantity>
.
Usable in records. The getXRecordValue() gets additional information for records. Note that the Vectors could be empty.
Reimplemented from casacore::MVPosition.
Reimplemented from casacore::MVPosition.
Definition at line 239 of file MVuvw.h.
References getXRecordValue().
Generate a 3-vector of x,y,z in m.
Reimplemented from casacore::MVPosition.
Get the value in internal units.
Reimplemented from casacore::MVPosition.
Reimplemented from casacore::MVPosition.
Referenced by getTMRecordValue().
Reimplemented from casacore::MVPosition.
Reimplemented from casacore::MVPosition.
Reimplemented from casacore::MVPosition.
Reimplemented from casacore::MVPosition.
Multiplication defined as in-product.
Reimplemented from casacore::MVPosition.
Reimplemented from casacore::MVPosition.
Reimplemented from casacore::MVPosition.
Reimplemented from casacore::MVPosition.
MVuvw casacore::MVuvw::operator- | ( | ) | const |
Addition and subtraction.
Reimplemented from casacore::MVPosition.
Reimplemented from casacore::MVPosition.
Copy assignment.
Reimplemented from casacore::MVPosition.
Equality comparisons.
Reimplemented from casacore::MVPosition.
virtual void casacore::MVuvw::print | ( | ostream & | os | ) | const [virtual] |
Print data.
Reimplemented from casacore::MVPosition.
Set the internal value if correct values and dimensions.
Reimplemented from casacore::MVPosition.
Set the value from internal units (set 0 for empty vector).
Reimplemented from casacore::MVPosition.
virtual Double casacore::MVuvw::radius | ( | ) | [virtual] |
virtual void casacore::MVuvw::readjust | ( | Double | res | ) | [virtual] |
Re-adjust using factor given.
Reimplemented from casacore::MVPosition.
Reimplemented from casacore::MVPosition.
Get the angular separation between two directions.
Reimplemented from casacore::MVPosition.
virtual uInt casacore::MVuvw::type | ( | ) | const [virtual] |
Tell me your type.
Reimplemented from casacore::MVPosition.
Get the uvw angle between the directions.
I.e. the angle between the direction from one to the pole, and from one to the other.