casa
5.7.0-16
|
Base class for values in a Measure. More...
#include <MeasValue.h>
Public Member Functions | |
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... | |
virtual uInt | type () const =0 |
Assert that we are the correct MeasValue type. More... | |
virtual void | print (ostream &os) const =0 |
Print a MeasValue. More... | |
virtual MeasValue * | clone () const =0 |
Clone a MeasValue. More... | |
virtual Vector< Double > | getVector () const =0 |
Get the internal value as a Vector<Double> . More... | |
virtual Vector< Quantum< Double > > | getRecordValue () const =0 |
Get the internal value as a Vector<Quantity> . More... | |
virtual Vector< Quantum< Double > > | getXRecordValue () const |
virtual Vector< Quantum< Double > > | getTMRecordValue () const |
virtual void | putVector (const Vector< Double > &in)=0 |
Set the internal value from a Vector of values (obtained in principle with a getVector()). More... | |
virtual Bool | putValue (const Vector< Quantum< Double > > &in)=0 |
Set the internal value if correct values and dimensions. More... | |
virtual void | adjust () |
Some of the Measure values used need the occasional adjustments to proper values. More... | |
virtual void | adjust (Double &val) |
Adjust value and return a normalisation value. More... | |
virtual void | readjust (Double val) |
Re-adjust, i.e. More... | |
Friends | |
ostream & | operator<< (ostream &os, const MeasValue &meas) |
Output a MeasValue. More... | |
Base class for values in a Measure.
Public interface
MeasValue forms the abstract base class for the values of quantities within a reference frame. Examples of derived classes are:
MeasValue is the generic name for the more specific instances like, e.g., MVEpoch, an instant in time.
MeasValues can in general be constructed from an appropiate value, or array of values.
The value can be expressed in the internally used units (e.g. days for time, a 3-vector for direction in space), as an array of internally used units, or as a Quantum : a value with appropiate units. Vector<Quantum<type> >
and Quantum<Vector<type> >
can also be used.
The value of the MeasValue
can be obtained by a variety of get
functions, returning in general internal or Quantum
values. Special formatting (like hh:mm:ss.t, dd.mm.ss.t, yy/mm/dd etc) are catered for in conversion-type classes like MVTime, MVAngle
Note that the class is a pure virtual class. No instances can be created, but it describes the minimum set of functions necessary in derived functions.
Warning: In the member description a number of dummy routines are present; They are the only way I have found to get cxx2html to get the belonging text properly presented;
See individual MV and Measure classes
To be able to specify a physical entity appropiate for the measured quantity.
Definition at line 107 of file MeasValue.h.
|
virtual |
Destructor.
|
virtual |
Some of the Measure values used need the occasional adjustments to proper values.
Examples are MVDirection (direction cosines) which have to be normalised to a length of 1 and MEpoch (time) which have to have its precision maintained. For others it is an effctive no-operation.
Adjust value
Reimplemented in casacore::MVPosition, casacore::MVuvw, casacore::MVBaseline, casacore::MVEarthMagnetic, casacore::MVDirection, and casacore::MVEpoch.
|
virtual |
Adjust value and return a normalisation value.
Reimplemented in casacore::MVPosition, casacore::MVuvw, casacore::MVBaseline, casacore::MVEarthMagnetic, casacore::MVDirection, and casacore::MVEpoch.
|
pure virtual |
|
inline |
Each derived class should have at least the following constructors:
Float (or other standard type) versions could be added if appropiate. Dummy for cxx2html
Definition at line 130 of file MeasValue.h.
|
inline |
The following operators should be present at least.
Dummy for cxx2html
Definition at line 147 of file MeasValue.h.
Get the internal value as a Vector<Quantity>
.
Usable in records. The getXRecordValue() gets additional information for records. The getTMRecordValue() gets the record values as deemed appropriate for the TableMeasures. Note that the Vectors could be empty.
Implemented in casacore::MVPosition, casacore::MVuvw, casacore::MVBaseline, casacore::MVEarthMagnetic, casacore::MVDirection, casacore::MVEpoch, casacore::MVFrequency, casacore::MVRadialVelocity, casacore::MVDoppler, and casacore::MVDouble.
Reimplemented in casacore::MVPosition, casacore::MVuvw, casacore::MVBaseline, and casacore::MVDirection.
Get the internal value as a Vector<Double>
.
Note that the vector could be empty, or not be a true representation (different data sizes e.g.)
Implemented in casacore::MVPosition, casacore::MVuvw, casacore::MVBaseline, casacore::MVEarthMagnetic, casacore::MVEpoch, casacore::MVFrequency, casacore::MVRadialVelocity, casacore::MVDoppler, and casacore::MVDouble.
Reimplemented in casacore::MVPosition, casacore::MVuvw, casacore::MVBaseline, and casacore::MVDirection.
|
pure virtual |
Set the internal value if correct values and dimensions.
Implemented in casacore::MVPosition, casacore::MVuvw, casacore::MVBaseline, casacore::MVEarthMagnetic, casacore::MVDirection, casacore::MVEpoch, casacore::MVFrequency, casacore::MVRadialVelocity, casacore::MVDoppler, and casacore::MVDouble.
Set the internal value from a Vector of values (obtained in principle with a getVector()).
It will be assumed that the Vector is correctly formatted. If Vector is too long, the remainder will be discarded. If Vector is too short, action will depend on the individual classes, but in general act the same way as a constructor with a short Vector.
Implemented in casacore::MVPosition, casacore::MVuvw, casacore::MVBaseline, casacore::MVEarthMagnetic, casacore::MVEpoch, casacore::MVFrequency, casacore::MVRadialVelocity, casacore::MVDoppler, and casacore::MVDouble.
|
virtual |
Re-adjust, i.e.
undo a previous adjust, with value
Reimplemented in casacore::MVPosition, casacore::MVuvw, casacore::MVBaseline, and casacore::MVEarthMagnetic.
|
pure virtual |
Assert that we are the correct MeasValue type.
Each Measure should have: static void assure(const MeasValue &in);
Get the type (== Register(M*)) of derived MeasValue
Implemented in casacore::MVPosition, casacore::MVuvw, casacore::MVBaseline, casacore::MVEarthMagnetic, casacore::MVDirection, casacore::MVFrequency, casacore::MVEpoch, casacore::MVRadialVelocity, casacore::MVDoppler, and casacore::MVDouble.