IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jul 27, 2005, 9:55:16 AM (21 years ago)
Author:
desonia
Message:

* empty log message *

File:
1 edited

Legend:

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

    r4613 r4620  
    1010*  @author GLG, MHPCC
    1111*
    12 *  @version $Revision: 1.39 $ $Name: not supported by cvs2svn $
    13 *  @date $Date: 2005-07-27 00:36:01 $
     12*  @version $Revision: 1.40 $ $Name: not supported by cvs2svn $
     13*  @date $Date: 2005-07-27 19:55:15 $
    1414*
    1515*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    112112}
    113113psPlaneDistort;
    114 
    115 /** Spherical Transform Definition
    116  *
    117  *  We need to be able to convert between ICRS, Galactic and Ecliptic
    118  *  coordinates, and potentially between arbitrary spherical coordinate
    119  *  systems. All of these basic spherical transformations represent rotations
    120  *  of the spherical coordinate reference. We specify a general
    121  *  transformation function which takes a structure, psSphereTransform,
    122  *  defining the transformation between two spherical coordinate systems
    123  *
    124  */
    125 typedef struct
    126 {
    127     double alphaP;                    ///< Longitude of the target system pole in the source system
    128     double cosDeltaP;                 ///< Cosine of target pole latitude in the source system
    129     double sinDeltaP;                 ///< Sine of target pole latitude in the source system
    130     double phiP;                      ///< Longitude of the ascending node in the target system
    131 }
    132 psSphereTransform;
    133114
    134115/** Projection type for projection/deprojection
     
    163144psProjection;
    164145
    165 /** Mode for Offset calculation between two sky positions
    166  *
    167  *  @see  psSphereGetOffset, psSphereSetOffset
    168  *
    169  */
    170 typedef enum {
    171     PS_SPHERICAL,                      ///< offset corresponds to an angular offset
    172     PS_LINEAR                          ///< offset corresponds to a linear offset
    173 } psSphereOffsetMode;
    174 
    175 /** The units of the offset
    176  *
    177  *  @see  psSphereGetOffset, psSphereSetOffset
    178  *
    179  */
    180 typedef enum {
    181     PS_ARCSEC,                         ///< Arcseconds
    182     PS_ARCMIN,                         ///< Arcminutes
    183     PS_DEGREE,                         ///< Degrees
    184     PS_RADIAN                          ///< Radians
    185 } psSphereOffsetUnit;
    186 
    187146/** Allocates a psPlane
    188147 *
    189148 *  @return psPlane*     resulting plane structure.
    190149 */
    191 
    192150psPlane* psPlaneAlloc(void);
    193151
     
    196154 *  @return psSphere*     resulting sphere structure.
    197155 */
    198 
    199156psSphere* psSphereAlloc(void);
     157
     158/** Allocates a psCube
     159 *
     160 *  @return psCube*     resulting cubic structure.
     161 */
     162psCube* psCubeAlloc(void);
    200163
    201164/** Allocates a psCube
     
    250213);
    251214
    252 /** Allocator for psSphereTransform
    253  *
    254  *  @return psSphereTransform*         newly allocated struct
    255  */
    256 
    257 psSphereTransform* psSphereTransformAlloc(
    258     double alphaP,                     ///< north pole latitude
    259     double deltaP,                     ///< north pole longitude?
    260     double phiP                        ///< defines the longitude in the input system of the equatorial intersection between the two systems (e.g, the first point of Ares).
    261 );
    262 
    263 /** Applies the psSphereTransform transform for a specified coordinate
    264  *
    265  *  @return psSphere*      resulting coordinate based on transform
    266  */
    267 psSphere* psSphereTransformApply(
    268     psSphere* out,                     ///< a psSphere to recycle.  If NULL, a new one is generated.
    269     const psSphereTransform* transform,///< the transform to apply
    270     const psSphere* coord              ///< the coordinate to apply the transform above.x
    271 );
    272 
    273 /** Creates the appropriate transform for converting from ICRS to Ecliptic
    274  *  coordinate systems.
    275  *
    276  *  @return psSphereTransform*     transform for ICRS->Ecliptic coordinate systems
    277  */
    278 psSphereTransform* psSphereTransformICRSToEcliptic(
    279     psTime *time                       ///< the time for which the resulting transform will be valid
    280 );
    281 
    282 /** Creates the appropriate transform for converting from Ecliptic to ICRS
    283  *  coordinate systems.
    284  *
    285  *  @return psSphereTransform*     transform for Ecliptic->ICRS coordinate systems
    286  */
    287 psSphereTransform* psSphereTransformEclipticToICRS(
    288     psTime *time                       ///< the time for which the resulting transform will be valid
    289 );
    290 
    291 /** Creates the appropriate transform for converting from ICRS to Galactic
    292  *  coordinate systems.
    293  *
    294  */
    295 psSphereTransform* psSphereTransformICRSToGalactic(void);
    296 
    297 /** Creates the appropriate transform for converting from Galactic to ICRS
    298  *  coordinate systems.
    299  *
    300  */
    301 psSphereTransform* psSphereTransformGalacticToICRS(void);
    302 
    303215/** Allocates memory for a psProjection structure
    304216 *
     
    329241    const psPlane* coord,              ///< coordinate to project
    330242    const psProjection* projection     ///< parameters of the projection
    331 );
    332 
    333 /** Determines the offset (RA,Dec) on the sky between two positions.
    334  *
    335  *  Both an offset mode and an offset unit may be defined. The mode may be
    336  *  either PS_SPHERICAL, in which case the specified offset corresponds to an
    337  *  offset in angles, or it may be PS_LINEAR, in which case the offset
    338  *  corresponds to a linear offset in a local projection. The offset unit may
    339  *  be in one of PS_ARCSEC, PS_ARCMIN, PS_DEGREE, and PS_RADIAN, which
    340  *  specifies the units of the offset only.
    341  *
    342  *  @return psSphere*        the offset between position1 and position2
    343  */
    344 psSphere* psSphereGetOffset(
    345     const psSphere* position1,         ///< first position for calculating offset
    346     const psSphere* position2,         ///< second position for calculating offset
    347     psSphereOffsetMode mode,           ///< type of offset can be PS_SPHERICAL or PS_LINEAR
    348     psSphereOffsetUnit unit            ///< specifies the units of offset only
    349 );
    350 
    351 /** Applies the given offset to a coordinate.
    352  *
    353  *  Both an offset mode and an offset unit may be defined. The mode may be
    354  *  either PS_SPHERICAL, in which case the specified offset corresponds to an
    355  *  offset in angles, or it may be PS_LINEAR, in which case the offset
    356  *  corresponds to a linear offset in a local projection. The offset unit may
    357  *  be in one of PS_ARCSEC, PS_ARCMIN, PS_DEGREE, and PS_RADIAN, which
    358  *  specifies the units of the offset only.
    359  *
    360  *  @return psSphere*              the original position with the given offset applied.
    361  */
    362 psSphere* psSphereSetOffset(
    363     const psSphere* position,          ///< coordinate of origin
    364     const psSphere* offset,            ///< coordinate of offset to apply
    365     psSphereOffsetMode mode,           ///< corresponds to an offset in angles or local projection
    366     psSphereOffsetUnit unit            ///< specifies the units of offset only
    367 );
    368 
    369 /** Generates the complete spherical rotation to account for precession
    370  *  between two times.  The equinoxes shall be Julian equinoxes.
    371  *
    372  *  @return psSphere* the resulting spherical rotation
    373  */
    374 psSphere* psSpherePrecess(
    375     psSphere *coords,                  ///< coordinates (modified in-place)
    376     const psTime *fromTime,            ///< equinox of coords input
    377     const psTime *toTime               ///< equinox of coords output
    378243);
    379244
Note: See TracChangeset for help on using the changeset viewer.