Blame


1 347aa646 2009-04-30 rsc
2 8a3b2ceb 2004-04-24 devnull #define DIR "#9/sky"
3 8a3b2ceb 2004-04-24 devnull /*
4 8a3b2ceb 2004-04-24 devnull * This code reflects many years of changes. There remain residues
5 8a3b2ceb 2004-04-24 devnull * of prior implementations.
6 8a3b2ceb 2004-04-24 devnull *
7 8a3b2ceb 2004-04-24 devnull * Keys:
8 8a3b2ceb 2004-04-24 devnull * 32 bits long. High 26 bits are encoded as described below.
9 8a3b2ceb 2004-04-24 devnull * Low 6 bits are types:
10 8a3b2ceb 2004-04-24 devnull *
11 8a3b2ceb 2004-04-24 devnull * Patch is ~ one square degree of sky. It points to an otherwise
12 8a3b2ceb 2004-04-24 devnull * anonymous list of Catalog keys. The 0th key is special:
13 8a3b2ceb 2004-04-24 devnull * it contains up to 4 constellation identifiers.
14 8a3b2ceb 2004-04-24 devnull * Catalogs (SAO,NGC,M,...) are:
15 8a3b2ceb 2004-04-24 devnull * 31.........8|76|543210
16 8a3b2ceb 2004-04-24 devnull * catalog # |BB|catalog name
17 8a3b2ceb 2004-04-24 devnull * BB is two bits of brightness:
18 8a3b2ceb 2004-04-24 devnull * 00 -inf < m <= 7
19 8a3b2ceb 2004-04-24 devnull * 01 7 < m <= 10
20 8a3b2ceb 2004-04-24 devnull * 10 10 < m <= 13
21 8a3b2ceb 2004-04-24 devnull * 11 13 < m < inf
22 8a3b2ceb 2004-04-24 devnull * The BB field is a dreg, and correct only for SAO and NGC.
23 8a3b2ceb 2004-04-24 devnull * IC(n) is just NGC(n+7840)
24 8a3b2ceb 2004-04-24 devnull * Others should be self-explanatory.
25 fa325e9b 2020-01-10 cross *
26 8a3b2ceb 2004-04-24 devnull * Records:
27 8a3b2ceb 2004-04-24 devnull *
28 8a3b2ceb 2004-04-24 devnull * Star is an SAOrec
29 8a3b2ceb 2004-04-24 devnull * Galaxy, PlanetaryN, OpenCl, GlobularCl, DiffuseN, etc., are NGCrecs.
30 8a3b2ceb 2004-04-24 devnull * Abell is an Abellrec
31 8a3b2ceb 2004-04-24 devnull * The Namedxxx records hold a name and a catalog entry; they result from
32 8a3b2ceb 2004-04-24 devnull * name lookups.
33 8a3b2ceb 2004-04-24 devnull */
34 8a3b2ceb 2004-04-24 devnull
35 8a3b2ceb 2004-04-24 devnull typedef enum
36 8a3b2ceb 2004-04-24 devnull {
37 8a3b2ceb 2004-04-24 devnull Planet,
38 8a3b2ceb 2004-04-24 devnull Patch,
39 8a3b2ceb 2004-04-24 devnull SAO,
40 8a3b2ceb 2004-04-24 devnull NGC,
41 8a3b2ceb 2004-04-24 devnull M,
42 8a3b2ceb 2004-04-24 devnull Constel_deprecated,
43 8a3b2ceb 2004-04-24 devnull Nonstar_deprecated,
44 8a3b2ceb 2004-04-24 devnull NamedSAO,
45 8a3b2ceb 2004-04-24 devnull NamedNGC,
46 8a3b2ceb 2004-04-24 devnull NamedAbell,
47 8a3b2ceb 2004-04-24 devnull Abell,
48 8a3b2ceb 2004-04-24 devnull /* NGC types */
49 8a3b2ceb 2004-04-24 devnull Galaxy,
50 8a3b2ceb 2004-04-24 devnull PlanetaryN,
51 8a3b2ceb 2004-04-24 devnull OpenCl,
52 8a3b2ceb 2004-04-24 devnull GlobularCl,
53 8a3b2ceb 2004-04-24 devnull DiffuseN,
54 8a3b2ceb 2004-04-24 devnull NebularCl,
55 8a3b2ceb 2004-04-24 devnull Asterism,
56 8a3b2ceb 2004-04-24 devnull Knot,
57 8a3b2ceb 2004-04-24 devnull Triple,
58 8a3b2ceb 2004-04-24 devnull Double,
59 8a3b2ceb 2004-04-24 devnull Single,
60 8a3b2ceb 2004-04-24 devnull Uncertain,
61 8a3b2ceb 2004-04-24 devnull Nonexistent,
62 8a3b2ceb 2004-04-24 devnull Unknown,
63 8a3b2ceb 2004-04-24 devnull PlateDefect,
64 8a3b2ceb 2004-04-24 devnull /* internal */
65 8a3b2ceb 2004-04-24 devnull NGCN,
66 8a3b2ceb 2004-04-24 devnull PatchC,
67 cbeb0b26 2006-04-01 devnull NONGC
68 8a3b2ceb 2004-04-24 devnull }Type;
69 8a3b2ceb 2004-04-24 devnull
70 8a3b2ceb 2004-04-24 devnull enum
71 8a3b2ceb 2004-04-24 devnull {
72 8a3b2ceb 2004-04-24 devnull /*
73 8a3b2ceb 2004-04-24 devnull * parameters for plate
74 8a3b2ceb 2004-04-24 devnull */
75 8a3b2ceb 2004-04-24 devnull Pppo1 = 0,
76 8a3b2ceb 2004-04-24 devnull Pppo2,
77 8a3b2ceb 2004-04-24 devnull Pppo3,
78 8a3b2ceb 2004-04-24 devnull Pppo4,
79 8a3b2ceb 2004-04-24 devnull Pppo5,
80 8a3b2ceb 2004-04-24 devnull Pppo6,
81 8a3b2ceb 2004-04-24 devnull Pamdx1,
82 8a3b2ceb 2004-04-24 devnull Pamdx2,
83 8a3b2ceb 2004-04-24 devnull Pamdx3,
84 8a3b2ceb 2004-04-24 devnull Pamdx4,
85 8a3b2ceb 2004-04-24 devnull Pamdx5,
86 8a3b2ceb 2004-04-24 devnull Pamdx6,
87 8a3b2ceb 2004-04-24 devnull Pamdx7,
88 8a3b2ceb 2004-04-24 devnull Pamdx8,
89 8a3b2ceb 2004-04-24 devnull Pamdx9,
90 8a3b2ceb 2004-04-24 devnull Pamdx10,
91 8a3b2ceb 2004-04-24 devnull Pamdx11,
92 8a3b2ceb 2004-04-24 devnull Pamdx12,
93 8a3b2ceb 2004-04-24 devnull Pamdx13,
94 8a3b2ceb 2004-04-24 devnull Pamdx14,
95 8a3b2ceb 2004-04-24 devnull Pamdx15,
96 8a3b2ceb 2004-04-24 devnull Pamdx16,
97 8a3b2ceb 2004-04-24 devnull Pamdx17,
98 8a3b2ceb 2004-04-24 devnull Pamdx18,
99 8a3b2ceb 2004-04-24 devnull Pamdx19,
100 8a3b2ceb 2004-04-24 devnull Pamdx20,
101 8a3b2ceb 2004-04-24 devnull Pamdy1,
102 8a3b2ceb 2004-04-24 devnull Pamdy2,
103 8a3b2ceb 2004-04-24 devnull Pamdy3,
104 8a3b2ceb 2004-04-24 devnull Pamdy4,
105 8a3b2ceb 2004-04-24 devnull Pamdy5,
106 8a3b2ceb 2004-04-24 devnull Pamdy6,
107 8a3b2ceb 2004-04-24 devnull Pamdy7,
108 8a3b2ceb 2004-04-24 devnull Pamdy8,
109 8a3b2ceb 2004-04-24 devnull Pamdy9,
110 8a3b2ceb 2004-04-24 devnull Pamdy10,
111 8a3b2ceb 2004-04-24 devnull Pamdy11,
112 8a3b2ceb 2004-04-24 devnull Pamdy12,
113 8a3b2ceb 2004-04-24 devnull Pamdy13,
114 8a3b2ceb 2004-04-24 devnull Pamdy14,
115 8a3b2ceb 2004-04-24 devnull Pamdy15,
116 8a3b2ceb 2004-04-24 devnull Pamdy16,
117 8a3b2ceb 2004-04-24 devnull Pamdy17,
118 8a3b2ceb 2004-04-24 devnull Pamdy18,
119 8a3b2ceb 2004-04-24 devnull Pamdy19,
120 8a3b2ceb 2004-04-24 devnull Pamdy20,
121 8a3b2ceb 2004-04-24 devnull Ppltscale,
122 8a3b2ceb 2004-04-24 devnull Pxpixelsz,
123 8a3b2ceb 2004-04-24 devnull Pypixelsz,
124 8a3b2ceb 2004-04-24 devnull Ppltra,
125 8a3b2ceb 2004-04-24 devnull Ppltrah,
126 8a3b2ceb 2004-04-24 devnull Ppltram,
127 8a3b2ceb 2004-04-24 devnull Ppltras,
128 8a3b2ceb 2004-04-24 devnull Ppltdec,
129 8a3b2ceb 2004-04-24 devnull Ppltdecd,
130 8a3b2ceb 2004-04-24 devnull Ppltdecm,
131 8a3b2ceb 2004-04-24 devnull Ppltdecs,
132 cbeb0b26 2006-04-01 devnull Pnparam
133 8a3b2ceb 2004-04-24 devnull };
134 8a3b2ceb 2004-04-24 devnull
135 8a3b2ceb 2004-04-24 devnull #define UNKNOWNMAG 32767
136 8a3b2ceb 2004-04-24 devnull #define NPlanet 20
137 8a3b2ceb 2004-04-24 devnull
138 8a3b2ceb 2004-04-24 devnull typedef float Angle; /* in radians */
139 347aa646 2009-04-30 rsc typedef int32 DAngle; /* on disk: in units of milliarcsec */
140 8a3b2ceb 2004-04-24 devnull typedef short Mag; /* multiplied by 10 */
141 347aa646 2009-04-30 rsc typedef int32 Key; /* known to be 4 bytes, unfortunately */
142 8a3b2ceb 2004-04-24 devnull
143 8a3b2ceb 2004-04-24 devnull /*
144 8a3b2ceb 2004-04-24 devnull * All integers are stored in little-endian order.
145 8a3b2ceb 2004-04-24 devnull */
146 8a3b2ceb 2004-04-24 devnull typedef struct NGCrec NGCrec;
147 8a3b2ceb 2004-04-24 devnull struct NGCrec{
148 8a3b2ceb 2004-04-24 devnull DAngle ra;
149 8a3b2ceb 2004-04-24 devnull DAngle dec;
150 8a3b2ceb 2004-04-24 devnull DAngle dummy1; /* compatibility with old RNGC version */
151 8a3b2ceb 2004-04-24 devnull DAngle diam;
152 8a3b2ceb 2004-04-24 devnull Mag mag;
153 8a3b2ceb 2004-04-24 devnull short ngc; /* if >NNGC, IC number is ngc-NNGC */
154 8a3b2ceb 2004-04-24 devnull char diamlim;
155 8a3b2ceb 2004-04-24 devnull char type;
156 8a3b2ceb 2004-04-24 devnull char magtype;
157 8a3b2ceb 2004-04-24 devnull char dummy2;
158 8a3b2ceb 2004-04-24 devnull char desc[52]; /* 0-terminated Dreyer description */
159 8a3b2ceb 2004-04-24 devnull };
160 8a3b2ceb 2004-04-24 devnull
161 8a3b2ceb 2004-04-24 devnull typedef struct Abellrec Abellrec;
162 8a3b2ceb 2004-04-24 devnull struct Abellrec{
163 8a3b2ceb 2004-04-24 devnull DAngle ra;
164 8a3b2ceb 2004-04-24 devnull DAngle dec;
165 8a3b2ceb 2004-04-24 devnull DAngle glat;
166 8a3b2ceb 2004-04-24 devnull DAngle glong;
167 8a3b2ceb 2004-04-24 devnull Mag mag10; /* mag of 10th brightest cluster member; in same place as ngc.mag*/
168 8a3b2ceb 2004-04-24 devnull short abell;
169 8a3b2ceb 2004-04-24 devnull DAngle rad;
170 8a3b2ceb 2004-04-24 devnull short pop;
171 8a3b2ceb 2004-04-24 devnull short dist;
172 8a3b2ceb 2004-04-24 devnull char distgrp;
173 8a3b2ceb 2004-04-24 devnull char richgrp;
174 8a3b2ceb 2004-04-24 devnull char flag;
175 8a3b2ceb 2004-04-24 devnull char pad;
176 8a3b2ceb 2004-04-24 devnull };
177 8a3b2ceb 2004-04-24 devnull
178 8a3b2ceb 2004-04-24 devnull typedef struct Planetrec Planetrec;
179 8a3b2ceb 2004-04-24 devnull struct Planetrec{
180 8a3b2ceb 2004-04-24 devnull DAngle ra;
181 8a3b2ceb 2004-04-24 devnull DAngle dec;
182 8a3b2ceb 2004-04-24 devnull DAngle az;
183 8a3b2ceb 2004-04-24 devnull DAngle alt;
184 8a3b2ceb 2004-04-24 devnull DAngle semidiam;
185 8a3b2ceb 2004-04-24 devnull double phase;
186 8a3b2ceb 2004-04-24 devnull char name[16];
187 8a3b2ceb 2004-04-24 devnull };
188 8a3b2ceb 2004-04-24 devnull
189 8a3b2ceb 2004-04-24 devnull /*
190 8a3b2ceb 2004-04-24 devnull * Star names: 0,0==unused. Numbers are name[0]=1,..,99.
191 8a3b2ceb 2004-04-24 devnull * Greek letters are alpha=101, etc.
192 8a3b2ceb 2004-04-24 devnull * Constellations are alphabetical order by abbreviation, and=1, etc.
193 8a3b2ceb 2004-04-24 devnull */
194 8a3b2ceb 2004-04-24 devnull typedef struct SAOrec SAOrec;
195 8a3b2ceb 2004-04-24 devnull struct SAOrec{
196 8a3b2ceb 2004-04-24 devnull DAngle ra;
197 8a3b2ceb 2004-04-24 devnull DAngle dec;
198 8a3b2ceb 2004-04-24 devnull DAngle dra;
199 8a3b2ceb 2004-04-24 devnull DAngle ddec;
200 8a3b2ceb 2004-04-24 devnull Mag mag; /* visual */
201 8a3b2ceb 2004-04-24 devnull Mag mpg;
202 8a3b2ceb 2004-04-24 devnull char spec[3];
203 8a3b2ceb 2004-04-24 devnull char code;
204 8a3b2ceb 2004-04-24 devnull char compid[2];
205 8a3b2ceb 2004-04-24 devnull char hdcode;
206 8a3b2ceb 2004-04-24 devnull char pad1;
207 347aa646 2009-04-30 rsc int32 hd; /* HD catalog number */
208 8a3b2ceb 2004-04-24 devnull char name[3]; /* name[0]=alpha name[1]=2 name[3]=ori */
209 8a3b2ceb 2004-04-24 devnull char nname; /* number of prose names */
210 8a3b2ceb 2004-04-24 devnull /* 36 bytes to here */
211 8a3b2ceb 2004-04-24 devnull };
212 8a3b2ceb 2004-04-24 devnull
213 8a3b2ceb 2004-04-24 devnull typedef struct Mindexrec Mindexrec;
214 8a3b2ceb 2004-04-24 devnull struct Mindexrec{ /* code knows the bit patterns in here; this is a long */
215 8a3b2ceb 2004-04-24 devnull char m; /* M number */
216 8a3b2ceb 2004-04-24 devnull char dummy;
217 8a3b2ceb 2004-04-24 devnull short ngc;
218 8a3b2ceb 2004-04-24 devnull };
219 8a3b2ceb 2004-04-24 devnull
220 8a3b2ceb 2004-04-24 devnull typedef struct Bayerec Bayerec;
221 8a3b2ceb 2004-04-24 devnull struct Bayerec{
222 347aa646 2009-04-30 rsc int32 sao;
223 8a3b2ceb 2004-04-24 devnull char name[3];
224 8a3b2ceb 2004-04-24 devnull char pad;
225 8a3b2ceb 2004-04-24 devnull };
226 8a3b2ceb 2004-04-24 devnull
227 8a3b2ceb 2004-04-24 devnull /*
228 8a3b2ceb 2004-04-24 devnull * Internal form
229 8a3b2ceb 2004-04-24 devnull */
230 8a3b2ceb 2004-04-24 devnull
231 8a3b2ceb 2004-04-24 devnull typedef struct Namedrec Namedrec;
232 8a3b2ceb 2004-04-24 devnull struct Namedrec{
233 8a3b2ceb 2004-04-24 devnull char name[36];
234 8a3b2ceb 2004-04-24 devnull };
235 8a3b2ceb 2004-04-24 devnull
236 8a3b2ceb 2004-04-24 devnull typedef struct Namerec Namerec;
237 8a3b2ceb 2004-04-24 devnull struct Namerec{
238 347aa646 2009-04-30 rsc int32 sao;
239 347aa646 2009-04-30 rsc int32 ngc;
240 347aa646 2009-04-30 rsc int32 abell;
241 8a3b2ceb 2004-04-24 devnull char name[36]; /* null terminated */
242 8a3b2ceb 2004-04-24 devnull };
243 8a3b2ceb 2004-04-24 devnull
244 8a3b2ceb 2004-04-24 devnull typedef struct Patchrec Patchrec;
245 8a3b2ceb 2004-04-24 devnull struct Patchrec{
246 8a3b2ceb 2004-04-24 devnull int nkey;
247 347aa646 2009-04-30 rsc int32 key[60];
248 8a3b2ceb 2004-04-24 devnull };
249 8a3b2ceb 2004-04-24 devnull
250 8a3b2ceb 2004-04-24 devnull typedef struct Record Record;
251 8a3b2ceb 2004-04-24 devnull struct Record{
252 8a3b2ceb 2004-04-24 devnull Type type;
253 347aa646 2009-04-30 rsc int32 index;
254 8a3b2ceb 2004-04-24 devnull union{
255 8a3b2ceb 2004-04-24 devnull SAOrec sao;
256 8a3b2ceb 2004-04-24 devnull NGCrec ngc;
257 8a3b2ceb 2004-04-24 devnull Abellrec abell;
258 8a3b2ceb 2004-04-24 devnull Namedrec named;
259 8a3b2ceb 2004-04-24 devnull Patchrec patch;
260 8a3b2ceb 2004-04-24 devnull Planetrec planet;
261 8a3b2ceb 2004-04-24 devnull /* PatchCrec is empty */
262 e9ad8994 2005-05-01 devnull } u;
263 8a3b2ceb 2004-04-24 devnull };
264 8a3b2ceb 2004-04-24 devnull
265 8a3b2ceb 2004-04-24 devnull typedef struct Name Name;
266 8a3b2ceb 2004-04-24 devnull struct Name{
267 8a3b2ceb 2004-04-24 devnull char *name;
268 8a3b2ceb 2004-04-24 devnull int type;
269 8a3b2ceb 2004-04-24 devnull };
270 8a3b2ceb 2004-04-24 devnull
271 8a3b2ceb 2004-04-24 devnull typedef struct Plate Plate;
272 8a3b2ceb 2004-04-24 devnull struct Plate
273 8a3b2ceb 2004-04-24 devnull {
274 8a3b2ceb 2004-04-24 devnull char rgn[7];
275 8a3b2ceb 2004-04-24 devnull char disk;
276 8a3b2ceb 2004-04-24 devnull Angle ra;
277 8a3b2ceb 2004-04-24 devnull Angle dec;
278 8a3b2ceb 2004-04-24 devnull };
279 8a3b2ceb 2004-04-24 devnull
280 8a3b2ceb 2004-04-24 devnull typedef struct Header Header;
281 8a3b2ceb 2004-04-24 devnull struct Header
282 8a3b2ceb 2004-04-24 devnull {
283 8a3b2ceb 2004-04-24 devnull float param[Pnparam];
284 8a3b2ceb 2004-04-24 devnull int amdflag;
285 8a3b2ceb 2004-04-24 devnull
286 8a3b2ceb 2004-04-24 devnull float x;
287 8a3b2ceb 2004-04-24 devnull float y;
288 8a3b2ceb 2004-04-24 devnull float xi;
289 8a3b2ceb 2004-04-24 devnull float eta;
290 8a3b2ceb 2004-04-24 devnull };
291 347aa646 2009-04-30 rsc typedef int32 Pix;
292 8a3b2ceb 2004-04-24 devnull
293 8a3b2ceb 2004-04-24 devnull typedef struct Img Img;
294 8a3b2ceb 2004-04-24 devnull struct Img
295 8a3b2ceb 2004-04-24 devnull {
296 8a3b2ceb 2004-04-24 devnull int nx;
297 8a3b2ceb 2004-04-24 devnull int ny; /* ny is the fast-varying dimension */
298 8a3b2ceb 2004-04-24 devnull Pix a[1];
299 8a3b2ceb 2004-04-24 devnull };
300 8a3b2ceb 2004-04-24 devnull
301 8a3b2ceb 2004-04-24 devnull #define RAD(x) ((x)*PI_180)
302 8a3b2ceb 2004-04-24 devnull #define DEG(x) ((x)/PI_180)
303 8a3b2ceb 2004-04-24 devnull #define ARCSECONDS_PER_RADIAN (DEG(1)*3600)
304 8a3b2ceb 2004-04-24 devnull #define MILLIARCSEC (1000*60*60)
305 8a3b2ceb 2004-04-24 devnull
306 8a3b2ceb 2004-04-24 devnull int nplate;
307 8a3b2ceb 2004-04-24 devnull Plate plate[2000]; /* needs to go to 2000 when the north comes */
308 8a3b2ceb 2004-04-24 devnull double PI_180;
309 8a3b2ceb 2004-04-24 devnull double TWOPI;
310 8a3b2ceb 2004-04-24 devnull double LN2;
311 8a3b2ceb 2004-04-24 devnull int debug;
312 8a3b2ceb 2004-04-24 devnull struct
313 8a3b2ceb 2004-04-24 devnull {
314 8a3b2ceb 2004-04-24 devnull float min;
315 8a3b2ceb 2004-04-24 devnull float max;
316 8a3b2ceb 2004-04-24 devnull float gamma;
317 8a3b2ceb 2004-04-24 devnull float absgamma;
318 8a3b2ceb 2004-04-24 devnull float mult1;
319 8a3b2ceb 2004-04-24 devnull float mult2;
320 8a3b2ceb 2004-04-24 devnull int neg;
321 8a3b2ceb 2004-04-24 devnull } gam;
322 8a3b2ceb 2004-04-24 devnull
323 8a3b2ceb 2004-04-24 devnull typedef struct Picture Picture;
324 8a3b2ceb 2004-04-24 devnull struct Picture
325 8a3b2ceb 2004-04-24 devnull {
326 8a3b2ceb 2004-04-24 devnull int minx;
327 8a3b2ceb 2004-04-24 devnull int miny;
328 8a3b2ceb 2004-04-24 devnull int maxx;
329 8a3b2ceb 2004-04-24 devnull int maxy;
330 8a3b2ceb 2004-04-24 devnull char name[16];
331 8a3b2ceb 2004-04-24 devnull uchar *data;
332 8a3b2ceb 2004-04-24 devnull };
333 8a3b2ceb 2004-04-24 devnull
334 8a3b2ceb 2004-04-24 devnull #ifndef _DRAW_H_
335 8a3b2ceb 2004-04-24 devnull typedef struct Image Image;
336 8a3b2ceb 2004-04-24 devnull #endif
337 8a3b2ceb 2004-04-24 devnull
338 8a3b2ceb 2004-04-24 devnull extern double PI_180;
339 8a3b2ceb 2004-04-24 devnull extern double TWOPI;
340 8a3b2ceb 2004-04-24 devnull extern char *progname;
341 8a3b2ceb 2004-04-24 devnull extern char *desctab[][2];
342 8a3b2ceb 2004-04-24 devnull extern Name names[];
343 8a3b2ceb 2004-04-24 devnull extern Record *rec;
344 347aa646 2009-04-30 rsc extern int32 nrec;
345 8a3b2ceb 2004-04-24 devnull extern Planetrec *planet;
346 8a3b2ceb 2004-04-24 devnull /* for bbox: */
347 8a3b2ceb 2004-04-24 devnull extern int folded;
348 8a3b2ceb 2004-04-24 devnull extern DAngle ramin;
349 8a3b2ceb 2004-04-24 devnull extern DAngle ramax;
350 8a3b2ceb 2004-04-24 devnull extern DAngle decmin;
351 8a3b2ceb 2004-04-24 devnull extern DAngle decmax;
352 8a3b2ceb 2004-04-24 devnull extern Biobuf bout;
353 8a3b2ceb 2004-04-24 devnull
354 8a3b2ceb 2004-04-24 devnull extern void saoopen(void);
355 8a3b2ceb 2004-04-24 devnull extern void ngcopen(void);
356 8a3b2ceb 2004-04-24 devnull extern void patchopen(void);
357 8a3b2ceb 2004-04-24 devnull extern void mopen(void);
358 8a3b2ceb 2004-04-24 devnull extern void constelopen(void);
359 8a3b2ceb 2004-04-24 devnull extern void lowercase(char*);
360 8a3b2ceb 2004-04-24 devnull extern void lookup(char*, int);
361 8a3b2ceb 2004-04-24 devnull extern int typetab(int);
362 8a3b2ceb 2004-04-24 devnull extern char*ngcstring(int);
363 8a3b2ceb 2004-04-24 devnull extern char*skip(int, char*);
364 8a3b2ceb 2004-04-24 devnull extern void prrec(Record*);
365 8a3b2ceb 2004-04-24 devnull extern int equal(char*, char*);
366 8a3b2ceb 2004-04-24 devnull extern int parsename(char*);
367 8a3b2ceb 2004-04-24 devnull extern void radec(int, int*, int*, int*);
368 8a3b2ceb 2004-04-24 devnull extern int btag(short);
369 347aa646 2009-04-30 rsc extern int32 patcha(Angle, Angle);
370 347aa646 2009-04-30 rsc extern int32 patch(int, int, int);
371 8a3b2ceb 2004-04-24 devnull extern char*hms(Angle);
372 8a3b2ceb 2004-04-24 devnull extern char*dms(Angle);
373 8a3b2ceb 2004-04-24 devnull extern char*ms(Angle);
374 8a3b2ceb 2004-04-24 devnull extern char*hm(Angle);
375 8a3b2ceb 2004-04-24 devnull extern char*dm(Angle);
376 8a3b2ceb 2004-04-24 devnull extern char*deg(Angle);
377 8a3b2ceb 2004-04-24 devnull extern char*hm5(Angle);
378 347aa646 2009-04-30 rsc extern int32 dangle(Angle);
379 8a3b2ceb 2004-04-24 devnull extern Angle angle(DAngle);
380 8a3b2ceb 2004-04-24 devnull extern void prdesc(char*, char*(*)[2], short*);
381 8a3b2ceb 2004-04-24 devnull extern double xsqrt(double);
382 8a3b2ceb 2004-04-24 devnull extern Angle dist(Angle, Angle, Angle, Angle);
383 8a3b2ceb 2004-04-24 devnull extern Header* getheader(char*);
384 8a3b2ceb 2004-04-24 devnull extern char* getword(char*, char*);
385 8a3b2ceb 2004-04-24 devnull extern void amdinv(Header*, Angle, Angle, float, float);
386 8a3b2ceb 2004-04-24 devnull extern void ppoinv(Header*, Angle, Angle);
387 8a3b2ceb 2004-04-24 devnull extern void xypos(Header*, Angle, Angle, float, float);
388 8a3b2ceb 2004-04-24 devnull extern void traneqstd(Header*, Angle, Angle);
389 8a3b2ceb 2004-04-24 devnull extern Angle getra(char*);
390 8a3b2ceb 2004-04-24 devnull extern Angle getdec(char*);
391 8a3b2ceb 2004-04-24 devnull extern void getplates(void);
392 8a3b2ceb 2004-04-24 devnull extern Img* dssread(char*);
393 8a3b2ceb 2004-04-24 devnull extern void hinv(Pix*, int, int);
394 8a3b2ceb 2004-04-24 devnull extern int input_bit(Biobuf*);
395 8a3b2ceb 2004-04-24 devnull extern int input_nbits(Biobuf*, int);
396 8a3b2ceb 2004-04-24 devnull extern int input_huffman(Biobuf*);
397 8a3b2ceb 2004-04-24 devnull extern int input_nybble(Biobuf*);
398 8a3b2ceb 2004-04-24 devnull extern void qtree_decode(Biobuf*, Pix*, int, int, int, int);
399 8a3b2ceb 2004-04-24 devnull extern void start_inputing_bits(void);
400 8a3b2ceb 2004-04-24 devnull extern Picture* image(Angle, Angle, Angle, Angle);
401 8a3b2ceb 2004-04-24 devnull extern char* dssmount(int);
402 8a3b2ceb 2004-04-24 devnull extern int dogamma(Pix);
403 8a3b2ceb 2004-04-24 devnull extern void displaypic(Picture*);
404 8a3b2ceb 2004-04-24 devnull extern void displayimage(Image*);
405 8a3b2ceb 2004-04-24 devnull extern void plot(char*);
406 8a3b2ceb 2004-04-24 devnull extern void astro(char*, int);
407 8a3b2ceb 2004-04-24 devnull extern char* alpha(char*, char*);
408 8a3b2ceb 2004-04-24 devnull extern char* skipbl(char*);
409 8a3b2ceb 2004-04-24 devnull extern void flatten(void);
410 347aa646 2009-04-30 rsc extern int bbox(int32, int32, int);
411 8a3b2ceb 2004-04-24 devnull extern int inbbox(DAngle, DAngle);
412 8a3b2ceb 2004-04-24 devnull extern char* nameof(Record*);
413 8a3b2ceb 2004-04-24 devnull
414 8a3b2ceb 2004-04-24 devnull #define NINDEX 400