casa
5.7.0-16
|
A 3D vector on Earth. More...
#include <MVBaseline.h>
Public Member Functions | |
MVBaseline () | |
Default constructor generates a (0,0,0) Baseline. More... | |
MVBaseline (const MVPosition &other) | |
Copy constructor. More... | |
MVBaseline (Double in0, Double in1, Double in2) | |
Creates a specified vector. More... | |
MVBaseline (Double in0) | |
Creates a vector with specified length towards pole. More... | |
MVBaseline (const Quantity &l) | |
MVBaseline (const Quantity &l, Double angle0, Double angle1) | |
Creates the Baseline from specified (azimuth,elevation) angles and length. More... | |
MVBaseline (const Quantity &l, const Quantity &angle0, const Quantity &angle1) | |
Creates the Baseline from specified angles and length. More... | |
MVBaseline (const Quantum< Vector< Double > > &angle) | |
If not enough angles: pole assumed (if none), or elevation =0 (if 1) More... | |
MVBaseline (const Quantity &l, const Quantum< Vector< Double > > &angle) | |
MVBaseline (const Vector< Double > &other) | |
Create from specified length and/or angles and/or Baseline. More... | |
MVBaseline (const Vector< Quantity > &other) | |
MVBaseline (const MVPosition &pos, const MVPosition &base) | |
Baseline as difference between positions (first - second (default(0,0,0)) More... | |
MVBaseline & | operator= (const MVBaseline &other) |
Copy assignment. More... | |
~MVBaseline () | |
Destructor. More... | |
Double | operator* (const MVBaseline &other) const |
Multiplication defined as in-product. More... | |
Bool | operator== (const MVBaseline &other) const |
Equality comparisons. More... | |
Bool | operator!= (const MVBaseline &other) const |
Bool | near (const MVBaseline &other, Double tol=1e-13) const |
Bool | near (const MVBaseline &other, Quantity tol) const |
Bool | nearAbs (const MVBaseline &other, Double tol=1e-13) const |
MVBaseline | operator- () const |
Addition and subtraction. More... | |
MVBaseline & | operator+= (const MVBaseline &right) |
MVBaseline | operator+ (const MVBaseline &right) const |
MVBaseline & | operator-= (const MVBaseline &right) |
MVBaseline | operator- (const MVBaseline &right) const |
virtual uInt | type () const |
Tell me your type. More... | |
virtual void | adjust () |
Normalise direction aspects by adjusting the length to 1. More... | |
virtual void | adjust (Double &res) |
Adjustment with returned factor. More... | |
virtual void | readjust (Double res) |
Re-adjust using factor given. More... | |
virtual Double | radius () |
Get radius of Baseline. More... | |
Vector< Double > | get () const |
Generate a 3-vector of coordinates (length(m), angles(rad)) More... | |
const Vector< Double > & | getValue () const |
Generate a 3-vector of x,y,z in m. More... | |
Quantum< Vector< Double > > | getAngle () const |
Generate angle 2-vector (in rad) More... | |
Quantum< Vector< Double > > | getAngle (const Unit &unit) const |
and with specified units More... | |
Quantity | getLength () const |
Generate the length. More... | |
Quantity | getLength (const Unit &unit) const |
and generate it with the specified units More... | |
Double | BaselineAngle (const MVBaseline &other) const |
Get the Baseline angle between the directions. More... | |
Quantity | BaselineAngle (const MVBaseline &other, const Unit &unit) const |
Double | separation (const MVBaseline &other) const |
Get the angular separation between two directions. More... | |
Quantity | separation (const MVBaseline &other, const Unit &unit) const |
MVBaseline | crossProduct (const MVBaseline &other) const |
Produce the cross product. More... | |
virtual void | print (ostream &os) const |
Print data. More... | |
virtual MeasValue * | clone () const |
Clone. More... | |
virtual Vector< Double > | getVector () const |
Get the value in internal units. More... | |
virtual void | putVector (const Vector< Double > &in) |
Set the value from internal units (set 0 for empty vector) More... | |
virtual Vector< Quantum< Double > > | getRecordValue () const |
Get the internal value as a Vector<Quantity> . More... | |
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. More... | |
Public Member Functions inherited from casacore::MVPosition | |
MVPosition () | |
Default constructor generates a (0,0,0) position. More... | |
MVPosition (const MVPosition &other) | |
Copy constructor. More... | |
MVPosition (Double in0, Double in1, Double in2) | |
Creates a specified vector. More... | |
MVPosition (Double in0) | |
Creates a vector with specified length towards pole. More... | |
MVPosition (const Quantity &l) | |
MVPosition (const Quantity &l, Double angle0, Double angle1) | |
Creates the position from specified (azimuth,elevation) angles and length. More... | |
MVPosition (const Quantity &l, const Quantity &angle0, const Quantity &angle1) | |
Creates the position from specified angles and length. More... | |
MVPosition (const Quantum< Vector< Double > > &angle) | |
If not enough angles: pole assumed (if none), or elevation =0 (if 1) More... | |
MVPosition (const Quantity &l, const Quantum< Vector< Double > > &angle) | |
MVPosition (const Vector< Double > &other) | |
Create from specified length and/or angles and/or position. More... | |
MVPosition (const Vector< Quantity > &other) | |
MVPosition & | operator= (const MVPosition &other) |
Copy assignment. More... | |
virtual | ~MVPosition () |
Destructor. More... | |
Double | operator* (const MVPosition &other) const |
Multiplication defined as in-product. More... | |
Bool | operator== (const MVPosition &other) const |
Equality comparisons. More... | |
Bool | operator!= (const MVPosition &other) const |
Bool | near (const MVPosition &other, Double tol=1e-13) const |
Bool | near (const MVPosition &other, Quantity tol) const |
Bool | nearAbs (const MVPosition &other, Double tol=1e-13) const |
MVPosition | operator- () const |
Addition and subtraction. More... | |
MVPosition & | operator+= (const MVPosition &right) |
MVPosition | operator+ (const MVPosition &right) const |
MVPosition & | operator-= (const MVPosition &right) |
MVPosition | operator- (const MVPosition &right) const |
MVPosition & | operator*= (const RotMatrix &right) |
Multiplication with rotation matrix (see also global functions) More... | |
MVPosition & | operator*= (Double right) |
Multiplication with constant. More... | |
Double & | operator() (uInt which) |
Obtain an element. More... | |
const Double & | operator() (uInt which) const |
Vector< Double > | get () const |
Generate a 3-vector of coordinates (length(m), angles(rad)) More... | |
const Vector< Double > & | getValue () const |
Generate a 3-vector of x,y,z in m. More... | |
Quantum< Vector< Double > > | getAngle () const |
Generate angle 2-vector (in rad) More... | |
Quantum< Vector< Double > > | getAngle (const Unit &unit) const |
and with specified units More... | |
Double | getLong () const |
Get the longitudinal angle (in radians) More... | |
Quantity | getLong (const Unit &unit) const |
and with specified units More... | |
Double | getLat () const |
Get the latitude angle (rad) More... | |
Quantity | getLat (const Unit &unit) const |
and with specified units More... | |
Quantity | getLength () const |
Generate the length. More... | |
Quantity | getLength (const Unit &unit) const |
and generate it with the specified units More... | |
Double | positionAngle (const MVPosition &other) const |
Get the position angle between the directions. More... | |
Quantity | positionAngle (const MVPosition &other, const Unit &unit) const |
Double | separation (const MVPosition &other) const |
Get the angular separation between two directions. More... | |
Quantity | separation (const MVPosition &other, const Unit &unit) const |
MVPosition | crossProduct (const MVPosition &other) const |
Produce the cross product. More... | |
Public Member Functions inherited from casacore::MeasValue | |
void | dummy_constr () const |
Each derived class should have at least the following constructors: More... | |
virtual | ~MeasValue () |
Destructor. More... | |
void | dummy_operator () const |
The following operators should be present at least. More... | |
Static Public Member Functions | |
static void | assure (const MeasValue &in) |
Static Public Member Functions inherited from casacore::MVPosition | |
static void | assure (const MeasValue &in) |
Additional Inherited Members | |
Static Public Attributes inherited from casacore::MVPosition | |
static const Double | loLimit |
Internal limts codes for negative height. More... | |
static const Double | hiLimit |
Protected Member Functions inherited from casacore::MVPosition | |
Double | getLat (Double ln) const |
Get the latitude assuming length is given. More... | |
Protected Attributes inherited from casacore::MVPosition | |
Vector< Double > | xyz |
Position vector (in m) More... | |
A 3D vector on Earth.
Public interface
From Measure, Value and Baseline
A MVBaseline is a 3-vector of Baselines in a rectangular frame with internal units of m.
It can be constructed with:
MVBaseline(Quantity, Quantum<Vector<Double> >)
creates a MVBaseline from angle vector, using first two angles, and assuming second as zero if not present. MVBaseline(Quantum<Vector<Double> >
creates from angles or Baselines, 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, Baseline is assumed. MVBaseline(Vector<Double>
creates from angles (less than or equal to two elements) or x,y,z (3 elements). MVBaseline(Vector<Quantity>
creates from length+angles, angles, or x,y,z, depending on units. MVBaseline(MVPosition, MVPosition)
creates a baseline pointing from second to first MVPosition MVBaseline(MVPosition)
creates a baseline as defined by the position given (e.g. as derived from an offset MPosition) 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 Baseline vector; a getAngle() returns a Quantum 2-vector, (uInt) returns the indicated element, and getValue returns the vector.
Baselines can be added and subtracted.
The multiplication of two Baselines produces the in-product.
See MBaseline class.
To do coordinate transformations
Definition at line 107 of file MVBaseline.h.
casacore::MVBaseline::MVBaseline | ( | ) |
Default constructor generates a (0,0,0) Baseline.
casacore::MVBaseline::MVBaseline | ( | const MVPosition & | other | ) |
Copy constructor.
|
explicit |
Creates a vector with specified length towards pole.
casacore::MVBaseline::MVBaseline | ( | const Quantity & | l | ) |
Creates the Baseline from specified (azimuth,elevation) angles and length.
casacore::MVBaseline::MVBaseline | ( | const Quantity & | l, |
const Quantity & | angle0, | ||
const Quantity & | angle1 | ||
) |
Creates the Baseline from specified angles and length.
or Baselines
If not enough angles: pole assumed (if none), or elevation =0 (if 1)
Create from specified length and/or angles and/or Baseline.
casacore::MVBaseline::MVBaseline | ( | const MVPosition & | pos, |
const MVPosition & | base | ||
) |
Baseline as difference between positions (first - second (default(0,0,0))
casacore::MVBaseline::~MVBaseline | ( | ) |
Destructor.
|
virtual |
Normalise direction aspects by adjusting the length to 1.
Reimplemented from casacore::MVPosition.
|
virtual |
Adjustment with returned factor.
Reimplemented from casacore::MVPosition.
|
static |
Double casacore::MVBaseline::BaselineAngle | ( | const MVBaseline & | other | ) | const |
Get the Baseline angle between the directions.
I.e. the angle between the direction from one to the pole, and from one to the other.
Quantity casacore::MVBaseline::BaselineAngle | ( | const MVBaseline & | other, |
const Unit & | unit | ||
) | const |
|
virtual |
Clone.
Reimplemented from casacore::MVPosition.
MVBaseline casacore::MVBaseline::crossProduct | ( | const MVBaseline & | other | ) | const |
Produce the cross product.
Generate a 3-vector of coordinates (length(m), angles(rad))
and with specified units
Quantity casacore::MVBaseline::getLength | ( | ) | const |
Generate the length.
and generate it with the specified units
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 236 of file MVBaseline.h.
References getXRecordValue().
Get the value in internal units.
Reimplemented from casacore::MVPosition.
Reimplemented from casacore::MVPosition.
Referenced by getTMRecordValue().
Bool casacore::MVBaseline::near | ( | const MVBaseline & | other, |
Double | tol = 1e-13 |
||
) | const |
Bool casacore::MVBaseline::near | ( | const MVBaseline & | other, |
Quantity | tol | ||
) | const |
Bool casacore::MVBaseline::nearAbs | ( | const MVBaseline & | other, |
Double | tol = 1e-13 |
||
) | const |
Bool casacore::MVBaseline::operator!= | ( | const MVBaseline & | other | ) | const |
Double casacore::MVBaseline::operator* | ( | const MVBaseline & | other | ) | const |
Multiplication defined as in-product.
MVBaseline casacore::MVBaseline::operator+ | ( | const MVBaseline & | right | ) | const |
MVBaseline& casacore::MVBaseline::operator+= | ( | const MVBaseline & | right | ) |
MVBaseline casacore::MVBaseline::operator- | ( | ) | const |
Addition and subtraction.
MVBaseline casacore::MVBaseline::operator- | ( | const MVBaseline & | right | ) | const |
MVBaseline& casacore::MVBaseline::operator-= | ( | const MVBaseline & | right | ) |
MVBaseline& casacore::MVBaseline::operator= | ( | const MVBaseline & | other | ) |
Copy assignment.
Bool casacore::MVBaseline::operator== | ( | const MVBaseline & | other | ) | const |
Equality comparisons.
|
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 |
Get radius of Baseline.
Reimplemented from casacore::MVPosition.
|
virtual |
Re-adjust using factor given.
Reimplemented from casacore::MVPosition.
Double casacore::MVBaseline::separation | ( | const MVBaseline & | other | ) | const |
Get the angular separation between two directions.
Quantity casacore::MVBaseline::separation | ( | const MVBaseline & | other, |
const Unit & | unit | ||
) | const |
|
virtual |
Tell me your type.
Reimplemented from casacore::MVPosition.