|
GRASS 8 Programmer's Manual
8.5.0dev(2025)-9d806b45d8
|
OGSF library - loading and manipulating volumes (lower level functions) More...
#include <math.h>#include <grass/gis.h>#include <grass/ogsf.h>#include "rgbpack.h"#include "mc33_table.h"
Go to the source code of this file.
Macros | |
| #define | BUFFER_SIZE 1000000 |
| memory buffer for writing More... | |
| #define | LINTERP(d, a, b) (a + d * (b - a)) |
| #define | TINTERP(d, v) |
| #define | FOR_VAR i_for |
| #define | FOR_0_TO_N(n, cmd) |
| #define | WRITE(c) gvl_write_char(dbuff->ndx_new++, &(dbuff->new), c) |
| writing and reading isosurface data More... | |
| #define | READ() gvl_read_char(dbuff->ndx_old++, dbuff->old) |
| #define | SKIP(n) dbuff->ndx_old = dbuff->ndx_old + n |
| #define | IS_IN_DATA(att) ((isosurf->data_desc >> att) & 1) |
| check and set data descriptor More... | |
| #define | SET_IN_DATA(att) isosurf->data_desc = (isosurf->data_desc | (1 << att)) |
| #define | DISTANCE_2(x1, y1, x2, y2) sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) |
| #define | SLICE_MODE_INTERP_NO 0 |
| #define | SLICE_MODE_INTERP_YES 1 |
Functions | |
| int | mc33_process_cube (int c_ndx, float *v) |
| ADD. More... | |
| void | iso_w_cndx (int ndx, data_buffer *dbuff) |
| Write cube index. More... | |
| int | iso_r_cndx (data_buffer *dbuff) |
| Read cube index. More... | |
| int | iso_get_cube_value (geovol_isosurf *isosurf, int desc, int x, int y, int z, float *v) |
| Get value from data input. More... | |
| void | iso_get_range (geovol_isosurf *isosurf, int desc, double *min, double *max) |
| Get volume file values range. More... | |
| int | iso_get_cube_values (geovol_isosurf *isosurf, int desc, int x, int y, int z, float *v) |
| Read values for cube. More... | |
| void | iso_get_cube_grads (geovol_isosurf *isosurf, int x, int y, int z, float(*grad)[3]) |
| Calculate cube grads. More... | |
| void | iso_calc_cube (geovol_isosurf *isosurf, int x, int y, int z, data_buffer *dbuff) |
| Process cube. More... | |
| int | gvl_isosurf_calc (geovol *gvol) |
| Fill data structure with computed isosurfaces polygons. More... | |
| void | gvl_write_char (int pos, unsigned char **data, unsigned char c) |
| ADD. More... | |
| unsigned char | gvl_read_char (int pos, const unsigned char *data) |
| Read char. More... | |
| void | gvl_align_data (int pos, unsigned char **data) |
| Append data to buffer. More... | |
| float | slice_get_value (geovol *gvl, int x, int y, int z) |
| Get volume value. More... | |
| int | slice_calc (geovol *gvl, int ndx_slc, void *colors) |
| Calculate slices. More... | |
| int | gvl_slices_calc (geovol *gvol) |
| Calculate slices for given volume set. More... | |
Variables | |
| int | Rows |
| int | Cols |
| int | Depths |
| double | ResX |
| double | ResY |
| double | ResZ |
OGSF library - loading and manipulating volumes (lower level functions)
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 gvl_calc.c.
| #define BUFFER_SIZE 1000000 |
memory buffer for writing
Definition at line 31 of file gvl_calc.c.
| #define DISTANCE_2 | ( | x1, | |
| y1, | |||
| x2, | |||
| y2 | |||
| ) | sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) |
Definition at line 806 of file gvl_calc.c.
| #define FOR_0_TO_N | ( | n, | |
| cmd | |||
| ) |
Definition at line 47 of file gvl_calc.c.
| #define FOR_VAR i_for |
Definition at line 46 of file gvl_calc.c.
| #define IS_IN_DATA | ( | att | ) | ((isosurf->data_desc >> att) & 1) |
check and set data descriptor
Definition at line 65 of file gvl_calc.c.
Definition at line 36 of file gvl_calc.c.
| #define READ | ( | ) | gvl_read_char(dbuff->ndx_old++, dbuff->old) |
Definition at line 59 of file gvl_calc.c.
| #define SET_IN_DATA | ( | att | ) | isosurf->data_desc = (isosurf->data_desc | (1 << att)) |
Definition at line 66 of file gvl_calc.c.
| #define SKIP | ( | n | ) | dbuff->ndx_old = dbuff->ndx_old + n |
Definition at line 60 of file gvl_calc.c.
| #define SLICE_MODE_INTERP_NO 0 |
Definition at line 809 of file gvl_calc.c.
| #define SLICE_MODE_INTERP_YES 1 |
Definition at line 810 of file gvl_calc.c.
| #define TINTERP | ( | d, | |
| v | |||
| ) |
Definition at line 37 of file gvl_calc.c.
| #define WRITE | ( | c | ) | gvl_write_char(dbuff->ndx_new++, &(dbuff->new), c) |
writing and reading isosurface data
Definition at line 58 of file gvl_calc.c.
| void gvl_align_data | ( | int | pos, |
| unsigned char ** | data | ||
| ) |
Append data to buffer.
| pos | position index |
| data | data buffer |
Definition at line 777 of file gvl_calc.c.
| int gvl_isosurf_calc | ( | geovol * | gvol | ) |
Fill data structure with computed isosurfaces polygons.
| gvol | pointer to geovol struct |
Definition at line 585 of file gvl_calc.c.
References x.
Referenced by gvld_vol().
| unsigned char gvl_read_char | ( | int | pos, |
| const unsigned char * | data | ||
| ) |
Read char.
| pos | position index |
| data | data buffer |
Definition at line 763 of file gvl_calc.c.
| int gvl_slices_calc | ( | geovol * | gvol | ) |
Calculate slices for given volume set.
| gvol | pointer to geovol struct |
Definition at line 1038 of file gvl_calc.c.
Referenced by gvld_vol().
| void gvl_write_char | ( | int | pos, |
| unsigned char ** | data, | ||
| unsigned char | c | ||
| ) |
| void iso_calc_cube | ( | geovol_isosurf * | isosurf, |
| int | x, | ||
| int | y, | ||
| int | z, | ||
| data_buffer * | dbuff | ||
| ) |
| void iso_get_cube_grads | ( | geovol_isosurf * | isosurf, |
| int | x, | ||
| int | y, | ||
| int | z, | ||
| float(*) | grad[3] | ||
| ) |
Calculate cube grads.
| isosurf | |
| x,y,z | |
| grad |
Definition at line 251 of file gvl_calc.c.
References ATT_TOPO, Cols, Depths, iso_get_cube_value(), Rows, and x.
| int iso_get_cube_value | ( | geovol_isosurf * | isosurf, |
| int | desc, | ||
| int | x, | ||
| int | y, | ||
| int | z, | ||
| float * | v | ||
| ) |
Get value from data input.
| isosurf | ||
| desc | ||
| x,y,z | ||
| [out] | v | value |
Definition at line 161 of file gvl_calc.c.
Referenced by iso_get_cube_grads(), and iso_get_cube_values().
| int iso_get_cube_values | ( | geovol_isosurf * | isosurf, |
| int | desc, | ||
| int | x, | ||
| int | y, | ||
| int | z, | ||
| float * | v | ||
| ) |
Read values for cube.
| isosurf | ||
| desc | ||
| x,y,z | ||
| [out] | v |
Definition at line 228 of file gvl_calc.c.
References iso_get_cube_value(), and x.
| void iso_get_range | ( | geovol_isosurf * | isosurf, |
| int | desc, | ||
| double * | min, | ||
| double * | max | ||
| ) |
Get volume file values range.
| isosurf | ||
| desc | ||
| [out] | min | |
| [out] | max |
Definition at line 212 of file gvl_calc.c.
References geovol_isosurf::att, gvl_file_get_min_max(), gvl_file_get_volfile(), geovol_isosurf_att::hfile, max, and min.
| int iso_r_cndx | ( | data_buffer * | dbuff | ) |
| void iso_w_cndx | ( | int | ndx, |
| data_buffer * | dbuff | ||
| ) |
| int mc33_process_cube | ( | int | c_ndx, |
| float * | v | ||
| ) |
| int slice_calc | ( | geovol * | gvl, |
| int | ndx_slc, | ||
| void * | colors | ||
| ) |
Calculate slices.
| gvl | pointer to geovol struct |
| ndx_slc | |
| colors |
Definition at line 859 of file gvl_calc.c.
| float slice_get_value | ( | geovol * | gvl, |
| int | x, | ||
| int | y, | ||
| int | z | ||
| ) |
Get volume value.
| gvl | pointer to geovol struct |
| x,y,z |
Definition at line 820 of file gvl_calc.c.
| int Cols |
Definition at line 79 of file gvl_calc.c.
Referenced by alloc_slice_buff(), alloc_vol_buff(), get_slice_value(), get_vol_value(), and iso_get_cube_grads().
| int Depths |
Definition at line 79 of file gvl_calc.c.
Referenced by alloc_vol_buff(), and iso_get_cube_grads().
| double ResX |
Definition at line 80 of file gvl_calc.c.
| double ResY |
Definition at line 80 of file gvl_calc.c.
| double ResZ |
Definition at line 80 of file gvl_calc.c.
| int Rows |
Definition at line 79 of file gvl_calc.c.
Referenced by alloc_slice_buff(), alloc_vol_buff(), get_vol_value(), and iso_get_cube_grads().