mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-15 11:20:03 +00:00
138 lines
2 KiB
C
138 lines
2 KiB
C
#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);
|