plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

plate.h (2005B)


      1 #define	RAD(x)	((x)*PI_180)
      2 #define	DEG(x)	((x)/PI_180)
      3 #define ARCSECONDS_PER_RADIAN	(DEG(1)*3600)
      4 #define input_nybble(infile)    input_nbits(infile,4)
      5 
      6 typedef float	Angle;	/* in radians */
      7 
      8 enum
      9 {
     10 	/*
     11 	 * parameters for plate
     12 	 */
     13 	Pppo1	= 0,
     14 	Pppo2,
     15 	Pppo3,
     16 	Pppo4,
     17 	Pppo5,
     18 	Pppo6,
     19 	Pamdx1,
     20 	Pamdx2,
     21 	Pamdx3,
     22 	Pamdx4,
     23 	Pamdx5,
     24 	Pamdx6,
     25 	Pamdx7,
     26 	Pamdx8,
     27 	Pamdx9,
     28 	Pamdx10,
     29 	Pamdx11,
     30 	Pamdx12,
     31 	Pamdx13,
     32 	Pamdx14,
     33 	Pamdx15,
     34 	Pamdx16,
     35 	Pamdx17,
     36 	Pamdx18,
     37 	Pamdx19,
     38 	Pamdx20,
     39 	Pamdy1,
     40 	Pamdy2,
     41 	Pamdy3,
     42 	Pamdy4,
     43 	Pamdy5,
     44 	Pamdy6,
     45 	Pamdy7,
     46 	Pamdy8,
     47 	Pamdy9,
     48 	Pamdy10,
     49 	Pamdy11,
     50 	Pamdy12,
     51 	Pamdy13,
     52 	Pamdy14,
     53 	Pamdy15,
     54 	Pamdy16,
     55 	Pamdy17,
     56 	Pamdy18,
     57 	Pamdy19,
     58 	Pamdy20,
     59 	Ppltscale,
     60 	Pxpixelsz,
     61 	Pypixelsz,
     62 	Ppltra,
     63 	Ppltrah,
     64 	Ppltram,
     65 	Ppltras,
     66 	Ppltdec,
     67 	Ppltdecd,
     68 	Ppltdecm,
     69 	Ppltdecs,
     70 	Pnparam
     71 };
     72 
     73 typedef	struct	Plate	Plate;
     74 struct	Plate
     75 {
     76 	char	rgn[7];
     77 	char	disk;
     78 	Angle	ra;
     79 	Angle	dec;
     80 };
     81 
     82 typedef	struct	Header	Header;
     83 struct	Header
     84 {
     85 	float	param[Pnparam];
     86 	int	amdflag;
     87 
     88 	float	x;
     89 	float	y;
     90 	float	xi;
     91 	float	eta;
     92 };
     93 typedef	int32	Type;
     94 
     95 typedef struct	Image	Image;
     96 struct	Image
     97 {
     98 	int	nx;
     99 	int	ny;	/* ny is the fast-varying dimension */
    100 	Type	a[1];
    101 };
    102 
    103 int	nplate;
    104 Plate	plate[2000];		/* needs to go to 2000 when the north comes */
    105 double	PI_180;
    106 double	TWOPI;
    107 int	debug;
    108 struct
    109 {
    110 	float	min;
    111 	float	max;
    112 	float	del;
    113 	double	gamma;
    114 	int	neg;
    115 } gam;
    116 
    117 char*	hms(Angle);
    118 char*	dms(Angle);
    119 double	xsqrt(double);
    120 Angle	dist(Angle, Angle, Angle, Angle);
    121 Header*	getheader(char*);
    122 char*	getword(char*, char*);
    123 void	amdinv(Header*, Angle, Angle, float, float);
    124 void	ppoinv(Header*, Angle, Angle);
    125 void	xypos(Header*, Angle, Angle, float, float);
    126 void	traneqstd(Header*, Angle, Angle);
    127 Angle	getra(char*);
    128 Angle	getdec(char*);
    129 void	getplates(void);
    130 
    131 Image*	dssread(char*);
    132 void	hinv(Type*, int, int);
    133 int	input_bit(Biobuf*);
    134 int	input_nbits(Biobuf*, int);
    135 void	qtree_decode(Biobuf*, Type*, int, int, int, int);
    136 void	start_inputing_bits(void);
    137 Bitmap*	image(Angle, Angle, Angle, Angle);
    138 int	dogamma(int);