casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
casa::MeasMath Class Reference

Measure conversion aid routines. More...

#include <MeasMath.h>

List of all members.

Public Member Functions

 MeasMath ()
 Default constructor.
 ~MeasMath ()
void initFrame (MRBase &outref, MRBase &inref)
 Initialise the frame to be used.
void createPrecession ()
 Functions to create a particular conversion instance; to apply or deapply the instance.
void applyPrecession (MVPosition &in)
void deapplyPrecession (MVPosition &in)
void createPrecessionB1950 ()
 Precession for B1950 and in coordinates.
void applyPrecessionB1950 (MVPosition &in)
void deapplyPrecessionB1950 (MVPosition &in)
void createNutation ()
 Nutation for J2000 (IAU standard) and in coordinates.
void applyNutation (MVPosition &in)
void deapplyNutation (MVPosition &in)
void createNutationB1950 ()
 Nutation for B1950 and in coordinates.
void applyNutationB1950 (MVPosition &in)
void deapplyNutationB1950 (MVPosition &in)
void createPrecNutat ()
 Precession and Nutation for J2000 or B1950 and in coordinates.
void applyPrecNutat (MVPosition &in)
void deapplyPrecNutat (MVPosition &in)
void createPrecNutatB1950 ()
void applyPrecNutatB1950 (MVPosition &in, Bool doin=True)
void deapplyPrecNutatB1950 (MVPosition &in, Bool doin=True)
void createAberration ()
 Aberration for J2000 (IAU definition) and B1950 and in coordinates.
void applyAberration (MVPosition &in, Bool doin=True)
void deapplyAberration (MVPosition &in, Bool doin=True)
void createAberrationB1950 ()
void applyAberrationB1950 (MVPosition &in, Bool doin=True)
void deapplyAberrationB1950 (MVPosition &in, Bool doin=True)
void createSolarPos ()
 Solar bending for J2000 (IAU definition) and in coordinates.
void applySolarPos (MVPosition &in, Bool doin=True)
void deapplySolarPos (MVPosition &in, Bool doin=True)
void applyHADECtoITRF (MVPosition &in)
 Various conversions.
void deapplyHADECtoITRF (MVPosition &in)
void applyHADECtoAZEL (MVPosition &in)
void deapplyHADECtoAZEL (MVPosition &in)
void applyHADECtoAZELGEO (MVPosition &in)
void deapplyHADECtoAZELGEO (MVPosition &in)
void applyJ2000toB1950 (MVPosition &in, Double epo, Bool doin)
void deapplyJ2000toB1950 (MVPosition &in, Double epo, Bool doin)
void applyJ2000toB1950 (MVPosition &in, Bool doin=True)
void deapplyJ2000toB1950 (MVPosition &in, Bool doin=True)
void applyJ2000toB1950_VLA (MVPosition &in, Bool doin=True)
void deapplyJ2000toB1950_VLA (MVPosition &in, Bool doin=True)
void applyETerms (MVPosition &in, Bool doin=True, Double epo=2000.0)
void deapplyETerms (MVPosition &in, Bool doin=True, Double epo=2000.0)
void applyGALtoJ2000 (MVPosition &in)
void deapplyGALtoJ2000 (MVPosition &in)
void applyGALtoB1950 (MVPosition &in)
void deapplyGALtoB1950 (MVPosition &in)
void applyGALtoSUPERGAL (MVPosition &in)
void deapplyGALtoSUPERGAL (MVPosition &in)
void applyICRStoJ2000 (MVPosition &in)
void deapplyICRStoJ2000 (MVPosition &in)
void applyTOPOtoHADEC (MVPosition &in, Bool doin=True)
void deapplyTOPOtoHADEC (MVPosition &in, Bool doin=True)
void applyPolarMotion (MVPosition &in)
void deapplyPolarMotion (MVPosition &in)
void applyAZELtoAZELSW (MVPosition &in)
void applyECLIPtoJ2000 (MVPosition &in)
void deapplyECLIPtoJ2000 (MVPosition &in)
void applyMECLIPtoJMEAN (MVPosition &in)
void deapplyMECLIPtoJMEAN (MVPosition &in)
void applyTECLIPtoJTRUE (MVPosition &in)
void deapplyTECLIPtoJTRUE (MVPosition &in)
void applyAPPtoTOPO (MVPosition &in, const Double len, Bool doin=True)
void deapplyAPPtoTOPO (MVPosition &in, const Double len, Bool doin=True)
void getAPP (MVPosition &out)
 Transfer some information.
void getJ2000 (MVPosition &out)
void getB1950 (MVPosition &out)

Private Types

enum  FrameType {
  EPOCH,
  POSITION,
  DIRECTION,
  VELOCITY,
  N_FrameType
}
 
   
More...
enum  FrameInfo {
  TDB,
  LASTR,
  TT,
  UT1,
  LONG,
  LAT,
  RADIUS,
  LATGEO,
  J2000LONG,
  J2000LAT,
  B1950LONG,
  B1950LAT,
  APPLONG,
  APPLAT,
  N_FrameDInfo,
  J2000DIR,
  B1950DIR,
  APPDIR,
  N_FrameInfo,
  N_FrameMVDInfo
}
 Types of frame information. More...
typedef const Measure
*(MeasFrame::* 
FRFCT )() const
 To get frame group.
typedef Bool(MeasFrame::* FRDINFO )(Double &) const
 To get frame info.
typedef Bool(MeasFrame::* FRMVDINFO )(MVDirection &) const

Private Member Functions

 MeasMath (const MeasMath &other)
 Copy constructor (not implemented)
MeasMathoperator= (const MeasMath &other)
 Assignment (not implemented)
void getFrame (FrameType i)
 Get proper frame information.
Bool getInfo (FrameInfo i, Bool ret=False)
 Get information from the frame.
void rotateShift (MVPosition &in, const MVPosition &shft, const FrameInfo lng, const FrameInfo lat, Bool doin)
 Make a shift of coordinate into a rotation and apply it when doin is False.

Private Attributes

Bool inOK_p
 Data cached for fast calculations and workspace.
Bool outOK_p
Bool frameOK_p [N_FrameType]
MeasFrameinFrame_p
MeasFrameoutFrame_p
MeasFrameapplyFrame_p [N_FrameType]
MeasFramedeapplyFrame_p [N_FrameType]
SolarPosSOLPOSIAU
 Conversion information.
AberrationABERIAU
AberrationABERB1950
NutationNUTATIAU
NutationNUTATB1950
PrecessionPRECESIAU
PrecessionPRECESB1950
Euler EULER1
 Workspace.
RotMatrix ROTMAT1
MVPosition MVPOS1
MVPosition MVPOS2
MVPosition MVPOS3
MVPosition MVPOS4
Double g1
Double g2
Double g3
Double lengthE
Bool infoOK_p [N_FrameInfo]
Double info_p [N_FrameDInfo]
MVDirection infomvd_p [N_FrameMVDInfo]

Static Private Attributes

static uInt b1950_reg_p
 Aipsrc definition for B1950 epoch (in years)

Detailed Description

Measure conversion aid routines.

Intended use:

Internal

 <h3>Review Status</h3><dl><dt>Reviewed By:<dd>UNKNOWN<dt>Date Reviewed:<dd>before2004/08/25<dt>Test programs:<dd>tMeasure</dl> 

Prerequisite

Etymology

Measure and Mathematics

Synopsis

The conversion of measures like MDirection, MPosition etc have many conversion routines in common. This class combines all of these conversions, including data caches for re-use.

The class is always created by the default constructor. For each operation (like e.g. Precession application), it has three function:

Example

See MCDirection source for how to use the class.

Motivation

To re-use code for a specific measure conversion, and to ease the caching administration for each individual conversion.

To Do

Definition at line 96 of file MeasMath.h.


Member Typedef Documentation

typedef Bool(MeasFrame::* casa::MeasMath::FRDINFO)(Double &) const [private]

To get frame info.

Definition at line 251 of file MeasMath.h.

typedef const Measure*(MeasFrame::* casa::MeasMath::FRFCT)() const [private]

To get frame group.

Definition at line 248 of file MeasMath.h.

typedef Bool(MeasFrame::* casa::MeasMath::FRMVDINFO)(MVDirection &) const [private]

Definition at line 252 of file MeasMath.h.


Member Enumeration Documentation

enum casa::MeasMath::FrameInfo [private]

Types of frame information.

Enumerator:
TDB 
LASTR 
TT 
UT1 
LONG 
LAT 
RADIUS 
LATGEO 
J2000LONG 
J2000LAT 
B1950LONG 
B1950LAT 
APPLONG 
APPLAT 
N_FrameDInfo 
J2000DIR 
B1950DIR 
APPDIR 
N_FrameInfo 
N_FrameMVDInfo 

Definition at line 224 of file MeasMath.h.

enum casa::MeasMath::FrameType [private]

   

Types of frame information groups

Enumerator:
EPOCH 
POSITION 
DIRECTION 
VELOCITY 
N_FrameType 

Definition at line 217 of file MeasMath.h.


Constructor & Destructor Documentation

Default constructor.

casa::MeasMath::MeasMath ( const MeasMath other) [private]

Copy constructor (not implemented)


Member Function Documentation

void casa::MeasMath::applyAberration ( MVPosition in,
Bool  doin = True 
)
void casa::MeasMath::applyAPPtoTOPO ( MVPosition in,
const Double  len,
Bool  doin = True 
)
void casa::MeasMath::applyETerms ( MVPosition in,
Bool  doin = True,
Double  epo = 2000.0 
)

Various conversions.

void casa::MeasMath::applyJ2000toB1950 ( MVPosition in,
Double  epo,
Bool  doin 
)
void casa::MeasMath::applySolarPos ( MVPosition in,
Bool  doin = True 
)

Aberration for J2000 (IAU definition) and B1950 and in coordinates.

Nutation for J2000 (IAU standard) and in coordinates.

Nutation for B1950 and in coordinates.

Functions to create a particular conversion instance; to apply or deapply the instance.

Precession for J2000 (IAU definition) and in coordinates

Precession for B1950 and in coordinates.

Precession and Nutation for J2000 or B1950 and in coordinates.

Solar bending for J2000 (IAU definition) and in coordinates.

False if dependent on frame direction rather than input one.

void casa::MeasMath::deapplyAPPtoTOPO ( MVPosition in,
const Double  len,
Bool  doin = True 
)
void casa::MeasMath::deapplyETerms ( MVPosition in,
Bool  doin = True,
Double  epo = 2000.0 
)
void casa::MeasMath::deapplyJ2000toB1950 ( MVPosition in,
Double  epo,
Bool  doin 
)
void casa::MeasMath::deapplySolarPos ( MVPosition in,
Bool  doin = True 
)

Transfer some information.

void casa::MeasMath::getFrame ( FrameType  i) [private]

Get proper frame information.

Bool casa::MeasMath::getInfo ( FrameInfo  i,
Bool  ret = False 
) [private]

Get information from the frame.

Thrown Exceptions

  • AipsError if information not available; or False return if ret=True
void casa::MeasMath::initFrame ( MRBase outref,
MRBase inref 
)

Initialise the frame to be used.

The apply direction uses the inref if present; the deapply the outref if present, otherwise the other one.

MeasMath& casa::MeasMath::operator= ( const MeasMath other) [private]

Assignment (not implemented)

void casa::MeasMath::rotateShift ( MVPosition in,
const MVPosition shft,
const FrameInfo  lng,
const FrameInfo  lat,
Bool  doin 
) [private]

Make a shift of coordinate into a rotation and apply it when doin is False.

Else apply a shift. Given are the longitude and latitude codes of the direction to be used, and the shift to be applied in that system to the in coordinate.


Member Data Documentation

Definition at line 271 of file MeasMath.h.

Definition at line 271 of file MeasMath.h.

Definition at line 265 of file MeasMath.h.

uInt casa::MeasMath::b1950_reg_p [static, private]

Aipsrc definition for B1950 epoch (in years)

Definition at line 286 of file MeasMath.h.

Definition at line 266 of file MeasMath.h.

Workspace.

Definition at line 277 of file MeasMath.h.

Definition at line 262 of file MeasMath.h.

Definition at line 280 of file MeasMath.h.

Definition at line 280 of file MeasMath.h.

Definition at line 280 of file MeasMath.h.

Definition at line 282 of file MeasMath.h.

Definition at line 283 of file MeasMath.h.

Definition at line 281 of file MeasMath.h.

Definition at line 263 of file MeasMath.h.

Data cached for fast calculations and workspace.

Frame information

Definition at line 260 of file MeasMath.h.

Definition at line 280 of file MeasMath.h.

Definition at line 279 of file MeasMath.h.

Definition at line 279 of file MeasMath.h.

Definition at line 279 of file MeasMath.h.

Definition at line 279 of file MeasMath.h.

Definition at line 272 of file MeasMath.h.

Definition at line 272 of file MeasMath.h.

Definition at line 264 of file MeasMath.h.

Definition at line 261 of file MeasMath.h.

Definition at line 273 of file MeasMath.h.

Definition at line 273 of file MeasMath.h.

Definition at line 278 of file MeasMath.h.

Conversion information.

Definition at line 270 of file MeasMath.h.


The documentation for this class was generated from the following file: