|
GRASS 8 Programmer's Manual 8.6.0dev(2026)-56a9afeb9f
|
OGSF library - loading and manipulating volumes. More...
#include <string.h>#include <grass/gis.h>#include <grass/raster3d.h>#include <grass/ogsf.h>#include <grass/glocale.h>#include "gsget.h"
Go to the source code of this file.
Functions | |
| void | GVL_libinit (void) |
| Library initialization for volumes. | |
| void | GVL_init_region (void) |
| Initialize 3D region. | |
| int | GVL_get_region (float *n, float *s, float *w, float *e, float *t, float *b) |
| Get region extent settings. | |
| void * | GVL_get_window (void) |
| Get window. | |
| int | GVL_vol_exists (int id) |
| Check if volume set exists. | |
| int | GVL_new_vol (void) |
| Create new volume set. | |
| int | GVL_num_vols (void) |
| Get number of loaded volume sets. | |
| int * | GVL_get_vol_list (int *numvols) |
| Get list of loaded volume sets. | |
| int | GVL_delete_vol (int id) |
| Delete volume set from list. | |
| int | GVL_load_vol (int id, const char *filename) |
| Load 3d raster map to volume set. | |
| int | GVL_get_volname (int id, char *filename) |
| Get volume set name. | |
| void | GVL_get_dims (int id, int *rows, int *cols, int *depths) |
| Get volume dimensions. | |
| void | GVL_set_trans (int id, float xtrans, float ytrans, float ztrans) |
| Set trans ? | |
| int | GVL_get_trans (int id, float *xtrans, float *ytrans, float *ztrans) |
| Get trans ? | |
| void | GVL_set_draw_wire (int id, int draw_wire) |
| Set drawing wire box. | |
| void | GVL_draw_vol (int vid) |
| Draw volume set. | |
| void | GVL_draw_wire (int id) |
| Draw volume in wire mode. | |
| void | GVL_alldraw_vol (void) |
| Draw all volume sets. | |
| void | GVL_alldraw_wire (void) |
| Draw all volume sets in wire mode. | |
| int | GVL_Set_ClientData (int id, void *clientd) |
| Set client data for volume set. | |
| void * | GVL_Get_ClientData (int id) |
| Get client data. | |
| void | GVL_set_focus_center_map (int id) |
| Set focus on map center. | |
| void | GVL_isosurf_get_drawres (int id, int *xres, int *yres, int *zres) |
| Get draw resolution for isosurface. | |
| int | GVL_isosurf_set_drawres (int id, int xres, int yres, int zres) |
| Set isosurface draw resolution. | |
| int | GVL_isosurf_get_drawmode (int id, int *mode) |
| Get isosurface draw mode. | |
| int | GVL_isosurf_set_drawmode (int id, int mode) |
| Set isosurface draw mode. | |
| int | GVL_isosurf_add (int id) |
| Add isosurface. | |
| int | GVL_isosurf_del (int id, int isosurf_id) |
| Delete isosurface. | |
| int | GVL_isosurf_move_up (int id, int isosurf_id) |
| Move up isosurface in list. | |
| int | GVL_isosurf_move_down (int id, int isosurf_id) |
| Move down isosurface in list. | |
| int | GVL_isosurf_get_att (int id, int isosurf_id, int att, int *set, float *constant, char *mapname) |
| Get isosurface attributes. | |
| int | GVL_isosurf_unset_att (int id, int isosurf_id, int att) |
| Unset isosurface attributes. | |
| int | GVL_isosurf_set_att_const (int id, int isosurf_id, int att, float constant) |
| Set constant isosurface attribute. | |
| int | GVL_isosurf_set_att_map (int id, int isosurf_id, int att, const char *filename) |
| Set isosurface map attribute. | |
| int | GVL_isosurf_get_flags (int id, int isosurf_id, int *inout) |
| Get isosurface flags. | |
| int | GVL_isosurf_set_flags (int id, int isosurf_id, int inout) |
| Set isosurface flags. | |
| int | GVL_isosurf_num_isosurfs (int id) |
| Get number of available isosurfaces. | |
| int | GVL_isosurf_set_maskmode (int id, int isosurf_id, int mode) |
| Set mask attribute mode. | |
| int | GVL_isosurf_get_maskmode (int id, int isosurf_id, int *mode) |
| Get isosurface mask mode. | |
| void | GVL_slice_get_drawres (int id, int *xres, int *yres, int *zres) |
| Get draw resolution of slice. | |
| int | GVL_slice_set_drawres (int id, int xres, int yres, int zres) |
| Set slice draw resolution. | |
| int | GVL_slice_get_drawmode (int id, int *mode) |
| Get slice draw mode. | |
| int | GVL_slice_set_drawmode (int id, int mode) |
| Set slice draw mode. | |
| int | GVL_slice_add (int id) |
| Add slice. | |
| int | GVL_slice_del (int id, int slice_id) |
| Delete slice. | |
| int | GVL_slice_move_up (int id, int slice_id) |
| Move up slice. | |
| int | GVL_slice_move_down (int id, int slice_id) |
| Move down slice. | |
| int | GVL_slice_num_slices (int id) |
| Get number or slices. | |
| int | GVL_slice_get_pos (int id, int slice_id, float *x1, float *x2, float *y1, float *y2, float *z1, float *z2, int *dir) |
| Get slice position. | |
| int | GVL_slice_set_pos (int id, int slice_id, float x1, float x2, float y1, float y2, float z1, float z2, int dir) |
| Get slice position. | |
| int | GVL_slice_get_transp (int id, int slice_id, int *transp) |
| Get slice trans ? | |
| int | GVL_slice_set_transp (int id, int slice_id, int transp) |
| Set slice trans ? | |
OGSF library - loading and manipulating volumes.
GRASS OpenGL gsurf OGSF Library
(C) 1999-2008 by the GRASS Development Team
This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.
Definition in file gvl2.c.
Draw all volume sets.
Definition at line 447 of file gvl2.c.
References GVL_draw_vol().
Referenced by gk_follow_frames(), and GK_show_vol().
Draw all volume sets in wire mode.
Definition at line 461 of file gvl2.c.
References GVL_draw_wire().
Referenced by Nviz_draw_quick().
Delete volume set from list.
| id | volume set id |
Definition at line 210 of file gvl2.c.
References G_debug(), gvl_delete_vol(), GVL_isosurf_del(), GVL_isosurf_num_isosurfs(), GVL_slice_del(), GVL_slice_num_slices(), and GVL_vol_exists().
Referenced by Nviz_new_map_obj().
Draw volume set.
| vid | volume set id |
Definition at line 408 of file gvl2.c.
References gvl_get_vol(), gvld_vol(), and gvld_wind3_box().
Referenced by GVL_alldraw_vol(), and Nviz_draw_all_vol().
Draw volume in wire mode.
| id | volume set id |
Definition at line 429 of file gvl2.c.
References G_debug(), gvl_get_vol(), and gvld_wire_vol().
Referenced by GVL_alldraw_wire().
Get client data.
| id | volume set id |
Definition at line 504 of file gvl2.c.
References gvl_get_vol(), and NULL.
Get volume dimensions.
| id | volume set id | |
| [out] | rows,cols,depths | number of rows, cols, depths |
Definition at line 309 of file gvl2.c.
References G_debug(), and gvl_get_vol().
Referenced by Nviz_set_volume_attr_default().
Get trans ?
| id | volume set id | |
| [out] | xtrans,ytrans,ztrans | x/y/z trans values |
Definition at line 365 of file gvl2.c.
References gvl_get_vol().
Get list of loaded volume sets.
Must be freed if not needed!
| [out] | numvols | number of volume sets |
Definition at line 181 of file gvl2.c.
References G_malloc, and NULL.
Referenced by Nviz_draw_all_vol(), and Nviz_set_focus_map().
Get volume set name.
| id | volume set id | |
| [out] | filename | name (must be allocated) |
Definition at line 286 of file gvl2.c.
References gvl_file_get_name(), gvl_get_vol(), NULL, and strcpy.
Initialize 3D region.
Set region extent (N,S,W,E,T,B)
Definition at line 57 of file gvl2.c.
References NULL, and Rast3d_read_window().
Add isosurface.
| id | volume set id |
Definition at line 667 of file gvl2.c.
References G_debug(), G_malloc, gvl_get_vol(), gvl_isosurf_init(), and MAX_ISOSURFS.
Delete isosurface.
| id | volume set id |
| isosurf_id | isosurface id |
Definition at line 704 of file gvl2.c.
References G_debug(), G_free(), gvl_get_vol(), gvl_isosurf_freemem(), and gvl_isosurf_get_isosurf().
Referenced by GVL_delete_vol().
| int GVL_isosurf_get_att | ( | int | id, |
| int | isosurf_id, | ||
| int | att, | ||
| int * | set, | ||
| float * | constant, | ||
| char * | mapname | ||
| ) |
Get isosurface attributes.
| id | volume set id | |
| isosurf_id | surface id | |
| att | attribute id | |
| [out] | set | |
| [out] | constant | |
| [out] | mapname |
Definition at line 815 of file gvl2.c.
References geovol_isosurf::att, CONST_ATT, geovol_isosurf_att::constant, G_debug(), gvl_file_get_name(), gvl_isosurf_get_att_src(), gvl_isosurf_get_isosurf(), geovol_isosurf_att::hfile, MAP_ATT, and strcpy.
Get isosurface draw mode.
| id | volume set id | |
| [out] | mode | draw-mode |
Definition at line 618 of file gvl2.c.
References gvl_get_vol().
Get draw resolution for isosurface.
| id | volume set id | |
| [out] | xres,yres,zres | x/y/z resolution value |
Definition at line 555 of file gvl2.c.
References G_debug(), and gvl_get_vol().
Get isosurface flags.
| id | volume set id | |
| isosurf_id | isosurface id | |
| [out] | inout | map name |
Definition at line 957 of file gvl2.c.
References G_debug(), gvl_isosurf_get_isosurf(), and geovol_isosurf::inout_mode.
Get isosurface mask mode.
| id | volume set id |
| isosurf_id | isosurface id |
| mode | attribute mode |
Definition at line 1062 of file gvl2.c.
References geovol_isosurf::att, ATT_MASK, geovol_isosurf_att::constant, and gvl_isosurf_get_isosurf().
Move down isosurface in list.
| id | volume set id |
| isosurf_id | isosurface id |
Definition at line 777 of file gvl2.c.
References G_debug(), and gvl_get_vol().
Move up isosurface in list.
| id | volume set id |
| isosurf_id | isosurface id |
Definition at line 743 of file gvl2.c.
References G_debug(), and gvl_get_vol().
Get number of available isosurfaces.
| id | volume set id |
Definition at line 1008 of file gvl2.c.
References G_debug(), and gvl_get_vol().
Referenced by GVL_delete_vol().
Set constant isosurface attribute.
Attributes:
| id | volume set id |
| isosurf_id | isosurface id (0 - MAX_ISOSURFS) |
| att | attribute descriptor |
| constant | constant value |
Definition at line 890 of file gvl2.c.
References G_debug(), gvl_isosurf_get_isosurf(), and gvl_isosurf_set_att_const().
Set isosurface map attribute.
Attributes:
| id | volume set id |
| isosurf_id | isosurface id (0 - MAX_ISOSURFS) |
| att | attribute descriptor |
| filename | map name |
Definition at line 928 of file gvl2.c.
References G_debug(), gvl_isosurf_get_isosurf(), and gvl_isosurf_set_att_map().
Set isosurface draw mode.
| id | volume set id |
| mode | draw mode |
Definition at line 642 of file gvl2.c.
References G_debug(), and gvl_get_vol().
Referenced by Nviz_set_volume_attr_default().
Set isosurface draw resolution.
| id | volume set id |
| xres,yres,zres | x/y/z resolution value |
Definition at line 581 of file gvl2.c.
References ATT_TOPO, G_debug(), gvl_get_vol(), and gvl_isosurf_set_att_changed().
Referenced by Nviz_set_volume_attr_default().
Set isosurface flags.
| id | volume set id |
| isosurf_id | isosurface id |
| inout | map name |
Definition at line 983 of file gvl2.c.
References G_debug(), gvl_isosurf_get_isosurf(), and geovol_isosurf::inout_mode.
Set mask attribute mode.
Mask attribute special: constant is set to indicate invert or no
| id | volume set id |
| isosurf_id | isosurface id |
| mode | attribute mode |
Definition at line 1035 of file gvl2.c.
References geovol_isosurf::att, ATT_MASK, geovol_isosurf_att::constant, G_debug(), and gvl_isosurf_get_isosurf().
Unset isosurface attributes.
| id | volume set id |
| isosurf_id | isosurface id |
| att | attribute id |
Definition at line 855 of file gvl2.c.
References G_debug(), gvl_isosurf_get_isosurf(), gvl_isosurf_set_att_src(), and NOTSET_ATT.
Library initialization for volumes.
Set region extent (N,S,W,E,T,B)
Definition at line 37 of file gvl2.c.
References Rast3d_get_window(), and Rast3d_init_defaults().
Load 3d raster map to volume set.
| id | volume set id |
| filename | 3d raster map name |
Definition at line 256 of file gvl2.c.
References _, G_debug(), G_message(), gvl_file_newh(), gvl_get_vol(), NULL, and VOL_FTYPE_RASTER3D.
Referenced by Nviz_new_map_obj().
Create new volume set.
Definition at line 136 of file gvl2.c.
References G_debug(), gvl_get_new_vol(), gvl_init_vol(), and MAX_VOLS.
Referenced by Nviz_new_map_obj().
Get number of loaded volume sets.
Definition at line 166 of file gvl2.c.
References gvl_num_vols().
Referenced by Nviz_new_map_obj(), and Nviz_set_focus_map().
Set client data for volume set.
| id | volume set id |
| clientd | pointer to client data |
Definition at line 481 of file gvl2.c.
References gvl_get_vol().
Set drawing wire box.
| id | volume set id |
| draw_wire | 1 for drawing wire, 0 otherwise |
Definition at line 388 of file gvl2.c.
References G_debug(), and gvl_get_vol().
Set focus on map center.
| id | volume set id |
Definition at line 522 of file gvl2.c.
References G_debug(), GS_set_focus(), gvl_get_vol(), X, Y, and Z.
Referenced by Nviz_set_focus_map().
Set trans ?
| id | volume set id |
| xtrans,ytrans,ztrans | x/y/z trans values |
Definition at line 339 of file gvl2.c.
References G_debug(), and gvl_get_vol().
Add slice.
| id | volume set id |
Definition at line 1200 of file gvl2.c.
References G_debug(), G_malloc, gvl_get_vol(), gvl_slice_init(), MAX_SLICES, and NULL.
Delete slice.
| id | volume set id |
| slice_id | slice id |
Definition at line 1236 of file gvl2.c.
References G_debug(), G_free(), gvl_get_vol(), gvl_slice_freemem(), and gvl_slice_get_slice().
Referenced by GVL_delete_vol().
Get slice draw mode.
| id | volume set id | |
| [out] | mode | draw mode |
Definition at line 1151 of file gvl2.c.
References gvl_get_vol().
Get draw resolution of slice.
| id | volume set id | |
| [out] | xres,yres,zres | x/y/z resolution value |
Definition at line 1088 of file gvl2.c.
References G_debug(), and gvl_get_vol().
| int GVL_slice_get_pos | ( | int | id, |
| int | slice_id, | ||
| float * | x1, | ||
| float * | x2, | ||
| float * | y1, | ||
| float * | y2, | ||
| float * | z1, | ||
| float * | z2, | ||
| int * | dir | ||
| ) |
Get slice position.
| id | volume set id | |
| slice_id | slice id | |
| [out] | x1,y1,z1 | coordinates ? |
| [out] | x2,y2,z2 | coordinates ? |
| [out] | dir | direction |
Definition at line 1369 of file gvl2.c.
References geovol_slice::dir, gvl_get_vol(), gvl_slice_get_slice(), X, geovol_slice::x1, geovol_slice::x2, Y, geovol_slice::y1, geovol_slice::y2, Z, geovol_slice::z1, and geovol_slice::z2.
Get slice trans ?
| id | volume set id | |
| slice_id | slice id | |
| [out] | transp | transp value |
Definition at line 1489 of file gvl2.c.
References G_debug(), gvl_slice_get_slice(), and geovol_slice::transp.
Move down slice.
| id | volume set id |
| slice_id | slice id |
Definition at line 1309 of file gvl2.c.
References G_debug(), and gvl_get_vol().
Move up slice.
| id | volume set id |
| slice_id | slice id |
Definition at line 1275 of file gvl2.c.
References G_debug(), and gvl_get_vol().
Get number or slices.
| id | volume set id |
Definition at line 1342 of file gvl2.c.
References G_debug(), and gvl_get_vol().
Referenced by GVL_delete_vol().
Set slice draw mode.
| id | volume set id |
| mode | draw mode |
Definition at line 1175 of file gvl2.c.
References G_debug(), and gvl_get_vol().
Referenced by Nviz_set_volume_attr_default().
Set slice draw resolution.
| id | volume set id |
| xres,yres,zres | x/y/z resolution value |
Definition at line 1114 of file gvl2.c.
References G_debug(), and gvl_get_vol().
Referenced by Nviz_set_volume_attr_default().
| int GVL_slice_set_pos | ( | int | id, |
| int | slice_id, | ||
| float | x1, | ||
| float | x2, | ||
| float | y1, | ||
| float | y2, | ||
| float | z1, | ||
| float | z2, | ||
| int | dir | ||
| ) |
Get slice position.
| id | volume set id |
| slice_id | slice id |
| x1,y1,z1 | coordinates ? |
| x2,y2,z2 | coordinates ? |
| dir | direction |
Definition at line 1429 of file gvl2.c.
References geovol_slice::changed, geovol_slice::dir, gvl_get_vol(), gvl_slice_get_slice(), X, geovol_slice::x1, geovol_slice::x2, Y, geovol_slice::y1, geovol_slice::y2, Z, geovol_slice::z1, and geovol_slice::z2.
Set slice trans ?
| id | volume set id |
| slice_id | slice id |
| transp | transp value |
Definition at line 1515 of file gvl2.c.
References G_debug(), gvl_slice_get_slice(), and geovol_slice::transp.
Check if volume set exists.
| id | volume set id |
Definition at line 111 of file gvl2.c.
References G_debug(), gvl_get_vol(), and NULL.
Referenced by GVL_delete_vol().