/*++++++++++++++
.IDENTIFICATION pmm.h
.LANGUAGE       C
.AUTHOR         Francois Ochsenbein [CDS]
.ENVIRONMENT    USNO-A2.0 Catalogue
.KEYWORDS       CDS Catalogue Server
.VERSION  1.0   01-Mar-1997
.VERSION  2.0   20-Oct-1998: USNO-A2.0
.COMMENTS       Structures & Definitions concerning the USNO-A2 Catalog
---------------*/

#ifndef PMM_DEF
#define PMM_DEF	0
#ifndef _ARG
#ifdef __STDC__
#define _ARG(A)	A    /* ANSI */
#else
#define _ARG(A)	()  /* non-ANSI */
#define const
#endif
#endif

/*===========================================================================
		Structures 
 *===========================================================================*/

typedef struct {
    char  flags[2] ;		/* Indications 'A' (ACT). '*'	*/
    short zone ;		/* Original zone number		*/
    long id, ra, sd ;		/* RA and South Polar Distance	*/
    long epoch ;		/* Epoch in myr (0.001 yr)	*/
    short plate, mB, mR, ci ;	/* Plate number, and magnitudes	*/
    long rho, theta ;		/* Distance from center (10mas)	*/
    long xy[2] ;		/* Values of proj. x,y  (10mas) */
} PMMrec ;
#define NULLxy	(-999999999)	/* Non-computed values for xy	*/

/*===========================================================================
		Prototypes Declarations
 *===========================================================================*/
 
int   pmm_init   _ARG((char *PMMroot)) ;
char *pmm_dir    _ARG((int zone)) ;
char *pmm2a      _ARG((PMMrec *pr, int opt)) ;
		/* Option: 1 in sexa, 2=ID, 4=Epoch */
char *pmm_head   _ARG((int opt)) ;
long  pmm_seek   _ARG((long ra, long sd)) ; 	/* Position in 10mas */
long  pmm_search _ARG((long ra[2], long sd[2], int (*digest_routine)())) ;
int   pmm_set    _ARG((int zone, long id)) ;
int   pmm_get    _ARG((int zone, long id, PMMrec *rec)) ;
int   pmm_read   _ARG((PMMrec *rec)) ;
#endif
