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