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