IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 5, 2004, 9:38:52 AM (22 years ago)
Author:
desonia
Message:

Misc. doxygen polishings.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/astronomy/psCoord.h

    r1385 r1393  
    1010*  @author George Gusciora, MHPCC
    1111*
    12 *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
    13 *  @date $Date: 2004-08-04 23:37:39 $
     12*  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
     13*  @date $Date: 2004-08-05 19:38:51 $
    1414*
    1515*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    2929/// @{
    3030
     31/** Euclidiean Coordinate System.
     32 *
     33 *  Both detector and sky positions will be used extensively in the IPP. One
     34 *  coordinate system to be used is linear coordinates which conform to
     35 *  Euclidean geometry.
     36 *
     37 */
    3138typedef struct
    3239{
     
    3845psPlane;
    3946
     47/** Angular Coordinate System
     48 *
     49 *  Both detector and sky positions will be used extensively in the IPP. One
     50 *  coordinate system to be used is angular coordinates for which additional
     51 *  care must often be taken in comparison to a euclidiean coordinate system.
     52 *
     53 */
    4054typedef struct
    4155{
     
    4761psSphere;
    4862
    49 typedef struct
    50 {
    51     psDPolynomial2D *x;
    52     psDPolynomial2D *y;
     63/** 2D Polynomial Transform
     64 *
     65 *  A transform between coordinate systems that consists simply of two 2D
     66 *  polynomials to transform both components - the output coordinates depend
     67 *  only on the input coordinates and no other quantities of objects at those
     68 *  coordinates.
     69 *
     70 */
     71typedef struct
     72{
     73    psDPolynomial2D *x;                ///< 2D polynomial transform of X coordinates
     74    psDPolynomial2D *y;                ///< 2D polynomial transform of Y coordinates
    5375}
    5476psPlaneTransform;
    5577
    56 typedef struct
    57 {
    58     psDPolynomial4D *x;
    59     psDPolynomial4D *y;
     78/** 4D Polynomial Transform
     79 *
     80 *  A transform between coordinate systems that consists of two 4D polynomials
     81 *  in which the output coordinates are also specified to be a function of the
     82 *  magnitude and color of the object with the given coordinates. This type of
     83 *  coordinate transformation is necessary to represent the (color-dependent)
     84 *  optical distortions caused by the atmosphere and camera optics, and the
     85 *  possibly effects of charge transfer inefficiency.
     86 *
     87 *  The lowest two terms are the x and y axis of the target system.  The higher
     88 *  two terms may represent magnitude and color terms.
     89 */
     90typedef struct
     91{
     92    psDPolynomial4D *x;                ///< 4D polynomial transform of X coordinates
     93    psDPolynomial4D *y;                ///< 4D polynomial transform of Y coordinates
    6094}
    6195psPlaneDistort;
    6296
     97/** Spherical Transform Definition
     98 *
     99 *  We need to be able to convert between ICRS, Galactic and Ecliptic
     100 *  coordinates, and potentially between arbitrary spherical coordinate
     101 *  systems. All of these basic spherical transformations represent rotations
     102 *  of the spherical coordinate reference. We specify a general
     103 *  transformation function which takes a structure, psSphereTransform,
     104 *  defining the transformation between two spherical coordinate systems
     105 *
     106 */
    63107typedef struct
    64108{
     
    70114psSphereTransform;
    71115
     116/** Projection type for projection/deprojection
     117 *
     118 *  @seealso psProject, psDeproject
     119 *
     120 */
    72121typedef enum {
    73122    PS_PROJ_TAN,        ///< Tangent projection
     
    81130} psProjectionType;
    82131
     132/** Parameter set for projection/deprojection
     133 *
     134 *  @seealso psProject, psDeproject
     135 *
     136 */
    83137typedef struct
    84138{
     
    91145psProjection;
    92146
     147/** Mode for Offset calculation between two sky positions
     148 *
     149 *  @seealso  psSphereGetOffset, psSphereSetOffset
     150 *
     151 */
    93152typedef enum {
    94     PS_SPHERICAL,
    95     PS_LINEAR
     153    PS_SPHERICAL,                      ///< offset corresponds to an angular offset
     154    PS_LINEAR                          ///< offset corresponds to a linear offset
    96155} psSphereOffsetMode;
    97156
     157/** The units of the offset
     158 *
     159 *  @seealso  psSphereGetOffset, psSphereSetOffset
     160 *
     161 */
    98162typedef enum {
    99     PS_ARCSEC,
    100     PS_ARCMIN,
    101     PS_DEGREE,
    102     PS_RADIAN
     163    PS_ARCSEC,                         ///< Arcseconds
     164    PS_ARCMIN,                         ///< Arcminutes
     165    PS_DEGREE,                         ///< Degrees
     166    PS_RADIAN                          ///< Radians
    103167} psSphereOffsetUnit;
    104168
    105 psPlane *psPlaneTransformApply( psPlane *out,
    106                                 const psPlaneTransform *transform,
    107                                 const psPlane *coords );
    108 
    109 psPlane *psPlaneDistortApply( psPlane *out,
    110                               const psPlaneDistort *transform,
    111                               const psPlane *coords,
    112                               float term3,
    113                               float term4 );
    114 
    115 
    116 // New function prototype.
    117 psSphereTransform *psSphereTransformAlloc( double NPlat,
    118         double Xo,
    119         double xo );
    120 
    121 void p_psSphereTransformFree( psSphereTransform *trans );
    122 
    123 psSphere *psSphereTransformApply( psSphere *out,
    124                                   const psSphereTransform *transform,
    125                                   const psSphere *coord );
    126 
    127 psSphereTransform *psSphereTransformICRStoEcliptic( psTime time );
    128 psSphereTransform *psSphereTransformEcliptictoICRS( psTime time );
     169/** Applies the psPlaneTransform transform to a specified coordinate
     170 *
     171 */
     172psPlane *psPlaneTransformApply(
     173    psPlane *out,                      ///< a psPlane to recycle.  If NULL, a new one is generated.
     174    const psPlaneTransform *transform, ///< the transform to apply
     175    const psPlane *coords              ///< the coordinate to apply the transform above.
     176);
     177
     178/** Applies the psPlaneDistort transform to a specified coordinate
     179 *
     180 */
     181psPlane *psPlaneDistortApply(
     182    psPlane *out,                      ///< a psPlane to recycle.  If NULL, a new one is generated.
     183    const psPlaneDistort *transform,   ///< the transform to apply
     184    const psPlane *coords,             ///< the coordinate to apply the transform above.
     185    float term3,                       ///< third term -- maybe magnitude
     186    float term4                        ///< forth term -- maybe color
     187);
     188
     189/** Allocator for psSphereTransform
     190 *
     191 */
     192psSphereTransform *psSphereTransformAlloc(
     193    double NPlat,                      ///< north pole latitude
     194    double Xo,                         ///< First PT of Ares lon
     195    double xo                          ///< First PT of Ares equiv lon
     196);
     197
     198
     199/** Applies the psSphereTransform transform for a specified coordinate
     200 *
     201 */
     202psSphere *psSphereTransformApply(
     203    psSphere *out,                     ///< a psSphere to recycle.  If NULL, a new one is generated.
     204    const psSphereTransform *transform,///< the transform to apply
     205    const psSphere *coord              ///< the coordinate to apply the transform above.x
     206);
     207
     208psSphereTransform *psSphereTransformICRStoEcliptic(
     209    psTime time
     210);
     211
     212psSphereTransform *psSphereTransformEcliptictoICRS(
     213    psTime time
     214);
     215
    129216psSphereTransform *psSphereTransformICRStoGalatic( void );
     217
    130218psSphereTransform *psSphereTransformGalatictoICRS( void );
    131219
    132 psPlane *psProject( const psSphere *coord,
    133                     const psProjection *projection );
    134 
    135 psSphere *psDeproject( const psPlane *coord,
    136                        const psProjection *projection );
    137 
    138 psSphere *psSphereGetOffset( const psSphere *restrict position1,
    139                              const psSphere *restrict position2,
    140                              psSphereOffsetMode mode,
    141                              psSphereOffsetUnit unit );
    142 
    143 psSphere *psSphereSetOffset( const psSphere *restrict position,
    144                              const psSphere *restrict offset,
    145                              psSphereOffsetMode mode,
    146                              psSphereOffsetUnit unit );
     220psPlane *psProject(
     221    const psSphere *coord,
     222    const psProjection *projection
     223);
     224
     225psSphere *psDeproject(
     226    const psPlane *coord,
     227    const psProjection *projection
     228);
     229
     230psSphere *psSphereGetOffset(
     231    const psSphere *restrict position1,
     232    const psSphere *restrict position2,
     233    psSphereOffsetMode mode,
     234    psSphereOffsetUnit unit
     235);
     236
     237psSphere *psSphereSetOffset(
     238    const psSphere *restrict position,
     239    const psSphere *restrict offset,
     240    psSphereOffsetMode mode,
     241    psSphereOffsetUnit unit
     242);
    147243
    148244/// @}
Note: See TracChangeset for help on using the changeset viewer.