Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#define RAD(x)  ((x)*PI_180)
#define DEG(x)  ((x)/PI_180)
#define ARCSECONDS_PER_RADIAN   (DEG(1)*3600)
#define input_nybble(infile)    input_nbits(infile,4)

typedef float   Angle;  /* in radians */

enum
{
        /*
         * parameters for plate
         */
        Pppo1   = 0,
        Pppo2,
        Pppo3,
        Pppo4,
        Pppo5,
        Pppo6,
        Pamdx1,
        Pamdx2,
        Pamdx3,
        Pamdx4,
        Pamdx5,
        Pamdx6,
        Pamdx7,
        Pamdx8,
        Pamdx9,
        Pamdx10,
        Pamdx11,
        Pamdx12,
        Pamdx13,
        Pamdx14,
        Pamdx15,
        Pamdx16,
        Pamdx17,
        Pamdx18,
        Pamdx19,
        Pamdx20,
        Pamdy1,
        Pamdy2,
        Pamdy3,
        Pamdy4,
        Pamdy5,
        Pamdy6,
        Pamdy7,
        Pamdy8,
        Pamdy9,
        Pamdy10,
        Pamdy11,
        Pamdy12,
        Pamdy13,
        Pamdy14,
        Pamdy15,
        Pamdy16,
        Pamdy17,
        Pamdy18,
        Pamdy19,
        Pamdy20,
        Ppltscale,
        Pxpixelsz,
        Pypixelsz,
        Ppltra,
        Ppltrah,
        Ppltram,
        Ppltras,
        Ppltdec,
        Ppltdecd,
        Ppltdecm,
        Ppltdecs,
        Pnparam,
};

typedef struct  Plate   Plate;
struct  Plate
{
        char    rgn[7];
        char    disk;
        Angle   ra;
        Angle   dec;
};

typedef struct  Header  Header;
struct  Header
{
        float   param[Pnparam];
        int     amdflag;

        float   x;
        float   y;
        float   xi;
        float   eta;
};
typedef long    Type;

typedef struct  Image   Image;
struct  Image
{
        int     nx;
        int     ny;     /* ny is the fast-varying dimension */
        Type    a[1];
};

int     nplate;
Plate   plate[2000];            /* needs to go to 2000 when the north comes */
double  PI_180;
double  TWOPI;
int     debug;
struct
{
        float   min;
        float   max;
        float   del;
        double  gamma;
        int     neg;
} gam;

char*   hms(Angle);
char*   dms(Angle);
double  xsqrt(double);
Angle   dist(Angle, Angle, Angle, Angle);
Header* getheader(char*);
char*   getword(char*, char*);
void    amdinv(Header*, Angle, Angle, float, float);
void    ppoinv(Header*, Angle, Angle);
void    xypos(Header*, Angle, Angle, float, float);
void    traneqstd(Header*, Angle, Angle);
Angle   getra(char*);
Angle   getdec(char*);
void    getplates(void);

Image*  dssread(char*);
void    hinv(Type*, int, int);
int     input_bit(Biobuf*);
int     input_nbits(Biobuf*, int);
void    qtree_decode(Biobuf*, Type*, int, int, int, int);
void    start_inputing_bits(void);
Bitmap* image(Angle, Angle, Angle, Angle);
int     dogamma(int);