casacore::MVPosition Class Reference

A 3D vector in space. More...

#include <MVPosition.h>

Inheritance diagram for casacore::MVPosition:
casacore::MeasValue casacore::MVBaseline casacore::MVDirection casacore::MVEarthMagnetic casacore::MVuvw

List of all members.

Public Member Functions

 MVPosition ()
 Default constructor generates a (0,0,0) position.
 MVPosition (const MVPosition &other)
 Copy constructor.
 MVPosition (Double in0, Double in1, Double in2)
 Creates a specified vector.
 MVPosition (Double in0)
 Creates a vector with specified length towards pole.
 MVPosition (const Quantity &l)
 MVPosition (const Quantity &l, Double angle0, Double angle1)
 Creates the position from specified (azimuth,elevation) angles and length.
 MVPosition (const Quantity &l, const Quantity &angle0, const Quantity &angle1)
 Creates the position from specified angles and length.
 MVPosition (const Quantum< Vector< Double > > &angle)
 If not enough angles: pole assumed (if none), or elevation =0 (if 1).
 MVPosition (const Quantity &l, const Quantum< Vector< Double > > &angle)
 MVPosition (const Vector< Double > &other)
 Create from specified length and/or angles and/or position.
 MVPosition (const Vector< Quantity > &other)
MVPositionoperator= (const MVPosition &other)
 Copy assignment.
virtual ~MVPosition ()
 Destructor.
Double operator* (const MVPosition &other) const
 Multiplication defined as in-product.
Bool operator== (const MVPosition &other) const
 Equality comparisons.
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.
MVPositionoperator+= (const MVPosition &right)
MVPosition operator+ (const MVPosition &right) const
MVPositionoperator-= (const MVPosition &right)
MVPosition operator- (const MVPosition &right) const
MVPositionoperator*= (const RotMatrix &right)
 Multiplication with rotation matrix (see also global functions).
MVPositionoperator*= (Double right)
 Multiplication with constant.
Doubleoperator() (uInt which)
 Obtain an element.
const Doubleoperator() (uInt which) 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 of position.
Vector< Doubleget () 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
Double getLong () const
 Get the longitudinal angle (in radians).
Quantity getLong (const Unit &unit) const
 and with specified units
Double getLat () const
 Get the latitude angle (rad).
Quantity getLat (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 positionAngle (const MVPosition &other) const
 Get the position angle between the directions.
Quantity positionAngle (const MVPosition &other, const Unit &unit) const
Double separation (const MVPosition &other) const
 Get the angular separation between two directions.
Quantity separation (const MVPosition &other, const Unit &unit) const
MVPosition crossProduct (const MVPosition &other) const
 Produce the cross product.
virtual void print (ostream &os) const
 Print data.
virtual MeasValueclone () const
 Clone.
virtual Vector< DoublegetVector () 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)

Static Public Attributes

static const Double loLimit
 Internal limts codes for negative height.
static const Double hiLimit

Protected Member Functions

Double getLat (Double ln) const
 Get the latitude assuming length is given.

Protected Attributes

Vector< Double > & xyz
 Position vector (in m).

Detailed Description

A 3D vector in space.

Intended use:

Public interface

Review Status

Reviewed By:
tcornwel
Date Reviewed:
1996/02/22
Test programs:
tMeasMath

Prerequisite

Etymology

From Measure, Value and Position

Synopsis

A MVPosition is a 3-vector of positions in a rectangular frame with internal units of m.
It can be constructed with:

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 position vector; a getAngle() returns a Quantum 2-vector, (uInt) returns the indicated element, and getValue returns the vector.
Positions can be added and subtracted.
The multiplication of two positions produces the in-product.

Example

See Mposition class.

Motivation

To do coordinate transformations

To Do

Definition at line 113 of file MVPosition.h.


Constructor & Destructor Documentation

casacore::MVPosition::MVPosition (  ) 

Default constructor generates a (0,0,0) position.

casacore::MVPosition::MVPosition ( const MVPosition other  ) 

Copy constructor.

casacore::MVPosition::MVPosition ( Double  in0,
Double  in1,
Double  in2 
)

Creates a specified vector.

casacore::MVPosition::MVPosition ( Double  in0  )  [explicit]

Creates a vector with specified length towards pole.

casacore::MVPosition::MVPosition ( const Quantity l  ) 
casacore::MVPosition::MVPosition ( const Quantity l,
Double  angle0,
Double  angle1 
)

Creates the position from specified (azimuth,elevation) angles and length.

casacore::MVPosition::MVPosition ( const Quantity l,
const Quantity angle0,
const Quantity angle1 
)

Creates the position from specified angles and length.

or positions

Thrown Exceptions

  • AipsError if quantities not in angle format
casacore::MVPosition::MVPosition ( const Quantum< Vector< Double > > &  angle  ) 

If not enough angles: pole assumed (if none), or elevation =0 (if 1).

casacore::MVPosition::MVPosition ( const Quantity l,
const Quantum< Vector< Double > > &  angle 
)
casacore::MVPosition::MVPosition ( const Vector< Double > &  other  )  [explicit]

Create from specified length and/or angles and/or position.

casacore::MVPosition::MVPosition ( const Vector< Quantity > &  other  ) 
virtual casacore::MVPosition::~MVPosition (  )  [virtual]

Destructor.


Member Function Documentation

virtual void casacore::MVPosition::adjust ( Double res  )  [virtual]

Adjustment with returned factor.

Reimplemented from casacore::MeasValue.

Reimplemented in casacore::MVBaseline, casacore::MVDirection, casacore::MVEarthMagnetic, and casacore::MVuvw.

virtual void casacore::MVPosition::adjust (  )  [virtual]

Normalise direction aspects by adjusting the length to 1.

For position no adjustment; for direction adjustment

Reimplemented from casacore::MeasValue.

Reimplemented in casacore::MVBaseline, casacore::MVDirection, casacore::MVEarthMagnetic, and casacore::MVuvw.

static void casacore::MVPosition::assure ( const MeasValue in  )  [static]
virtual MeasValue* casacore::MVPosition::clone (  )  const [virtual]
MVPosition casacore::MVPosition::crossProduct ( const MVPosition other  )  const

Produce the cross product.

Reimplemented in casacore::MVBaseline, casacore::MVDirection, casacore::MVEarthMagnetic, and casacore::MVuvw.

Vector<Double> casacore::MVPosition::get (  )  const

Generate a 3-vector of coordinates (length(m), angles(rad)).

Reimplemented in casacore::MVBaseline, casacore::MVDirection, casacore::MVEarthMagnetic, and casacore::MVuvw.

Quantum<Vector<Double> > casacore::MVPosition::getAngle ( const Unit unit  )  const

and with specified units

Reimplemented in casacore::MVBaseline, casacore::MVEarthMagnetic, and casacore::MVuvw.

Quantum<Vector<Double> > casacore::MVPosition::getAngle (  )  const

Generate angle 2-vector (in rad).

Reimplemented in casacore::MVBaseline, casacore::MVEarthMagnetic, and casacore::MVuvw.

Double casacore::MVPosition::getLat ( Double  ln  )  const [protected]

Get the latitude assuming length is given.

Quantity casacore::MVPosition::getLat ( const Unit unit  )  const

and with specified units

Reimplemented in casacore::MVDirection.

Double casacore::MVPosition::getLat (  )  const

Get the latitude angle (rad).

Reimplemented in casacore::MVDirection.

Quantity casacore::MVPosition::getLength ( const Unit unit  )  const

and generate it with the specified units

Reimplemented in casacore::MVBaseline, casacore::MVEarthMagnetic, and casacore::MVuvw.

Quantity casacore::MVPosition::getLength (  )  const

Generate the length.

Reimplemented in casacore::MVBaseline, casacore::MVEarthMagnetic, and casacore::MVuvw.

Quantity casacore::MVPosition::getLong ( const Unit unit  )  const

and with specified units

Double casacore::MVPosition::getLong (  )  const

Get the longitudinal angle (in radians).

virtual Vector<Quantum<Double> > casacore::MVPosition::getRecordValue (  )  const [virtual]

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.

Implements casacore::MeasValue.

Reimplemented in casacore::MVBaseline, casacore::MVDirection, casacore::MVEarthMagnetic, and casacore::MVuvw.

virtual Vector<Quantum<Double> > casacore::MVPosition::getTMRecordValue (  )  const [inline, virtual]

Reimplemented from casacore::MeasValue.

Reimplemented in casacore::MVBaseline, casacore::MVDirection, and casacore::MVuvw.

Definition at line 270 of file MVPosition.h.

References getXRecordValue().

const Vector<Double>& casacore::MVPosition::getValue (  )  const

Generate a 3-vector of x,y,z in m.

Reimplemented in casacore::MVBaseline, casacore::MVEarthMagnetic, and casacore::MVuvw.

virtual Vector<Double> casacore::MVPosition::getVector (  )  const [virtual]

Get the value in internal units.

Implements casacore::MeasValue.

Reimplemented in casacore::MVBaseline, casacore::MVEarthMagnetic, and casacore::MVuvw.

virtual Vector<Quantum<Double> > casacore::MVPosition::getXRecordValue (  )  const [virtual]

Reimplemented from casacore::MeasValue.

Reimplemented in casacore::MVBaseline, casacore::MVDirection, and casacore::MVuvw.

Referenced by getTMRecordValue().

Bool casacore::MVPosition::near ( const MVPosition other,
Quantity  tol 
) const
Bool casacore::MVPosition::near ( const MVPosition other,
Double  tol = 1e-13 
) const
Bool casacore::MVPosition::nearAbs ( const MVPosition other,
Double  tol = 1e-13 
) const
Bool casacore::MVPosition::operator!= ( const MVPosition other  )  const
const Double& casacore::MVPosition::operator() ( uInt  which  )  const
Double& casacore::MVPosition::operator() ( uInt  which  ) 

Obtain an element.

Double casacore::MVPosition::operator* ( const MVPosition other  )  const

Multiplication defined as in-product.

Reimplemented in casacore::MVBaseline, casacore::MVEarthMagnetic, and casacore::MVuvw.

MVPosition& casacore::MVPosition::operator*= ( Double  right  ) 

Multiplication with constant.

MVPosition& casacore::MVPosition::operator*= ( const RotMatrix right  ) 

Multiplication with rotation matrix (see also global functions).

MVPosition casacore::MVPosition::operator+ ( const MVPosition right  )  const
MVPosition& casacore::MVPosition::operator+= ( const MVPosition right  ) 
MVPosition casacore::MVPosition::operator- ( const MVPosition right  )  const
MVPosition casacore::MVPosition::operator- (  )  const

Addition and subtraction.

Reimplemented in casacore::MVBaseline, casacore::MVEarthMagnetic, and casacore::MVuvw.

MVPosition& casacore::MVPosition::operator-= ( const MVPosition right  ) 
MVPosition& casacore::MVPosition::operator= ( const MVPosition other  ) 
Bool casacore::MVPosition::operator== ( const MVPosition other  )  const

Equality comparisons.

Reimplemented in casacore::MVBaseline, casacore::MVEarthMagnetic, and casacore::MVuvw.

Quantity casacore::MVPosition::positionAngle ( const MVPosition other,
const Unit unit 
) const

Reimplemented in casacore::MVDirection.

Double casacore::MVPosition::positionAngle ( const MVPosition other  )  const

Get the position angle between the directions.

I.e. the angle between the direction from one to the pole, and from one to the other.

Reimplemented in casacore::MVDirection.

virtual void casacore::MVPosition::print ( ostream &  os  )  const [virtual]

Print data.

Implements casacore::MeasValue.

Reimplemented in casacore::MVBaseline, casacore::MVEarthMagnetic, and casacore::MVuvw.

virtual Bool casacore::MVPosition::putValue ( const Vector< Quantum< Double > > &  in  )  [virtual]

Set the internal value if correct values and dimensions.

Implements casacore::MeasValue.

Reimplemented in casacore::MVBaseline, casacore::MVDirection, casacore::MVEarthMagnetic, and casacore::MVuvw.

virtual void casacore::MVPosition::putVector ( const Vector< Double > &  in  )  [virtual]

Set the value from internal units (set 0 for empty vector).

Implements casacore::MeasValue.

Reimplemented in casacore::MVBaseline, casacore::MVEarthMagnetic, and casacore::MVuvw.

virtual Double casacore::MVPosition::radius (  )  [virtual]

Get radius of position.

Reimplemented in casacore::MVBaseline, casacore::MVEarthMagnetic, and casacore::MVuvw.

virtual void casacore::MVPosition::readjust ( Double  res  )  [virtual]

Re-adjust using factor given.

Reimplemented from casacore::MeasValue.

Reimplemented in casacore::MVBaseline, casacore::MVEarthMagnetic, and casacore::MVuvw.

Quantity casacore::MVPosition::separation ( const MVPosition other,
const Unit unit 
) const
Double casacore::MVPosition::separation ( const MVPosition other  )  const

Get the angular separation between two directions.

Reimplemented in casacore::MVBaseline, casacore::MVDirection, casacore::MVEarthMagnetic, and casacore::MVuvw.

virtual uInt casacore::MVPosition::type (  )  const [virtual]

Member Data Documentation

Definition at line 120 of file MVPosition.h.

Internal limts codes for negative height.

Definition at line 119 of file MVPosition.h.

Position vector (in m).

Definition at line 282 of file MVPosition.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1