147 lines · 2.4 KB · C
RawDownload
/*  * This file is part of the UCB release of Plan 9. It is subject to the license * terms in the LICENSE file found in the top-level directory of this * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No * part of the UCB release of Plan 9, including this file, may be copied, * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ #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);