GRASS 8 Programmer's Manual 8.6.0dev(2026)-ddeab64dbf
Loading...
Searching...
No Matches
ogsf.h
Go to the documentation of this file.
1/*!
2 \file include/grass/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
204typedef float Point4[4];
205typedef float Point3[3];
206typedef float Point2[2];
207
208typedef 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
219typedef struct { /* use hash table? */
220 /** @brief if n_elem == 256, index == NULL */
222 char *index;
223 int *value;
224} table256;
225
226typedef struct { /* applied thusly: offset, mult, if(use_lookup) lookup */
227 float offset;
228 float mult;
231} transform;
232
233/* move this to dataset file? */
244
245/* maybe add transformation matrix? */
246typedef struct {
247 /** @brief NOTSET_ATT, MAP_ATT, CONST_ATT, FUNC_ATT */
249
250 /** @brief ATTY_INT, ATTY_SHORT, ATTY_CHAR, or ATTY_FLOAT */
252
253 /** @brief handle to dataset */
254 int hdata;
255
256 /** Not yet supported */
257 int (*user_func)(void);
258 float constant;
259
260 /** @todo: use transform instead */
261 int *lookup;
262 float min_nz, max_nz, range_nz;
264} gsurf_att;
265
266typedef struct g_surf {
268 int cols, rows;
269
270 /** @brief mask, topo, color, etc. */
272
273 /** @brief DM_GOURAUD | DM_FRINGE | DM_POLY, DM_WIRE, DM_WIRE_POLY */
275
276 /** @brief 0xBBGGRR or WC_COLOR_ATT */
278
279 /** @brief real world origin (i.e., SW corner) */
280 double ox, oy;
281 double xres, yres;
282 float z_exag;
287 /** @brief cells per viewcell, per wire viewcell */
289
290 /** @brief no zero flags */
293 unsigned long *norms;
294 struct BM *curmask;
295 struct g_surf *next;
298
299/* maybe put attribute info here instead of in geovect - allow a single
300 vector file to have multiple attributes ? Cached lines should
301 usually be stored as 2d, since they may be draped on multiple
302 surfaces & Z will vary depending upon surface. */
303
304/**
305 * @brief Struct for vector feature displaying attributes.
306 */
307typedef struct g_vect_style {
308 /** @brief Line color. */
309 int color;
310
311 /** @brief %Point symbol/line type. */
313
314 /** @brief Symbol size.
315 *
316 * Unset for lines.
317 */
318 float size;
319
320 /**
321 * @brief Line width.
322 *
323 * Also used for lines forming symbols i.e. X.
324 */
325 int width;
326
327 /*TODO:fill; Area fill pattern */
328 /*TODO:falpha; Area fill transparency */
329 /*TODO:lalpha; Line/boundary/point transparency */
330 /*TODO:struct *orientation; Symbol orientation */
331
332 /** @brief %Point to next \ref gvstyle struct if single point has multiple
333 * styles.
334 *
335 * In such case, the feature with next style should be shifted.
336 */
339
340/** @brief Struct for vector map (thematic mapping) */
350
351/** @brief Line instance */
352typedef struct g_line {
353 int type;
354 float norm[3];
355 int dims, npts;
358
359 /** @brief Store information about all layers/cats for thematic display */
361
362 /** @brief Line instance look&feel. */
364
365 /** @brief >0 Feature is highlighted. */
366 signed char highlighted;
367
368 struct g_line *next;
370
371/** @brief Vector map (lines) */
372typedef struct g_vect {
375
376 /** if you want 'em flat, define the surface */
378
379 int use_z;
381 char *filename;
383
384 /* also maybe center & rotate? */
387 int (*bgn_read)(void), (*end_read)(void), (*nxt_line)(void);
388 struct g_vect *next;
390
391 /** @brief thematic mapping */
393
394 /** @brief Vector default look&feel */
396 gvstyle *hstyle; /* IMHO highlight should be per layer basis. */
398
399/** @brief Point instance */
400typedef struct g_point {
401 int dims;
403
404 /** @brief Store information about all layers/cats for thematic display */
407
408 /** @brief >0 Feature is highlighted */
409 signed char highlighted;
410
411 struct g_point *next;
413
414/** @brief Vector map (points) */
415typedef struct g_site {
417 int drape_surf_id[MAX_SURFS]; /* ditto */
420
421 /** set when file loaded */
422 int has_z;
423
424 char *filename;
428 int (*bgn_read)(void), (*end_read)(void), (*nxt_site)(void);
429 struct g_site *next;
431
432 /** @brief thematic mapping */
434
435 /** @brief points default look&feel */
437 gvstyle *hstyle; /* IMHO highlight should be per layer basis */
439
440typedef struct {
441 /** @brief id */
443
444 /** @brief file type */
446
447 /** @brief number of referencies to this file */
448 unsigned int count;
449
450 /** @brief file name */
452
454
455 /** @brief pointer to volume file descriptor */
456 void *map;
457
458 /** @brief minimum, maximum value in file */
459 double min, max;
460
461 /** @brief current status */
463 /** @brief current read mode */
465
466 /** @brief data buffer */
467 void *buff;
469
470typedef struct {
472
473 int hfile;
474
475 /** unused */
476 int (*user_func)(void);
477 float constant;
478
479 void *att_data;
482
483typedef struct {
486
488 unsigned char *data;
490
491typedef struct {
492 int dir;
493 float x1, x2, y1, y2, z1, z2;
494 unsigned char *data;
496
497 int mode, transp;
499
525
526struct lightdefs {
527 /** @brief X, Y, Z, (1=local/0=inf) */
528 float position[4];
529
530 /** @brief R, G, B */
531 float color[3];
532
533 /** @brief R, G, B */
534 float ambient[3];
535
536 /** @brief R, G, B */
537 float emission[3];
538
539 /** @brief 0. to 128. */
540 float shine;
541};
542
543struct georot {
544 /** @brief do rotation */
546
547 /** @brief rotation angle */
548 double rot_angle;
549
550 /** @brief rotation axis */
551 double rot_axes[3];
552
553 /** @brief rotation matrix */
554 GLdouble rotMatrix[16];
555};
556
557typedef struct {
558 /** @brief latlon, equal area, etc */
560
561 /** @brief perspective, ortho */
563
564 /** @brief fixed center of view - true or false */
566 float from_to[2][4];
567 struct georot rotate;
568
569 /** @brief 10ths of degrees */
570 int twist, fov, incl, look;
571
572 /** @brief a global Z exag */
573 float real_to[4], vert_exag;
574 float scale;
575 struct lightdefs lights[MAX_LIGHTS];
576} geoview;
577
578typedef struct { /* need to add elements here for off_screen drawing */
579 float nearclip, farclip, aspect;
580
581 /** @brief Screen coordinates */
582 short left, right, bottom, top;
583 int bgcol;
584} geodisplay;
585
586extern void (*Cxl_func)(void);
587extern void (*Swap_func)(void); /* unused */
588
589/* Key frames */
590/* these have to be 1 << KF_id_index */
591
592#define KF_FROMX_MASK 0x00000001
593#define KF_FROMY_MASK 0x00000002
594#define KF_FROMZ_MASK 0x00000004
595#define KF_FROM_MASK 0x00000007
596
597#define KF_DIRX_MASK 0x00000008
598#define KF_DIRY_MASK 0x00000010
599#define KF_DIRZ_MASK 0x00000020
600#define KF_DIR_MASK 0x00000038
601
602#define KF_FOV_MASK 0x00000040
603#define KF_TWIST_MASK 0x00000080
604
605#define KF_ALL_MASK 0x000000FF
606
607#define KF_NUMFIELDS 8
608
609#define KF_LINEAR 111
610#define KF_SPLINE 222
611#define KF_LEGAL_MODE(m) (m == KF_LINEAR || m == KF_SPLINE)
612
613#define KF_FROMX 0
614#define KF_FROMY 1
615#define KF_FROMZ 2
616#define KF_DIRX 3
617#define KF_DIRY 4
618#define KF_DIRZ 5
619#define KF_FOV 6
620#define KF_TWIST 7
621
622#define FM_VECT 0x00000001
623#define FM_SITE 0x00000002
624#define FM_PATH 0x00000004
625#define FM_VOL 0x00000008
626#define FM_LABEL 0x00000010
627
631
632typedef struct key_node {
635 unsigned long fieldmask;
636 struct key_node *next, *prior;
638
639/* Bring all the function prototypes */
640#include <grass/defs/ogsf.h>
641
642#endif /* GRASS_OGSF_H */
#define min(x, y)
Definition draw2.c:29
struct key_node Keylist
struct g_vol geovol
struct g_line geoline
Line instance.
struct g_vect geovect
Vector map (lines)
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
Point instance.
#define MAX_LIGHTS
Definition ogsf.h:46
struct g_site geosite
Vector map (points)
#define MAX_SURFS
Definition ogsf.h:40
struct g_vect_style_thematic gvstyle_thematic
Struct for vector map (thematic mapping)
struct g_vect_style gvstyle
Struct for vector feature displaying attributes.
float Point4[4]
Definition ogsf.h:204
#define MAX_SLICES
Definition ogsf.h:49
#define KF_NUMFIELDS
Definition ogsf.h:607
Definition bitmap.h:17
typbuff databuff
Definition ogsf.h:240
int need_reload
Definition ogsf.h:242
int data_id
Definition ogsf.h:235
size_t numbytes
Definition ogsf.h:238
int ndims
Definition ogsf.h:237
char * unique_name
Definition ogsf.h:239
unsigned int changed
Definition ogsf.h:241
Line instance.
Definition ogsf.h:352
signed char highlighted
>0 Feature is highlighted.
Definition ogsf.h:366
float norm[3]
Definition ogsf.h:354
Point3 * p3
Definition ogsf.h:356
struct g_line * next
Definition ogsf.h:368
int npts
Definition ogsf.h:355
gvstyle * style
Line instance look&feel.
Definition ogsf.h:363
int type
Definition ogsf.h:353
Point2 * p2
Definition ogsf.h:357
int dims
Definition ogsf.h:355
struct line_cats * cats
Store information about all layers/cats for thematic display.
Definition ogsf.h:360
Point instance.
Definition ogsf.h:400
Point3 p3
Definition ogsf.h:402
int dims
Definition ogsf.h:401
struct g_point * next
Definition ogsf.h:411
struct line_cats * cats
Store information about all layers/cats for thematic display.
Definition ogsf.h:405
gvstyle * style
Definition ogsf.h:406
signed char highlighted
>0 Feature is highlighted
Definition ogsf.h:409
Vector map (points)
Definition ogsf.h:415
int(*)(*)(*) nxt_site(void)
Definition ogsf.h:428
char * filename
Definition ogsf.h:424
float z_trans
Definition ogsf.h:426
struct g_site * next
Definition ogsf.h:429
int drape_surf_id[12]
Definition ogsf.h:417
int(* bgn_read)(void)
Definition ogsf.h:428
float y_trans
Definition ogsf.h:426
int use_z
Definition ogsf.h:419
float x_trans
Definition ogsf.h:426
transform attr_trans
Definition ogsf.h:425
int gsite_id
Definition ogsf.h:416
int use_mem
Definition ogsf.h:419
int(*)(*) end_read(void)
Definition ogsf.h:428
void * clientdata
Definition ogsf.h:430
gvstyle * hstyle
Definition ogsf.h:437
gvstyle_thematic * tstyle
thematic mapping
Definition ogsf.h:433
geopoint * points
Definition ogsf.h:427
int n_sites
Definition ogsf.h:418
int has_z
Definition ogsf.h:422
gvstyle * style
points default look&feel
Definition ogsf.h:436
int n_surfs
Definition ogsf.h:418
Definition ogsf.h:266
float x_trans
Definition ogsf.h:283
float ymax
Definition ogsf.h:284
int nz_color
Definition ogsf.h:291
int rows
Definition ogsf.h:268
float ymin
Definition ogsf.h:284
double yres
Definition ogsf.h:281
float zrange_nz
Definition ogsf.h:286
float yrange
Definition ogsf.h:285
float xmax
Definition ogsf.h:284
int cols
Definition ogsf.h:268
double ox
real world origin (i.e., SW corner)
Definition ogsf.h:280
float xrange
Definition ogsf.h:285
unsigned int draw_mode
DM_GOURAUD | DM_FRINGE | DM_POLY, DM_WIRE, DM_WIRE_POLY.
Definition ogsf.h:274
long wire_color
0xBBGGRR or WC_COLOR_ATT
Definition ogsf.h:277
unsigned long * norms
Definition ogsf.h:293
float xmin
Definition ogsf.h:284
gsurf_att att[7]
mask, topo, color, etc.
Definition ogsf.h:271
int gsurf_id
Definition ogsf.h:267
int y_mod
Definition ogsf.h:288
int x_modw
Definition ogsf.h:288
float zmax_nz
Definition ogsf.h:286
int y_modw
Definition ogsf.h:288
double xres
Definition ogsf.h:281
struct BM * curmask
Definition ogsf.h:294
int x_mod
cells per viewcell, per wire viewcell
Definition ogsf.h:288
struct g_surf * next
Definition ogsf.h:295
int norm_needupdate
Definition ogsf.h:292
double oy
Definition ogsf.h:280
float z_exag
Definition ogsf.h:282
float zmin_nz
Definition ogsf.h:286
int mask_needupdate
Definition ogsf.h:292
int nz_topo
no zero flags
Definition ogsf.h:291
float z_trans
Definition ogsf.h:283
float zmin
Definition ogsf.h:284
float zrange
Definition ogsf.h:285
void * clientdata
Definition ogsf.h:296
float zminmasked
Definition ogsf.h:284
float zmax
Definition ogsf.h:284
float y_trans
Definition ogsf.h:283
Struct for vector map (thematic mapping)
Definition ogsf.h:341
char * symbol_column
Definition ogsf.h:346
char * color_column
Definition ogsf.h:345
char * width_column
Definition ogsf.h:348
Struct for vector feature displaying attributes.
Definition ogsf.h:307
int color
Line color.
Definition ogsf.h:309
struct g_vect_style * next
Point to next gvstyle struct if single point has multiple styles.
Definition ogsf.h:337
int symbol
Point symbol/line type.
Definition ogsf.h:312
float size
Symbol size.
Definition ogsf.h:318
int width
Line width.
Definition ogsf.h:325
Vector map (lines)
Definition ogsf.h:372
geoline * fastlines
Definition ogsf.h:386
gvstyle * hstyle
Definition ogsf.h:396
int use_mem
Definition ogsf.h:374
char * filename
Definition ogsf.h:381
float y_trans
Definition ogsf.h:382
int n_lines
Definition ogsf.h:374
int n_surfs
Definition ogsf.h:380
gvstyle_thematic * tstyle
thematic mapping
Definition ogsf.h:392
gvstyle * style
Vector default look&feel.
Definition ogsf.h:395
float z_trans
Definition ogsf.h:382
int(*)(*) end_read(void)
Definition ogsf.h:387
int drape_surf_id[12]
Definition ogsf.h:377
int use_z
Definition ogsf.h:379
float x_trans
Definition ogsf.h:382
struct g_vect * next
Definition ogsf.h:388
int(*)(*)(*) nxt_line(void)
Definition ogsf.h:387
geoline * lines
Definition ogsf.h:385
void * clientdata
Definition ogsf.h:389
int(* bgn_read)(void)
Definition ogsf.h:387
int gvect_id
Definition ogsf.h:373
Definition ogsf.h:500
double xmax
Definition ogsf.h:508
int n_slices
Definition ogsf.h:518
geovol_slice * slice[12]
Definition ogsf.h:519
double yrange
Definition ogsf.h:509
int hfile
Definition ogsf.h:504
double oy
Definition ogsf.h:506
int depths
Definition ogsf.h:505
geovol_isosurf * isosurf[12]
Definition ogsf.h:514
int slice_z_mod
Definition ogsf.h:520
unsigned int slice_draw_mode
Definition ogsf.h:521
unsigned int isosurf_draw_mode
Definition ogsf.h:516
float x_trans
Definition ogsf.h:510
double xrange
Definition ogsf.h:509
int isosurf_z_mod
Definition ogsf.h:515
int slice_y_mod
Definition ogsf.h:520
double ymax
Definition ogsf.h:508
double xmin
Definition ogsf.h:508
int isosurf_y_mod
Definition ogsf.h:515
double zres
Definition ogsf.h:507
double ox
Definition ogsf.h:506
struct g_vol * next
Definition ogsf.h:502
double zmin
Definition ogsf.h:508
void * clientdata
Definition ogsf.h:523
int cols
Definition ogsf.h:505
int isosurf_x_mod
Definition ogsf.h:515
double zrange
Definition ogsf.h:509
double ymin
Definition ogsf.h:508
double yres
Definition ogsf.h:507
float z_trans
Definition ogsf.h:510
int gvol_id
Definition ogsf.h:501
int draw_wire
Definition ogsf.h:511
double oz
Definition ogsf.h:506
double zmax
Definition ogsf.h:508
int slice_x_mod
Definition ogsf.h:520
float y_trans
Definition ogsf.h:510
int n_isosurfs
Definition ogsf.h:513
double xres
Definition ogsf.h:507
int rows
Definition ogsf.h:505
float aspect
Definition ogsf.h:579
short bottom
Definition ogsf.h:582
int bgcol
Definition ogsf.h:583
Definition ogsf.h:543
double rot_angle
rotation angle
Definition ogsf.h:548
GLdouble rotMatrix[16]
rotation matrix
Definition ogsf.h:554
int do_rot
do rotation
Definition ogsf.h:545
double rot_axes[3]
rotation axis
Definition ogsf.h:551
int view_proj
perspective, ortho
Definition ogsf.h:562
int fov
Definition ogsf.h:570
float scale
Definition ogsf.h:574
int coord_sys
latlon, equal area, etc
Definition ogsf.h:559
int infocus
fixed center of view - true or false
Definition ogsf.h:565
unsigned int mode
current read mode
Definition ogsf.h:464
char * file_name
file name
Definition ogsf.h:451
unsigned int data_type
Definition ogsf.h:453
void * map
pointer to volume file descriptor
Definition ogsf.h:456
unsigned int file_type
file type
Definition ogsf.h:445
unsigned int count
number of referencies to this file
Definition ogsf.h:448
double max
Definition ogsf.h:459
unsigned int status
current status
Definition ogsf.h:462
void * buff
data buffer
Definition ogsf.h:467
int data_id
id
Definition ogsf.h:442
void * att_data
Definition ogsf.h:479
unsigned int att_src
Definition ogsf.h:471
unsigned char * data
Definition ogsf.h:488
int inout_mode
Definition ogsf.h:484
int data_desc
Definition ogsf.h:487
unsigned char * data
Definition ogsf.h:494
float x1
Definition ogsf.h:493
int changed
Definition ogsf.h:495
int dir
Definition ogsf.h:492
int mode
Definition ogsf.h:497
int hdata
handle to dataset
Definition ogsf.h:254
float max_nz
Definition ogsf.h:262
float constant
Definition ogsf.h:258
int * lookup
Definition ogsf.h:261
unsigned int att_type
ATTY_INT, ATTY_SHORT, ATTY_CHAR, or ATTY_FLOAT.
Definition ogsf.h:251
float default_null
Definition ogsf.h:263
unsigned int att_src
NOTSET_ATT, MAP_ATT, CONST_ATT, FUNC_ATT.
Definition ogsf.h:248
unsigned long fieldmask
Definition ogsf.h:635
struct key_node * prior
Definition ogsf.h:636
float pos
Definition ogsf.h:633
struct key_node * next
Definition ogsf.h:636
float fields[8]
Definition ogsf.h:633
int look_ahead
Definition ogsf.h:634
float emission[3]
R, G, B.
Definition ogsf.h:537
float ambient[3]
R, G, B.
Definition ogsf.h:534
float shine
0. to 128.
Definition ogsf.h:540
float position[4]
X, Y, Z, (1=local/0=inf)
Definition ogsf.h:528
float color[3]
R, G, B.
Definition ogsf.h:531
Feature category info.
int n_elem
if n_elem == 256, index == NULL
Definition ogsf.h:221
int * value
Definition ogsf.h:223
char * index
Definition ogsf.h:222
table256 lookup
Definition ogsf.h:230
float mult
Definition ogsf.h:228
int use_lookup
Definition ogsf.h:229
float offset
Definition ogsf.h:227
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[8]
Definition ogsf.h:629