grass  7.8.6
About: GRASS (Geographic Resources Analysis Support System) is a raster- and vector-based GIS, image processing system, graphics production system and spatial modeling system.
  Fossies Dox: grass-7.8.6.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

ogsf.h
Go to the documentation of this file.
1/*!
2 \file include/ogsf.h
3
4 \brief OGSF header file (structures)
5
6 This program is free software under the GNU General
7 Public License (>=v2). Read the file COPYING that
8 comes with GRASS for details.
9
10 \author Original author Bill Brown, USACERL (January 1993)
11 \author Thematic mapping enabled by Martin Landa <landa.martin gmail.com) (06/2011)
12
13 (C) 2011 by the GRASS Development Team
14*/
15
16#ifndef GRASS_OGSF_H
17#define GRASS_OGSF_H
18
19#include <grass/config.h>
20#include <grass/bitmap.h>
21#if defined(OPENGL_X11) || defined(OPENGL_WINDOWS)
22#include <GL/gl.h>
23#endif
24#ifdef OPENGL_AQUA
25#include <OpenGL/gl.h>
26#endif
27
28#include <grass/gis.h>
29
30#define GS_UNIT_SIZE 1000.
31
32#define BETWEEN(x, a, b) (((x) > (a) && (x) < (b)) || ((x) > (b) && (x) < (a)))
33#define GS_NEAR_EQUAL(x, y, ratio) ((x) == (y) || ((x) == 0.0? \
34 GS_BETWEEN((x), (y)+(y)*(ratio), (y)-(y)*(ratio)):\
35 GS_BETWEEN((y), (x)+(x)*(ratio), (x)-(x)*(ratio))))
36
37/* current maximums */
38#define MAX_SURFS 12
39#define MAX_VECTS 50
40#define MAX_SITES 50
41#define MAX_VOLS 12 /* should match MAX_VOL_FILES below ? */
42#define MAX_DSP 12
43#define MAX_ATTS 7
44#define MAX_LIGHTS 3
45#define MAX_CPLANES 6
46#define MAX_ISOSURFS 12
47#define MAX_SLICES 12
48
49/* for gvl_file.c */
50#define MAX_VOL_SLICES 4
51#define MAX_VOL_FILES 100
52
53/* surface display modes */
54#define DM_GOURAUD 0x00000100
55#define DM_FLAT 0x00000200 /* defined for symmetry */
56
57#define DM_FRINGE 0x00000010
58
59#define DM_WIRE 0x00000001
60#define DM_COL_WIRE 0x00000002
61#define DM_POLY 0x00000004
62#define DM_WIRE_POLY 0x00000008
63
64#define DM_GRID_WIRE 0x00000400
65#define DM_GRID_SURF 0x00000800
66
67#define WC_COLOR_ATT 0xFF000000
68
69#define IFLAG unsigned int
70
71/* surface attribute ***descriptors*** */
72#define ATT_NORM 0 /* library use only */
73#define ATT_TOPO 1
74#define ATT_COLOR 2
75#define ATT_MASK 3
76#define ATT_TRANSP 4
77#define ATT_SHINE 5
78#define ATT_EMIT 6
79#define LEGAL_ATT(a) (a >= 0 && a < MAX_ATTS)
80
81/* surface attribute **sources** */
82#define NOTSET_ATT 0
83#define MAP_ATT 1
84#define CONST_ATT 2
85#define FUNC_ATT 3
86#define LEGAL_SRC(s) (s==NOTSET_ATT||s==MAP_ATT||s==CONST_ATT||s==FUNC_ATT)
87
88/* site markers */
89#define ST_X 1
90#define ST_BOX 2
91#define ST_SPHERE 3
92#define ST_CUBE 4
93#define ST_DIAMOND 5
94#define ST_DEC_TREE 6
95#define ST_CON_TREE 7
96#define ST_ASTER 8
97#define ST_GYRO 9
98#define ST_HISTOGRAM 10
99
100/* Buffer modes */
101#define GSD_FRONT 1
102#define GSD_BACK 2
103#define GSD_BOTH 3
104
105/* fence colormodes */
106#define FC_OFF 0
107#define FC_ABOVE 1
108#define FC_BELOW 2
109#define FC_BLEND 3
110#define FC_GREY 4
111
112/* legend types */
113#define LT_DISCRETE 0x00000100
114#define LT_CONTINUOUS 0x00000200
115
116#define LT_LIST 0x00000010
117/* list automatically discrete */
118
119#define LT_RANGE_LOWSET 0x00000001
120#define LT_RANGE_HISET 0x00000002
121#define LT_RANGE_LOW_HI 0x00000003
122#define LT_INVERTED 0x00000008
123
124#define LT_SHOW_VALS 0x00001000
125#define LT_SHOW_LABELS 0x00002000
126
127/* types of volume files */
128#define VOL_FTYPE_RASTER3D 0
129
130/* types of volume values */
131#define VOL_DTYPE_FLOAT 0
132#define VOL_DTYPE_DOUBLE 1
133
134/*#define TRACE_FUNCS */
135/*#define DEBUG */
136
137#define X 0
138#define Y 1
139#define Z 2
140#define W 3
141#define FROM 0
142#define TO 1
143
144/* colormodes */
145#define CM_COLOR 0
146#define CM_EMISSION 1
147#define CM_AMBIENT 2
148#define CM_DIFFUSE 3
149#define CM_SPECULAR 4
150#define CM_AD 5
151#define CM_NULL 6
152
153#define CM_WIRE CM_COLOR
154
155#define NULL_COLOR 0xFFFFFF
156
157/* attribute sizes - NOT YET USED */
158#define GS_CHAR8 char
159#define GS_SHORT16 short
160#define GS_INT32 int
161
162/* attribute ***types*** */
163#define ATTY_NULL 32 /* internal use only */
164#define ATTY_MASK 16 /* can't use this one for numbytes */
165#define ATTY_FLOAT 8 /* can't use this one for numbytes */
166#define ATTY_INT 4
167#define ATTY_SHORT 2
168#define ATTY_CHAR 1
169#define ATTY_ANY 63 /* internal use only */
170#define LEGAL_TYPE(t) \
171(t==ATTY_MASK || t==ATTY_FLOAT || t==ATTY_INT || t==ATTY_SHORT || t==ATTY_CHAR)
172
173#define MAXDIMS 4
174
175#define FUDGE(gs) ((gs->zmax_nz - gs->zmin_nz)/500.)
176#define DOT3( a, b ) ( (a)[X]*(b)[X] + (a)[Y]*(b)[Y] + (a)[Z]*(b)[Z] )
177
178/* changed flags for datasets */
179#define CF_NOT_CHANGED 0x000000
180#define CF_COLOR_PACKED 0x000001
181#define CF_USR_CHANGED 0x000010
182#define CF_CHARSCALED 0x000100
183
184#define MAX_TF 6
185
186#define MASK_TL 0x10000000
187#define MASK_TR 0x01000000
188#define MASK_BR 0x00100000
189#define MASK_BL 0x00010000
190#define MASK_NPTS 0x00000007
191
192#define OGSF_POINT 1
193#define OGSF_LINE 2
194#define OGSF_POLYGON 3
195
196#define RED_MASK 0x000000FF
197#define GRN_MASK 0x0000FF00
198#define BLU_MASK 0x00FF0000
199
200typedef float Point4[4];
201typedef float Point3[3];
202typedef float Point2[2];
203
204typedef struct
205{
206 float *fb;
207 int *ib;
208 short *sb;
209 unsigned char *cb;
210 struct BM *bm;
211 struct BM *nm; /* null mask: set = null */
212 float (*tfunc) (float, int);
213 float k;
214} typbuff;
215
216typedef struct
217{ /* use hash table? */
218 int n_elem; /* if n_elem == 256, index == NULL */
219 char *index;
220 int *value;
221} table256;
222
223typedef struct
224{ /* applied thusly: offset, mult, if(use_lookup) lookup */
225 float offset;
226 float mult;
229} transform;
230
231/* move this to dataset file? */
232typedef struct
233{
235 int dims[MAXDIMS];
236 int ndims;
237 size_t numbytes;
242} dataset;
243
244/* maybe add transformation matrix? */
245typedef struct
246{
247 IFLAG att_src; /* NOTSET_ATT, MAP_ATT, CONST_ATT, FUNC_ATT */
248 IFLAG att_type; /* ATTY_INT, ATTY_SHORT, ATTY_CHAR, or ATTY_FLOAT */
249 int hdata; /* handle to dataset */
250 int (*user_func) ();
251 float constant;
252 int *lookup; /* TODO: use transform instead */
253 float min_nz, max_nz, range_nz;
255} gsurf_att;
256
257typedef struct g_surf
258{
260 int cols, rows;
261 gsurf_att att[MAX_ATTS]; /* mask, topo, color, etc. */
262 IFLAG draw_mode; /*DM_GOURAUD | DM_FRINGE | DM_POLY, DM_WIRE, DM_WIRE_POLY */
263 long wire_color; /* 0xBBGGRR or WC_COLOR_ATT */
264 double ox, oy; /* real world origin (i.e., SW corner) */
265 double xres, yres;
266 float z_exag;
271 int x_mod, y_mod, x_modw, y_modw; /*cells per viewcell, per wire viewcell */
272 int nz_topo, nz_color; /* no zero flags */
274 unsigned long *norms;
275 struct BM *curmask;
276 struct g_surf *next;
279
280/* maybe put attribute info here instead of in geovect - allow a single
281 vector file to have multiple attributes ? Cached lines should
282 usually be stored as 2d, since they may be draped on multiple
283 surfaces & Z will vary depending upon surface. */
284
285/* Struct for vector feature displaying attributes */
286typedef struct g_vect_style
287{
288 int color; /* Line color */
289 int symbol; /* Point symbol/line type */
290 float size; /* Symbol size. Unset for lines. */
291 int width; /* Line width. Also used for lines forming symbols i.e. X */
292
293 /*TODO:fill; Area fill pattern */
294 /*TODO:falpha; Area fill transparency */
295 /*TODO:lalpha; Line/boundary/point transparency */
296 /*TODO:struct *orientation; Symbol orientation */
297 struct g_vect_style *next; /* Point to next gvstyle struct if single point has multiple styles.
298 In such case feature with next style should be shifted. */
300
301/* Struct for vector map (thematic mapping) */
303{
305 int layer;
306
312
313/* Line instance */
314typedef struct g_line
315{
316 int type;
317 float norm[3];
318 int dims, npts;
321
322 struct line_cats *cats; /* Store information about all layers/cats for thematic display */
323 gvstyle *style; /* Line instance look&feel */
324 signed char highlighted; /* >0 Feature is highlighted */
325
326 struct g_line *next;
328
329/* Vector map (lines) */
330typedef struct g_vect
331{
334 int drape_surf_id[MAX_SURFS]; /* if you want 'em flat, define the surface */
335 int use_z;
337 char *filename;
339 /* also maybe center & rotate? */
342 int (*bgn_read) (), (*end_read) (), (*nxt_line) ();
343 struct g_vect *next;
345
346 gvstyle_thematic *tstyle; /* thematic mapping */
347 gvstyle *style; /* Vector default look&feel */
348 gvstyle *hstyle; /* IMHO highlight should be per layer basis. */
350
351/* Point instance */
352typedef struct g_point
353{
354 int dims;
356
357 struct line_cats *cats; /* Store information about all layers/cats for thematic display */
359 signed char highlighted; /* >0 Feature is highlighted */
360
361 struct g_point *next;
363
364/* Vector map (points) */
365typedef struct g_site
366{
368 int drape_surf_id[MAX_SURFS]; /* ditto */
371 int has_z; /* set when file loaded */
372
373 char *filename;
377 int (*bgn_read) (), (*end_read) (), (*nxt_site) ();
378 struct g_site *next;
380
381 gvstyle_thematic *tstyle; /* thematic mapping */
382 gvstyle *style; /* points default look&feel */
383 gvstyle *hstyle; /* IMHO highlight should be per layer basis */
385
386typedef struct
387{
388 int data_id; /* id */
389 IFLAG file_type; /* file type */
390 unsigned int count; /* number of referencies to this file */
391 char *file_name; /* file name */
392
394 void *map; /* pointer to volume file descriptor */
395 double min, max; /* minimum, maximum value in file */
396
397 IFLAG status; /* current status */
398 IFLAG mode; /* current read mode */
399
400 void *buff; /* data buffer */
402
403typedef struct
404{
406
407 int hfile;
408 int (*user_func) ();
409 float constant;
410
411 void *att_data;
414
415typedef struct
416{
419
421 unsigned char *data;
423
424typedef struct
425{
426 int dir;
427 float x1, x2, y1, y2, z1, z2;
428 unsigned char *data;
430
431 int mode, transp;
433
434typedef struct g_vol
435{
437 struct g_vol *next;
438
439 int hfile;
441 double ox, oy, oz;
442 double xres, yres, zres;
443 double xmin, xmax, ymin, ymax, zmin, zmax;
447
452
457
460
462{
463 float position[4]; /* X, Y, Z, (1=local/0=inf) */
464 float color[3]; /* R, G, B */
465 float ambient[3]; /* R, G, B */
466 float emission[3]; /* R, G, B */
467 float shine; /* 0. to 128. */
468};
469
470struct georot
471{
472 int do_rot; /* do rotation */
473 double rot_angle; /* rotation angle */
474 double rot_axes[3]; /* rotation axis */
475 GLdouble rotMatrix[16]; /* rotation matrix */
476};
477
478typedef struct
479{
480 int coord_sys; /* latlon, equal area, etc */
481 int view_proj; /* perspective, ortho */
482 int infocus; /* fixed center of view - true or false */
483 float from_to[2][4];
484 struct georot rotate;
485 int twist, fov, incl, look; /* 10ths of degrees */
486 float real_to[4], vert_exag; /* a global Z exag */
487 float scale;
488 struct lightdefs lights[MAX_LIGHTS];
489} geoview;
490
491typedef struct
492{ /* need to add elements here for off_screen drawing */
493 float nearclip, farclip, aspect;
494 short left, right, bottom, top; /* Screen coordinates */
495 int bgcol;
496} geodisplay;
497
498extern void (*Cxl_func) ();
499extern void (*Swap_func) ();
500
501/* Key frames */
502/* these have to be 1 << KF_id_index */
503
504#define KF_FROMX_MASK 0x00000001
505#define KF_FROMY_MASK 0x00000002
506#define KF_FROMZ_MASK 0x00000004
507#define KF_FROM_MASK 0x00000007
508
509#define KF_DIRX_MASK 0x00000008
510#define KF_DIRY_MASK 0x00000010
511#define KF_DIRZ_MASK 0x00000020
512#define KF_DIR_MASK 0x00000038
513
514#define KF_FOV_MASK 0x00000040
515#define KF_TWIST_MASK 0x00000080
516
517#define KF_ALL_MASK 0x000000FF
518
519#define KF_NUMFIELDS 8
520
521#define KF_LINEAR 111
522#define KF_SPLINE 222
523#define KF_LEGAL_MODE(m) (m == KF_LINEAR || m == KF_SPLINE)
524
525#define KF_FROMX 0
526#define KF_FROMY 1
527#define KF_FROMZ 2
528#define KF_DIRX 3
529#define KF_DIRY 4
530#define KF_DIRZ 5
531#define KF_FOV 6
532#define KF_TWIST 7
533
534#define FM_VECT 0x00000001
535#define FM_SITE 0x00000002
536#define FM_PATH 0x00000004
537#define FM_VOL 0x00000008
538#define FM_LABEL 0x00000010
539
540typedef struct view_node
541{
544
545typedef struct key_node
546{
549 unsigned long fieldmask;
550 struct key_node *next, *prior;
552
553/* Bring all the function prototypes */
554#include <grass/defs/ogsf.h>
555
556#endif /* GRASS_OGSF_H */
#define min(x, y)
Definition: draw2.c:31
static uint16 x2
Definition: lrand48.c:35
struct key_node Keylist
struct g_vol geovol
struct g_line geoline
struct g_vect geovect
#define MAX_ATTS
Definition: ogsf.h:43
#define MAX_ISOSURFS
Definition: ogsf.h:46
struct view_node Viewnode
struct g_surf geosurf
float Point2[2]
Definition: ogsf.h:202
float Point3[3]
Definition: ogsf.h:201
#define MAXDIMS
Definition: ogsf.h:173
#define IFLAG
Definition: ogsf.h:69
struct g_point geopoint
#define MAX_LIGHTS
Definition: ogsf.h:44
struct g_site geosite
#define MAX_SURFS
Definition: ogsf.h:38
struct g_vect_style_thematic gvstyle_thematic
void(* Cxl_func)()
Definition: gsx.c:21
struct g_vect_style gvstyle
float Point4[4]
Definition: ogsf.h:200
#define MAX_SLICES
Definition: ogsf.h:47
#define KF_NUMFIELDS
Definition: ogsf.h:519
void(* Swap_func)()
Definition: bitmap.h:18
Definition: ogsf.h:233
typbuff databuff
Definition: ogsf.h:239
int need_reload
Definition: ogsf.h:241
int data_id
Definition: ogsf.h:234
size_t numbytes
Definition: ogsf.h:237
int ndims
Definition: ogsf.h:236
char * unique_name
Definition: ogsf.h:238
unsigned int changed
Definition: ogsf.h:240
Definition: ogsf.h:315
signed char highlighted
Definition: ogsf.h:324
float norm[3]
Definition: ogsf.h:317
Point3 * p3
Definition: ogsf.h:319
struct g_line * next
Definition: ogsf.h:326
int npts
Definition: ogsf.h:318
gvstyle * style
Definition: ogsf.h:323
int type
Definition: ogsf.h:316
Point2 * p2
Definition: ogsf.h:320
int dims
Definition: ogsf.h:318
struct line_cats * cats
Definition: ogsf.h:322
Definition: ogsf.h:353
Point3 p3
Definition: ogsf.h:355
int dims
Definition: ogsf.h:354
struct g_point * next
Definition: ogsf.h:361
struct line_cats * cats
Definition: ogsf.h:357
gvstyle * style
Definition: ogsf.h:358
signed char highlighted
Definition: ogsf.h:359
Definition: ogsf.h:366
char * filename
Definition: ogsf.h:373
float z_trans
Definition: ogsf.h:375
struct g_site * next
Definition: ogsf.h:378
int drape_surf_id[12]
Definition: ogsf.h:368
int(*)(*) end_read()
Definition: ogsf.h:377
float y_trans
Definition: ogsf.h:375
int use_z
Definition: ogsf.h:370
float x_trans
Definition: ogsf.h:375
transform attr_trans
Definition: ogsf.h:374
int gsite_id
Definition: ogsf.h:367
int(*)(*)(*) nxt_site()
Definition: ogsf.h:377
int use_mem
Definition: ogsf.h:370
int(* bgn_read)()
Definition: ogsf.h:377
void * clientdata
Definition: ogsf.h:379
gvstyle * hstyle
Definition: ogsf.h:383
gvstyle_thematic * tstyle
Definition: ogsf.h:381
geopoint * points
Definition: ogsf.h:376
int n_sites
Definition: ogsf.h:369
int has_z
Definition: ogsf.h:371
gvstyle * style
Definition: ogsf.h:382
int n_surfs
Definition: ogsf.h:369
Definition: ogsf.h:258
float x_trans
Definition: ogsf.h:267
float ymax
Definition: ogsf.h:268
int nz_color
Definition: ogsf.h:272
int rows
Definition: ogsf.h:260
float ymin
Definition: ogsf.h:268
double yres
Definition: ogsf.h:265
float zrange_nz
Definition: ogsf.h:270
float yrange
Definition: ogsf.h:269
float xmax
Definition: ogsf.h:268
int cols
Definition: ogsf.h:260
double ox
Definition: ogsf.h:264
float xrange
Definition: ogsf.h:269
unsigned int draw_mode
Definition: ogsf.h:262
long wire_color
Definition: ogsf.h:263
unsigned long * norms
Definition: ogsf.h:274
float xmin
Definition: ogsf.h:268
gsurf_att att[7]
Definition: ogsf.h:261
int gsurf_id
Definition: ogsf.h:259
int y_mod
Definition: ogsf.h:271
int x_modw
Definition: ogsf.h:271
float zmax_nz
Definition: ogsf.h:270
int y_modw
Definition: ogsf.h:271
double xres
Definition: ogsf.h:265
struct BM * curmask
Definition: ogsf.h:275
int x_mod
Definition: ogsf.h:271
struct g_surf * next
Definition: ogsf.h:276
int norm_needupdate
Definition: ogsf.h:273
double oy
Definition: ogsf.h:264
float z_exag
Definition: ogsf.h:266
float zmin_nz
Definition: ogsf.h:270
int mask_needupdate
Definition: ogsf.h:273
int nz_topo
Definition: ogsf.h:272
float z_trans
Definition: ogsf.h:267
float zmin
Definition: ogsf.h:268
float zrange
Definition: ogsf.h:269
void * clientdata
Definition: ogsf.h:277
float zminmasked
Definition: ogsf.h:268
float zmax
Definition: ogsf.h:268
float y_trans
Definition: ogsf.h:267
char * symbol_column
Definition: ogsf.h:308
char * color_column
Definition: ogsf.h:307
char * size_column
Definition: ogsf.h:309
char * width_column
Definition: ogsf.h:310
int color
Definition: ogsf.h:288
struct g_vect_style * next
Definition: ogsf.h:297
int symbol
Definition: ogsf.h:289
float size
Definition: ogsf.h:290
int width
Definition: ogsf.h:291
Definition: ogsf.h:331
geoline * fastlines
Definition: ogsf.h:341
gvstyle * hstyle
Definition: ogsf.h:348
int(*)(*)(*) nxt_line()
Definition: ogsf.h:342
int use_mem
Definition: ogsf.h:333
char * filename
Definition: ogsf.h:337
float y_trans
Definition: ogsf.h:338
int(*)(*) end_read()
Definition: ogsf.h:342
int n_lines
Definition: ogsf.h:333
int n_surfs
Definition: ogsf.h:336
gvstyle_thematic * tstyle
Definition: ogsf.h:346
gvstyle * style
Definition: ogsf.h:347
float z_trans
Definition: ogsf.h:338
int drape_surf_id[12]
Definition: ogsf.h:334
int use_z
Definition: ogsf.h:335
float x_trans
Definition: ogsf.h:338
struct g_vect * next
Definition: ogsf.h:343
geoline * lines
Definition: ogsf.h:340
int(* bgn_read)()
Definition: ogsf.h:342
void * clientdata
Definition: ogsf.h:344
int gvect_id
Definition: ogsf.h:332
Definition: ogsf.h:435
double xmax
Definition: ogsf.h:443
int n_slices
Definition: ogsf.h:453
geovol_slice * slice[12]
Definition: ogsf.h:454
double yrange
Definition: ogsf.h:444
int hfile
Definition: ogsf.h:439
double oy
Definition: ogsf.h:441
int depths
Definition: ogsf.h:440
geovol_isosurf * isosurf[12]
Definition: ogsf.h:449
int slice_z_mod
Definition: ogsf.h:455
unsigned int slice_draw_mode
Definition: ogsf.h:456
unsigned int isosurf_draw_mode
Definition: ogsf.h:451
float x_trans
Definition: ogsf.h:445
double xrange
Definition: ogsf.h:444
int isosurf_z_mod
Definition: ogsf.h:450
int slice_y_mod
Definition: ogsf.h:455
double ymax
Definition: ogsf.h:443
double xmin
Definition: ogsf.h:443
int isosurf_y_mod
Definition: ogsf.h:450
double zres
Definition: ogsf.h:442
double ox
Definition: ogsf.h:441
struct g_vol * next
Definition: ogsf.h:437
double zmin
Definition: ogsf.h:443
void * clientdata
Definition: ogsf.h:458
int cols
Definition: ogsf.h:440
int isosurf_x_mod
Definition: ogsf.h:450
double zrange
Definition: ogsf.h:444
double ymin
Definition: ogsf.h:443
double yres
Definition: ogsf.h:442
float z_trans
Definition: ogsf.h:445
int gvol_id
Definition: ogsf.h:436
int draw_wire
Definition: ogsf.h:446
double oz
Definition: ogsf.h:441
double zmax
Definition: ogsf.h:443
int slice_x_mod
Definition: ogsf.h:455
float y_trans
Definition: ogsf.h:445
int n_isosurfs
Definition: ogsf.h:448
double xres
Definition: ogsf.h:442
int rows
Definition: ogsf.h:440
float aspect
Definition: ogsf.h:493
short bottom
Definition: ogsf.h:494
int bgcol
Definition: ogsf.h:495
Definition: ogsf.h:471
double rot_angle
Definition: ogsf.h:473
GLdouble rotMatrix[16]
Definition: ogsf.h:475
int do_rot
Definition: ogsf.h:472
double rot_axes[3]
Definition: ogsf.h:474
Definition: ogsf.h:479
int view_proj
Definition: ogsf.h:481
int fov
Definition: ogsf.h:485
float scale
Definition: ogsf.h:487
int coord_sys
Definition: ogsf.h:480
int infocus
Definition: ogsf.h:482
unsigned int mode
Definition: ogsf.h:398
char * file_name
Definition: ogsf.h:391
unsigned int data_type
Definition: ogsf.h:393
void * map
Definition: ogsf.h:394
unsigned int file_type
Definition: ogsf.h:389
unsigned int count
Definition: ogsf.h:390
double max
Definition: ogsf.h:395
unsigned int status
Definition: ogsf.h:397
void * buff
Definition: ogsf.h:400
int data_id
Definition: ogsf.h:388
void * att_data
Definition: ogsf.h:411
float constant
Definition: ogsf.h:409
unsigned int att_src
Definition: ogsf.h:405
unsigned char * data
Definition: ogsf.h:421
int inout_mode
Definition: ogsf.h:417
int data_desc
Definition: ogsf.h:420
unsigned char * data
Definition: ogsf.h:428
float x1
Definition: ogsf.h:427
int changed
Definition: ogsf.h:429
int dir
Definition: ogsf.h:426
int mode
Definition: ogsf.h:431
int hdata
Definition: ogsf.h:249
float max_nz
Definition: ogsf.h:253
float constant
Definition: ogsf.h:251
int * lookup
Definition: ogsf.h:252
unsigned int att_type
Definition: ogsf.h:248
float default_null
Definition: ogsf.h:254
unsigned int att_src
Definition: ogsf.h:247
Definition: ogsf.h:546
unsigned long fieldmask
Definition: ogsf.h:549
struct key_node * prior
Definition: ogsf.h:550
float pos
Definition: ogsf.h:547
struct key_node * next
Definition: ogsf.h:550
float fields[8]
Definition: ogsf.h:547
int look_ahead
Definition: ogsf.h:548
float emission[3]
Definition: ogsf.h:466
float ambient[3]
Definition: ogsf.h:465
float shine
Definition: ogsf.h:467
float position[4]
Definition: ogsf.h:463
float color[3]
Definition: ogsf.h:464
Feature category info.
Definition: dig_structs.h:1703
Definition: ogsf.h:217
int n_elem
Definition: ogsf.h:218
int * value
Definition: ogsf.h:220
char * index
Definition: ogsf.h:219
table256 lookup
Definition: ogsf.h:228
float mult
Definition: ogsf.h:226
int use_lookup
Definition: ogsf.h:227
float offset
Definition: ogsf.h:225
Definition: ogsf.h:205
float * fb
Definition: ogsf.h:206
struct BM * nm
Definition: ogsf.h:211
unsigned char * cb
Definition: ogsf.h:209
short * sb
Definition: ogsf.h:208
float k
Definition: ogsf.h:213
int * ib
Definition: ogsf.h:207
struct BM * bm
Definition: ogsf.h:210
float fields[8]
Definition: ogsf.h:542
static void transform(double *x, double *y, int ix, int iy, double orig_x, double orig_y)
Definition: text2.c:24