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