GRASS GIS 7 Programmer's Manual
7.9.dev(2021)-e5379bbd7
|
OGSF library - loading and manipulating surfaces (higher level functions) More...
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <grass/config.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <grass/gis.h>
#include <grass/raster.h>
#include <grass/ogsf.h>
#include <grass/glocale.h>
#include "gsget.h"
#include "rowcol.h"
#include "rgbpack.h"
Go to the source code of this file.
Macros | |
#define | NVIZ_HACK 1 |
Functions | |
int | gsd_getViewport (GLint *, GLint *) |
void | void_func (void) |
void | GS_libinit (void) |
Initialize OGSF library. More... | |
int | GS_get_longdim (float *dim) |
Get largest dimension. More... | |
int | GS_get_region (float *n, float *s, float *w, float *e) |
Get 2D region extent. More... | |
void | GS_set_att_defaults (float *defs, float *null_defs) |
Set default attributes for map objects. More... | |
int | GS_surf_exists (int id) |
int | GS_new_surface (void) |
Add new surface. More... | |
void | GS_set_light_reset (int i) |
int | GS_get_light_reset (void) |
int | GS_new_light (void) |
Add new model light. More... | |
void | GS_setlight_position (int num, float xpos, float ypos, float zpos, int local) |
Set light position. More... | |
void | GS_getlight_position (int num, float *xpos, float *ypos, float *zpos, int *local) |
Get light position. More... | |
void | GS_setlight_color (int num, float red, float green, float blue) |
Set light color. More... | |
void | GS_getlight_color (int num, float *red, float *green, float *blue) |
Get light color. More... | |
void | GS_setlight_ambient (int num, float red, float green, float blue) |
Set light ambient. More... | |
void | GS_getlight_ambient (int num, float *red, float *green, float *blue) |
Get light ambient. More... | |
void | GS_lights_off (void) |
Switch off all lights. More... | |
void | GS_lights_on (void) |
Switch on all lights. More... | |
void | GS_switchlight (int num, int on) |
Switch on/off light. More... | |
int | GS_transp_is_set (void) |
Check if transparency is set. More... | |
void | GS_get_modelposition1 (float pos[]) |
Retrieves coordinates for lighting model position, at center of view. More... | |
void | GS_get_modelposition (float *siz, float *pos) |
Retrieves coordinates for lighting model position, at center of view. More... | |
void | GS_set_Narrow (int *pt, int id, float *pos2) |
Set decoration, north arrow ?? More... | |
void | GS_draw_X (int id, float *pt) |
Draw place marker. More... | |
void | GS_draw_line_onsurf (int id, float x1, float y1, float x2, float y2) |
Draw line on surface. More... | |
int | GS_draw_nline_onsurf (int id, float x1, float y1, float x2, float y2, float *lasp, int n) |
Draw multiline on surface. More... | |
void | GS_draw_flowline_at_xy (int id, float x, float y) |
Draw flow-line on surace. More... | |
void | GS_draw_fringe (int id, unsigned long clr, float elev, int *where) |
Draw fringe around data (surface) at selected corners. More... | |
int | GS_draw_legend (const char *name, GLuint fontbase, int size, int *flags, float *range, int *pt) |
Draw legend. More... | |
void | GS_draw_list (GLuint list_id) |
Draw pre-defined list. More... | |
void | GS_draw_all_list (void) |
Draw all glLists. More... | |
void | GS_delete_list (GLuint list_id) |
Delete pre-defined list. More... | |
void | GS_draw_lighting_model1 (void) |
Draw lighting model. More... | |
void | GS_draw_lighting_model (void) |
Draw lighting model. More... | |
int | GS_update_curmask (int id) |
Update current mask. More... | |
int | GS_is_masked (int id, float *pt) |
Check if point is masked ? More... | |
void | GS_unset_SDsurf (void) |
Unset Scaled Difference surface. More... | |
int | GS_set_SDsurf (int id) |
Set surface as Scaled Difference surface. More... | |
int | GS_set_SDscale (float scale) |
Set ? More... | |
int | GS_get_SDsurf (int *id) |
Get ? More... | |
int | GS_get_SDscale (float *scale) |
Get ? More... | |
int | GS_update_normals (int id) |
Update normals. More... | |
int | GS_get_att (int id, int att, int *set, float *constant, char *mapname) |
Get attributes. More... | |
int | GS_get_cat_at_xy (int id, int att, char *catstr, float x, float y) |
Get surface category on given position. More... | |
int | GS_get_norm_at_xy (int id, float x, float y, float *nv) |
Get surface normal at x,y (real coordinates) More... | |
int | GS_get_val_at_xy (int id, int att, char *valstr, float x, float y) |
Get RGB color at given point. More... | |
int | GS_unset_att (int id, int att) |
Unset attribute. More... | |
int | GS_set_att_const (int id, int att, float constant) |
Set attribute constant. More... | |
int | GS_set_maskmode (int id, int mode) |
Set mask mode. More... | |
int | GS_get_maskmode (int id, int *mode) |
Get mask mode. More... | |
int | GS_Set_ClientData (int id, void *clientd) |
Set client data. More... | |
void * | GS_Get_ClientData (int id) |
Get client data. More... | |
int | GS_num_surfs (void) |
Get number of surfaces. More... | |
int * | GS_get_surf_list (int *numsurfs) |
Get surface list. More... | |
int | GS_delete_surface (int id) |
Delete surface. More... | |
int | GS_load_att_map (int id, const char *filename, int att) |
Load raster map as attribute. More... | |
void | GS_draw_surf (int id) |
Draw surface. More... | |
void | GS_draw_wire (int id) |
Draw surface wire. More... | |
void | GS_alldraw_wire (void) |
Draw all wires. More... | |
void | GS_alldraw_surf (void) |
Draw all surfaces. More... | |
void | GS_set_exag (int id, float exag) |
Set Z exag for surface. More... | |
void | GS_set_global_exag (float exag) |
Set global z-exag value. More... | |
float | GS_global_exag (void) |
Get global z-exag value. More... | |
void | GS_set_wire_color (int id, int colr) |
Set wire color. More... | |
int | GS_get_wire_color (int id, int *colr) |
Get wire color. More... | |
int | GS_setall_drawmode (int mode) |
Set all draw-modes. More... | |
int | GS_set_drawmode (int id, int mode) |
Set draw mode. More... | |
int | GS_get_drawmode (int id, int *mode) |
Get draw mode. More... | |
void | GS_set_nozero (int id, int att, int mode) |
Set no-zero ? More... | |
int | GS_get_nozero (int id, int att, int *mode) |
Get no-zero ? More... | |
int | GS_setall_drawres (int xres, int yres, int xwire, int ywire) |
Set all draw resolutions. More... | |
int | GS_set_drawres (int id, int xres, int yres, int xwire, int ywire) |
Set draw resolution for surface. More... | |
void | GS_get_drawres (int id, int *xres, int *yres, int *xwire, int *ywire) |
Get draw resolution of surface. More... | |
void | GS_get_dims (int id, int *rows, int *cols) |
Get dimension of surface. More... | |
int | GS_get_exag_guess (int id, float *exag) |
Get exag-value guess. More... | |
void | GS_get_zrange_nz (float *min, float *max) |
Get Z extents for all loaded surfaces. More... | |
void | GS_set_trans (int id, float xtrans, float ytrans, float ztrans) |
Set translation (surface position) More... | |
void | GS_get_trans (int id, float *xtrans, float *ytrans, float *ztrans) |
Get translation values (surface position) More... | |
unsigned int | GS_default_draw_color (void) |
Get default draw color. More... | |
unsigned int | GS_background_color (void) |
Get background color. More... | |
void | GS_set_draw (int where) |
Sets which buffer to draw to. More... | |
void | GS_ready_draw (void) |
void | GS_done_draw (void) |
Draw done, swap buffers. More... | |
void | GS_set_focus (float *realto) |
Set focus. More... | |
void | GS_set_focus_real (float *realto) |
Set real focus. More... | |
int | GS_get_focus (float *realto) |
Get focus. More... | |
void | GS_set_focus_center_map (int id) |
Set focus to map center. More... | |
void | GS_moveto (float *pt) |
Move viewpoint. More... | |
void | GS_moveto_real (float *pt) |
Move position to (real) More... | |
int | GS_get_zextents (int id, float *min, float *max, float *mid) |
Get z-extent for a single surface. More... | |
int | GS_get_zrange (float *min, float *max, int doexag) |
Get z-extent for all loaded surfaces. More... | |
void | GS_get_from (float *fr) |
Get viewpoint 'from' position. More... | |
void | GS_get_from_real (float *fr) |
Get viewpoint 'from' real coordinates. More... | |
void | GS_get_to_real (float *to) |
Get 'to' real coordinates. More... | |
void | GS_zoom_setup (int *a, int *b, int *c, int *d, int *maxx, int *maxy) |
Get zoom setup. More... | |
void | GS_get_to (float *to) |
Get 'to' model coordinates. More... | |
void | GS_get_viewdir (float *dir) |
Get viewdir. More... | |
void | GS_set_viewdir (float *dir) |
Set viewdir. More... | |
void | GS_set_fov (int fov) |
Set field of view. More... | |
int | GS_get_fov (void) |
Get fied of view. More... | |
int | GS_get_twist (void) |
Get twist value. More... | |
void | GS_set_twist (int t) |
Set viewpoint twist value. More... | |
void | GS_set_rotation (double angle, double x, double y, double z) |
Set rotation params. More... | |
void | GS_unset_rotation (void) |
Stop scene rotation. More... | |
void | GS_init_rotation (void) |
Reset scene rotation. More... | |
void | GS_get_rotation_matrix (double *matrix) |
Get rotation matrix. More... | |
void | GS_set_rotation_matrix (double *matrix) |
Set rotation matrix. More... | |
void | GS_set_nofocus (void) |
Unset focus. More... | |
void | GS_set_infocus (void) |
Set focus. More... | |
void | GS_set_viewport (int left, int right, int bottom, int top) |
Set viewport. More... | |
int | GS_look_here (int sx, int sy) |
Send screen coords sx and sy, lib traces through surfaces; sets new center to point of nearest intersection. More... | |
int | GS_get_selected_point_on_surface (int sx, int sy, int *id, float *x, float *y, float *z) |
Get selected point of surface. More... | |
void | GS_set_cplane_rot (int num, float dx, float dy, float dz) |
Set cplace rotation. More... | |
void | GS_set_cplane_trans (int num, float dx, float dy, float dz) |
Set cplace trans. More... | |
void | GS_draw_cplane (int num) |
Draw cplace. More... | |
int | GS_draw_cplane_fence (int hs1, int hs2, int num) |
Draw cplace fence ? More... | |
void | GS_alldraw_cplane_fences (void) |
Draw all cplace fences ? More... | |
void | GS_set_cplane (int num) |
Set cplace. More... | |
void | GS_unset_cplane (int num) |
Unset clip place (turn off) More... | |
void | GS_get_scale (float *sx, float *sy, float *sz, int doexag) |
Get axis scale. More... | |
void | GS_set_fencecolor (int mode) |
Set fence color. More... | |
int | GS_get_fencecolor (void) |
Get fence color. More... | |
int | GS_get_distance_alongsurf (int hs, float x1, float y1, float x2, float y2, float *dist, int use_exag) |
Measure distance "as the ball rolls" between two points on surface. More... | |
int | GS_save_3dview (const char *vname, int surfid) |
Save 3d view. More... | |
int | GS_load_3dview (const char *vname, int surfid) |
Load 3d view. More... | |
void | GS_init_view (void) |
Init viewpoint. More... | |
void | GS_clear (int col) |
Clear view. More... | |
double | GS_get_aspect (void) |
Get aspect value. More... | |
int | GS_has_transparency (void) |
Check for transparency. More... | |
OGSF library - loading and manipulating surfaces (higher level functions)
GRASS OpenGL gsurf OGSF Library
Plans for handling color maps: NOW: if able to load as unsigned char, make lookup table containing palette otherwise, load directly as packed color, set lookup = NULL MAYBE LATER: if able to load as POSITIVE short, make lookup table containing palette
(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 gs2.c.
void GS_alldraw_cplane_fences | ( | void | ) |
Draw all cplace fences ?
Definition at line 3195 of file gs2.c.
References GS_draw_cplane_fence(), gsd_get_cplanes_state(), and MAX_CPLANES.
void GS_alldraw_wire | ( | void | ) |
Draw all wires.
Overrides draw_mode for fast display
Definition at line 1919 of file gs2.c.
Referenced by Gs_load_3dview().
unsigned int GS_background_color | ( | void | ) |
Get background color.
Definition at line 2452 of file gs2.c.
References geodisplay::bgcol.
void GS_clear | ( | int | col | ) |
Clear view.
col | color value |
Definition at line 3418 of file gs2.c.
References geodisplay::bgcol, and G_debug().
unsigned int GS_default_draw_color | ( | void | ) |
Get default draw color.
Definition at line 2439 of file gs2.c.
References geodisplay::bgcol, and G_debug().
void GS_delete_list | ( | GLuint | list_id | ) |
Delete pre-defined list.
list_id | list id |
Definition at line 891 of file gs2.c.
References gsd_deletelist().
int GS_delete_surface | ( | int | id | ) |
Delete surface.
id | surface id |
Definition at line 1566 of file gs2.c.
References FALSE, G_debug(), gs_delete_surf(), and GS_surf_exists().
void GS_done_draw | ( | void | ) |
Draw done, swap buffers.
Definition at line 2501 of file gs2.c.
References G_debug(), and GSD_BACK.
Referenced by gsd_end_legend_viewport(), gsd_fringe_horiz_line(), gsd_fringe_horiz_line2(), gsd_fringe_horiz_poly(), gsd_fringe_vert_line(), gsd_fringe_vert_poly(), gsd_north_arrow(), gsd_scalebar(), gsd_scalebar_v2(), Nviz_draw_all_site(), Nviz_draw_all_vect(), and Nviz_draw_all_vol().
void GS_draw_all_list | ( | void | ) |
Draw all glLists.
Uses glFlush() to ensure all drawing is complete before returning
Definition at line 879 of file gs2.c.
References gsd_calllists().
void GS_draw_cplane | ( | int | num | ) |
Draw cplace.
num | cplace id |
Definition at line 3148 of file gs2.c.
References gs_getall_surfaces(), gs_num_surfaces(), gsd_draw_cplane(), gsd_draw_cplane_fence(), and MAX_SURFS.
int GS_draw_cplane_fence | ( | int | hs1, |
int | hs2, | ||
int | num | ||
) |
Draw cplace fence ?
hs1,hs2 | |
num | cplane id |
Definition at line 3175 of file gs2.c.
References gs_get_surf(), gsd_draw_cplane_fence(), and NULL.
Referenced by GS_alldraw_cplane_fences().
void GS_draw_flowline_at_xy | ( | int | id, |
float | x, | ||
float | y | ||
) |
void GS_draw_fringe | ( | int | id, |
unsigned long | clr, | ||
float | elev, | ||
int * | where | ||
) |
Draw fringe around data (surface) at selected corners.
id | surface id |
clr | color |
elev | elevation value |
where | nw/ne/sw/se edges - 0 (turn off) 1 (turn on) |
Definition at line 823 of file gs2.c.
References G_debug(), gs_get_surf(), and gsd_display_fringe().
int GS_draw_legend | ( | const char * | name, |
GLuint | fontbase, | ||
int | size, | ||
int * | flags, | ||
float * | range, | ||
int * | pt | ||
) |
Draw legend.
name | legend name |
fontbase | font-base |
size | ? |
flags | legend flags |
range | values range |
pt | ? |
Definition at line 848 of file gs2.c.
References gsd_put_legend().
void GS_draw_lighting_model | ( | void | ) |
Draw lighting model.
Just turn off any cutting planes and draw it just outside near clipping plane, since lighting is infinite now
Definition at line 941 of file gs2.c.
References gsd_cplane_off(), gsd_get_cplanes_state(), and MAX_CPLANES.
void GS_draw_line_onsurf | ( | int | id, |
float | x1, | ||
float | y1, | ||
float | x2, | ||
float | y2 | ||
) |
void GS_draw_list | ( | GLuint | list_id | ) |
Draw pre-defined list.
Uses glFlush() to ensure all drawing is complete before returning
list_id | list id |
Definition at line 866 of file gs2.c.
References gsd_calllist().
int GS_draw_nline_onsurf | ( | int | id, |
float | x1, | ||
float | y1, | ||
float | x2, | ||
float | y2, | ||
float * | lasp, | ||
int | n | ||
) |
void GS_draw_surf | ( | int | id | ) |
Draw surface.
id | surface id |
Definition at line 1864 of file gs2.c.
References DM_GOURAUD, DM_POLY, DM_WIRE, DM_WIRE_POLY, g_surf::draw_mode, G_debug(), gs_get_surf(), gsd_shademodel(), gsd_surf(), and gsd_wire_surf().
void GS_draw_wire | ( | int | id | ) |
Draw surface wire.
Overrides draw_mode for fast display
id | surface id |
Definition at line 1899 of file gs2.c.
References G_debug(), gs_get_surf(), and gsd_wire_surf().
void GS_draw_X | ( | int | id, |
float * | pt | ||
) |
Draw place marker.
Used to display query point for raster queries.
id | surface id |
pt | point, X, Y value in true world coordinates |
Definition at line 639 of file gs2.c.
References _viewcell_tri_interp(), g_surf::att, ATT_TOPO, geodisplay::bgcol, g_vect_style::color, CONST_ATT, gsurf_att::constant, gpd_obj(), gs_get_att_src(), GS_get_longdim(), gs_get_surf(), gsd_do_scale(), gsd_flush(), gsd_linewidth(), gsd_popmatrix(), gsd_pushmatrix(), gsd_translate(), NULL, g_surf::ox, g_surf::oy, g_vect_style::size, ST_GYRO, g_vect_style::symbol, X, g_surf::x_trans, Y, g_surf::y_trans, Z, and g_surf::z_trans.
double GS_get_aspect | ( | void | ) |
Get aspect value.
Definition at line 3452 of file gs2.c.
References Cell_head::bottom, G_debug(), and Cell_head::top.
Referenced by gsd_set_view().
int GS_get_att | ( | int | id, |
int | att, | ||
int * | set, | ||
float * | constant, | ||
char * | mapname | ||
) |
int GS_get_cat_at_xy | ( | int | id, |
int | att, | ||
char * | catstr, | ||
float | x, | ||
float | y | ||
) |
Get surface category on given position.
Prints "no data" or a description (i.e., "coniferous forest") to catstr. Usually call after GS_get_selected_point_on_surface(). Define att as MAP_ATT
id | surface id |
att | attribute id (MAP_ATT) |
catstr | cat string (must be allocated, dim?) |
x,y | real coordinates |
Definition at line 1183 of file gs2.c.
References _, g_surf::att, DRC2OFF, GET_MAPATT, gs_get_att_src(), gs_get_att_typbuff(), Gs_get_cat_label(), gs_get_surf(), gs_point_is_masked(), gsd_real2surf(), gsds_get_name(), gsurf_att::hdata, in_vregion(), MAP_ATT, NULL, VCOL2DCOL, VROW2DROW, x, X, X2VCOL, Y, and Y2VROW.
void* GS_Get_ClientData | ( | int | id | ) |
Get client data.
id | surface id |
Definition at line 1507 of file gs2.c.
References g_surf::clientdata, gs_get_surf(), and NULL.
void GS_get_dims | ( | int | id, |
int * | rows, | ||
int * | cols | ||
) |
Get dimension of surface.
id | surface id | |
[out] | rows,cols | number of rows/cols |
Definition at line 2279 of file gs2.c.
References g_surf::cols, gs_get_surf(), and g_surf::rows.
int GS_get_distance_alongsurf | ( | int | hs, |
float | x1, | ||
float | y1, | ||
float | x2, | ||
float | y2, | ||
float * | dist, | ||
int | use_exag | ||
) |
Measure distance "as the ball rolls" between two points on surface.
hs | surface id | |
x1,y1,x2,y2 | two points on surface | |
[out] | dist | measured distance |
use_exag | use exag. surface |
int GS_get_drawmode | ( | int | id, |
int * | mode | ||
) |
void GS_get_drawres | ( | int | id, |
int * | xres, | ||
int * | yres, | ||
int * | xwire, | ||
int * | ywire | ||
) |
Get draw resolution of surface.
id | surface id | |
[out] | xres,yres | x/y resolution value |
[out] | xwire,ywire | x/y wire value |
Definition at line 2255 of file gs2.c.
References G_debug(), gs_get_surf(), g_surf::x_mod, g_surf::x_modw, g_surf::y_mod, and g_surf::y_modw.
int GS_get_exag_guess | ( | int | id, |
float * | exag | ||
) |
Get exag-value guess.
Use no_zero range because if zero IS data, then range won't be that much off (it's just a GUESS, after all), but if zero is NO data, could drastically affect guess
id | surface id | |
[out] | exag | exag value |
Definition at line 2306 of file gs2.c.
References ATT_TOPO, CONST_ATT, G_debug(), gs_get_att_src(), gs_get_surf(), and g_surf::zrange_nz.
Referenced by Nviz_get_exag(), and Nviz_get_exag_height().
int GS_get_fencecolor | ( | void | ) |
int GS_get_focus | ( | float * | realto | ) |
Get focus.
OK to call with NULL argument if just want to check state
realto | real coordinates to |
Definition at line 2563 of file gs2.c.
References G_debug(), GS_v3eq(), geoview::infocus, and geoview::real_to.
int GS_get_fov | ( | void | ) |
Get fied of view.
Definition at line 2855 of file gs2.c.
References geoview::fov.
void GS_get_from | ( | float * | fr | ) |
Get viewpoint 'from' position.
[out] | fr | from model coordinates |
Definition at line 2725 of file gs2.c.
References FROM, geoview::from_to, G_debug(), and GS_v3eq().
Referenced by Nviz_get_viewpoint_position(), and Nviz_set_viewpoint_position().
void GS_get_from_real | ( | float * | fr | ) |
Get viewpoint 'from' real coordinates.
[out] | fr | 'from' real coordinates |
Definition at line 2739 of file gs2.c.
References FROM, geoview::from_to, GS_v3eq(), and gsd_model2real().
int GS_get_light_reset | ( | void | ) |
Definition at line 258 of file gs2.c.
Referenced by GS_new_light().
int GS_get_longdim | ( | float * | dim | ) |
Get largest dimension.
[out] | dim | dimension |
Definition at line 140 of file gs2.c.
Referenced by gp_set_defaults(), GS_draw_X(), Nviz_get_exag_height(), and Nviz_update_ranges().
int GS_get_maskmode | ( | int | id, |
int * | mode | ||
) |
void GS_get_modelposition | ( | float * | siz, |
float * | pos | ||
) |
Retrieves coordinates for lighting model position, at center of view.
Position at nearclip * 2: tried nearclip + siz, but since need to know position to calculate size, have two dependent variables (nearclip * 2) from eye.
siz[out] | size |
pos[out] | coordinates (X, Y, Z) |
Definition at line 531 of file gs2.c.
References geoview::fov, FROM, geoview::from_to, GS_v3dir(), geodisplay::nearclip, TO, X, Y, and Z.
void GS_get_modelposition1 | ( | float | pos[] | ) |
Retrieves coordinates for lighting model position, at center of view.
pos[out] | coordinates |
Definition at line 502 of file gs2.c.
References G_debug(), gs_get_data_avg_zmax(), gs_get_datacenter(), X, Y, and Z.
int GS_get_norm_at_xy | ( | int | id, |
float | x, | ||
float | y, | ||
float * | nv | ||
) |
Get surface normal at x,y (real coordinates)
Usually call after GS_get_selected_point_on_surface()
id | surface id | |
x,y | real coordinates | |
[out] | nv | surface normal |
Definition at line 1246 of file gs2.c.
References DRC2OFF, FNORM, gs_calc_normals(), gs_get_surf(), gs_point_is_masked(), gsd_real2surf(), in_vregion(), g_surf::norm_needupdate, g_surf::norms, NULL, VCOL2DCOL, VROW2DROW, x, X, X2VCOL, Y, and Y2VROW.
int GS_get_nozero | ( | int | id, |
int | att, | ||
int * | mode | ||
) |
int GS_get_region | ( | float * | n, |
float * | s, | ||
float * | w, | ||
float * | e | ||
) |
Get 2D region extent.
[out] | n,s,w,e | extent values |
Definition at line 156 of file gs2.c.
Referenced by GP_draw_site().
void GS_get_rotation_matrix | ( | double * | matrix | ) |
Get rotation matrix.
Definition at line 2929 of file gs2.c.
References geoview::rotate, and georot::rotMatrix.
void GS_get_scale | ( | float * | sx, |
float * | sy, | ||
float * | sz, | ||
int | doexag | ||
) |
Get axis scale.
sx,sy,sz | x/y/z scale values |
doexag | use vertical exaggeration |
Definition at line 3240 of file gs2.c.
References geoview::scale, and geoview::vert_exag.
Referenced by gsd_do_scale(), gsd_model2surf(), gsd_surf2model(), and gsd_wire_arrows().
int GS_get_SDscale | ( | float * | scale | ) |
int GS_get_SDsurf | ( | int * | id | ) |
Get ?
[out] | id | ? |
Definition at line 1085 of file gs2.c.
References gsdiff_get_SDref().
int GS_get_selected_point_on_surface | ( | int | sx, |
int | sy, | ||
int * | id, | ||
float * | x, | ||
float * | y, | ||
float * | z | ||
) |
Get selected point of surface.
Given screen coordinates sx and sy, find closest intersection of view ray with surfaces and return coordinates of intersection in x, y, z, and identifier of surface in id.
sx,sy | screen coordinates | |
[out] | id | surface id |
[out] | x,y,z | point on surface (model coordinates?) |
Definition at line 3054 of file gs2.c.
References MAX_SURFS.
Referenced by GS_look_here(), and GS_set_Narrow().
int* GS_get_surf_list | ( | int * | numsurfs | ) |
Get surface list.
Must be freed when not neeed!
[out] | numsurf | number of available surfaces |
Definition at line 1539 of file gs2.c.
Referenced by Nviz_draw_all_surf(), Nviz_get_exag(), and Nviz_get_exag_height().
void GS_get_to | ( | float * | to | ) |
void GS_get_to_real | ( | float * | to | ) |
Get 'to' real coordinates.
[out] | to | 'to' real coordinates |
Definition at line 2752 of file gs2.c.
References G_get_set_window().
void GS_get_trans | ( | int | id, |
float * | xtrans, | ||
float * | ytrans, | ||
float * | ztrans | ||
) |
Get translation values (surface position)
id | surface id | |
[out] | xtrans,ytrans,ztrans | trans values |
Definition at line 2415 of file gs2.c.
References G_debug(), gs_get_surf(), g_surf::x_trans, g_surf::y_trans, and g_surf::z_trans.
int GS_get_twist | ( | void | ) |
Get twist value.
10ths of degrees off twelve o'clock
Definition at line 2865 of file gs2.c.
References geoview::twist.
int GS_get_val_at_xy | ( | int | id, |
int | att, | ||
char * | valstr, | ||
float | x, | ||
float | y | ||
) |
Get RGB color at given point.
Colors are translated to rgb and returned as Rxxx Gxxx Bxxx Usually call after GS_get_selected_point_on_surface().
Prints NULL or the value (i.e., "921.5") to valstr
id | surface id | |
att | attribute id | |
[out] | valstr | value string (allocated, dim?) |
x,y | real coordinates |
Definition at line 1310 of file gs2.c.
References g_surf::att, ATT_COLOR, b, CONST_ATT, gsurf_att::constant, DRC2OFF, g, GET_MAPATT, gs_get_att_src(), gs_get_att_typbuff(), gs_get_surf(), gs_mapcolor(), gs_point_is_masked(), gsd_real2surf(), in_vregion(), INT_TO_BLU, INT_TO_GRN, INT_TO_RED, MAP_ATT, NULL, r, VCOL2DCOL, VROW2DROW, x, X, X2VCOL, Y, and Y2VROW.
void GS_get_viewdir | ( | float * | dir | ) |
Get viewdir.
[out] | dir | viewdir value |
Definition at line 2809 of file gs2.c.
References FROM, geoview::from_to, GS_v3dir(), and TO.
int GS_get_wire_color | ( | int | id, |
int * | colr | ||
) |
Get wire color.
id | surface id | |
[out] | colr | color value |
Definition at line 2038 of file gs2.c.
References gs_get_surf(), and g_surf::wire_color.
int GS_get_zextents | ( | int | id, |
float * | min, | ||
float * | max, | ||
float * | mid | ||
) |
Get z-extent for a single surface.
id | surface id | |
[out] | min | min z-value |
[out] | max | max z-value |
[out] | mid | middle z-value |
Definition at line 2666 of file gs2.c.
References G_debug(), gs_get_surf(), gs_get_zextents(), and NULL.
int GS_get_zrange | ( | float * | min, |
float * | max, | ||
int | doexag | ||
) |
Get z-extent for all loaded surfaces.
[out] | min | min z-value |
[out] | max | max z-value |
doexag | use z-exaggeration |
Definition at line 2689 of file gs2.c.
References G_debug(), gs_get_zrange(), gvl_get_zrange(), and geoview::vert_exag.
Referenced by Gs_save_3dview(), gsd_check_focus(), gsd_do_scale(), gsd_model2surf(), and gsd_surf2model().
void GS_get_zrange_nz | ( | float * | min, |
float * | max | ||
) |
Get Z extents for all loaded surfaces.
Treating zeros as "no data"
[out] | min | min value |
[out] | max | max value |
Definition at line 2357 of file gs2.c.
Referenced by Nviz_get_exag_height(), and Nviz_update_ranges().
void GS_getlight_ambient | ( | int | num, |
float * | red, | ||
float * | green, | ||
float * | blue | ||
) |
void GS_getlight_color | ( | int | num, |
float * | red, | ||
float * | green, | ||
float * | blue | ||
) |
void GS_getlight_position | ( | int | num, |
float * | xpos, | ||
float * | ypos, | ||
float * | zpos, | ||
int * | local | ||
) |
float GS_global_exag | ( | void | ) |
Get global z-exag value.
Definition at line 1999 of file gs2.c.
References G_debug(), and geoview::vert_exag.
Referenced by gpd_obj(), gsd_wire_arrows(), and Nviz_update_ranges().
int GS_has_transparency | ( | void | ) |
void GS_init_rotation | ( | void | ) |
Reset scene rotation.
Definition at line 2909 of file gs2.c.
References georot::do_rot, georot::rot_angle, georot::rot_axes, geoview::rotate, and georot::rotMatrix.
Referenced by Nviz_init_rotation().
void GS_init_view | ( | void | ) |
int GS_is_masked | ( | int | id, |
float * | pt | ||
) |
void GS_libinit | ( | void | ) |
int GS_load_3dview | ( | const char * | vname, |
int | surfid | ||
) |
Load 3d view.
vname | view file name |
surfid | surface id |
Definition at line 3329 of file gs2.c.
References Gs_load_3dview().
int GS_load_att_map | ( | int | id, |
const char * | filename, | ||
int | att | ||
) |
int GS_look_here | ( | int | sx, |
int | sy | ||
) |
Send screen coords sx and sy, lib traces through surfaces; sets new center to point of nearest intersection.
If no intersection, uses line of sight with length of current view ray (eye to center) to set new center.
Reset center of view to screen coordinates sx, sy.
sx,sy | screen coordinates |
Definition at line 3005 of file gs2.c.
References FROM, geoview::from_to, GS_distance(), GS_get_selected_point_on_surface(), gs_get_surf(), GS_set_focus(), GS_v3dir(), GS_v3mult(), gsd_get_los(), g_surf::ox, g_surf::oy, geoview::real_to, TO, x, X, g_surf::x_trans, Y, g_surf::y_trans, Z, and g_surf::z_trans.
Referenced by Nviz_look_here().
void GS_moveto | ( | float * | pt | ) |
Move viewpoint.
pt | 'from' model coordinates |
Definition at line 2617 of file gs2.c.
References FROM, geoview::from_to, G_debug(), GS_v3add(), GS_v3eq(), GS_v3normalize(), GS_v3sub(), geoview::infocus, and TO.
Referenced by GS_moveto_real(), and Nviz_set_viewpoint_position().
void GS_moveto_real | ( | float * | pt | ) |
Move position to (real)
pt | point real coordinates |
Definition at line 2647 of file gs2.c.
References GS_moveto(), and gsd_real2model().
Referenced by Gs_load_3dview().
int GS_new_light | ( | void | ) |
Add new model light.
Definition at line 268 of file gs2.c.
References lightdefs::ambient, lightdefs::color, GS_get_light_reset(), GS_set_light_reset(), gsd_init_lightmodel(), geoview::lights, MAX_LIGHTS, lightdefs::position, lightdefs::shine, W, X, Y, and Z.
int GS_new_surface | ( | void | ) |
Add new surface.
Note that origin has 1/2 cell added to represent center of cells because library assumes that east - west = (cols - 1) * ew_res, since left and right columns are on the edges.
Definition at line 224 of file gs2.c.
References G_debug().
int GS_num_surfs | ( | void | ) |
Get number of surfaces.
Definition at line 1524 of file gs2.c.
References gs_num_surfaces().
void GS_ready_draw | ( | void | ) |
Definition at line 2488 of file gs2.c.
References G_debug(), and gsd_set_view().
Referenced by gsd_bgn_legend_viewport(), Nviz_draw_all_site(), Nviz_draw_all_vect(), and Nviz_draw_all_vol().
int GS_save_3dview | ( | const char * | vname, |
int | surfid | ||
) |
Save 3d view.
vname | view file name |
surfid | surface id |
Definition at line 3316 of file gs2.c.
References Gs_save_3dview().
int GS_set_att_const | ( | int | id, |
int | att, | ||
float | constant | ||
) |
Set attribute constant.
id | surface id |
att | attribute id |
constant | value |
Definition at line 1412 of file gs2.c.
References gs_get_surf(), gs_set_att_const(), and Gs_update_attrange().
void GS_set_att_defaults | ( | float * | defs, |
float * | null_defs | ||
) |
Set default attributes for map objects.
defs | attributes array (dim MAX_ATTS) |
null_defs | null attributes array (dim MAX_ATTS) |
Definition at line 172 of file gs2.c.
References G_debug(), and MAX_ATTS.
Referenced by Nviz_set_surface_attr_default().
int GS_Set_ClientData | ( | int | id, |
void * | clientd | ||
) |
Set client data.
id | surface id |
clientd | pointer to client data struct |
Definition at line 1485 of file gs2.c.
References g_surf::clientdata, and gs_get_surf().
void GS_set_cplane | ( | int | num | ) |
Set cplace.
num | cplane id |
Definition at line 3215 of file gs2.c.
References gsd_cplane_on().
void GS_set_cplane_rot | ( | int | num, |
float | dx, | ||
float | dy, | ||
float | dz | ||
) |
Set cplace rotation.
num | cplace id |
dx,dy,dz | rotation values |
Definition at line 3122 of file gs2.c.
References gsd_cplane_setrot().
Referenced by Nviz_set_cplane_rotation().
void GS_set_cplane_trans | ( | int | num, |
float | dx, | ||
float | dy, | ||
float | dz | ||
) |
Set cplace trans.
num | cplace id |
dx,dy,dz | rotation values |
Definition at line 3135 of file gs2.c.
References gsd_cplane_settrans().
Referenced by Nviz_set_cplane_translation().
void GS_set_draw | ( | int | where | ) |
Sets which buffer to draw to.
where | GSD_BOTH, GSD_FRONT, GSD_BACK |
Definition at line 2462 of file gs2.c.
Referenced by gsd_bgn_legend_viewport(), gsd_end_legend_viewport(), gsd_fringe_horiz_line(), gsd_fringe_horiz_line2(), gsd_fringe_horiz_poly(), gsd_fringe_vert_line(), gsd_fringe_vert_poly(), gsd_north_arrow(), gsd_scalebar(), gsd_scalebar_v2(), Nviz_draw_all_site(), Nviz_draw_all_vect(), and Nviz_draw_all_vol().
int GS_set_drawmode | ( | int | id, |
int | mode | ||
) |
int GS_set_drawres | ( | int | id, |
int | xres, | ||
int | yres, | ||
int | xwire, | ||
int | ywire | ||
) |
Set draw resolution for surface.
id | surface id |
xres,yres | x/y resolution value |
xwire,ywire | x/y wire value |
Definition at line 2221 of file gs2.c.
References G_debug(), gs_get_surf(), g_surf::norm_needupdate, g_surf::x_mod, g_surf::x_modw, g_surf::y_mod, and g_surf::y_modw.
void GS_set_exag | ( | int | id, |
float | exag | ||
) |
Set Z exag for surface.
id | surface id |
exag | z-exag value |
Definition at line 1953 of file gs2.c.
References G_debug(), gs_get_surf(), g_surf::norm_needupdate, and g_surf::z_exag.
void GS_set_fencecolor | ( | int | mode | ) |
void GS_set_focus | ( | float * | realto | ) |
Set focus.
realto | real coordinates to |
Definition at line 2520 of file gs2.c.
References G_debug(), GS_v3eq(), gsd_set_view(), geoview::infocus, and geoview::real_to.
Referenced by Gs_load_3dview(), GS_look_here(), GS_set_focus_center_map(), and GVL_set_focus_center_map().
void GS_set_focus_center_map | ( | int | id | ) |
Set focus to map center.
id | surface id |
Definition at line 2582 of file gs2.c.
References G_debug(), gs_get_surf(), GS_set_focus(), X, g_surf::xmax, g_surf::xmin, Y, g_surf::ymax, g_surf::ymin, Z, g_surf::zmax_nz, and g_surf::zmin_nz.
void GS_set_focus_real | ( | float * | realto | ) |
Set real focus.
realto | real coordinates to |
Definition at line 2538 of file gs2.c.
References G_get_set_window().
void GS_set_fov | ( | int | fov | ) |
Set field of view.
fov | fov value |
Definition at line 2843 of file gs2.c.
References geoview::fov.
Referenced by Gs_load_3dview(), and Nviz_set_viewpoint_persp().
void GS_set_global_exag | ( | float | exag | ) |
Set global z-exag value.
exag | exag value to be set up |
Definition at line 1977 of file gs2.c.
References G_debug(), and geoview::vert_exag.
Referenced by Gs_load_3dview().
void GS_set_infocus | ( | void | ) |
Set focus.
Make sure that the center of view is set
Definition at line 2967 of file gs2.c.
References G_debug(), and geoview::infocus.
Referenced by Nviz_set_focus_state().
void GS_set_light_reset | ( | int | i | ) |
Definition at line 252 of file gs2.c.
Referenced by GS_new_light().
int GS_set_maskmode | ( | int | id, |
int | mode | ||
) |
void GS_set_Narrow | ( | int * | pt, |
int | id, | ||
float * | pos2 | ||
) |
Set decoration, north arrow ??
pt | point value in true world coordinates (?) | |
id | surface id | |
[out] | pos2 | output coordinates |
Definition at line 568 of file gs2.c.
References GS_get_selected_point_on_surface(), gs_get_surf(), gsd_do_scale(), gsd_pushmatrix(), g_surf::ox, g_surf::oy, x, X, g_surf::x_trans, Y, g_surf::y_trans, Z, g_surf::z_trans, and g_surf::zmax.
void GS_set_nofocus | ( | void | ) |
Unset focus.
Definition at line 2953 of file gs2.c.
References G_debug(), and geoview::infocus.
Referenced by Nviz_set_focus_state().
void GS_set_nozero | ( | int | id, |
int | att, | ||
int | mode | ||
) |
void GS_set_rotation | ( | double | angle, |
double | x, | ||
double | y, | ||
double | z | ||
) |
Set rotation params.
Definition at line 2887 of file gs2.c.
References georot::do_rot, georot::rot_angle, georot::rot_axes, geoview::rotate, and x.
Referenced by Nviz_set_rotation().
void GS_set_rotation_matrix | ( | double * | matrix | ) |
Set rotation matrix.
Definition at line 2941 of file gs2.c.
References geoview::rotate, and georot::rotMatrix.
int GS_set_SDscale | ( | float | scale | ) |
int GS_set_SDsurf | ( | int | id | ) |
Set surface as Scaled Difference surface.
id | surface id |
Definition at line 1049 of file gs2.c.
References gs_get_surf(), and gsdiff_set_SDref().
void GS_set_trans | ( | int | id, |
float | xtrans, | ||
float | ytrans, | ||
float | ztrans | ||
) |
Set translation (surface position)
id | surface id |
xtrans,ytrans,ztrans | translation values |
Definition at line 2391 of file gs2.c.
References G_debug(), gs_get_surf(), g_surf::x_trans, g_surf::y_trans, and g_surf::z_trans.
void GS_set_twist | ( | int | t | ) |
Set viewpoint twist value.
10ths of degrees off twelve o'clock
t | tenths of degrees clockwise from 12:00. |
Definition at line 2877 of file gs2.c.
References t, and geoview::twist.
Referenced by Gs_load_3dview(), and Nviz_set_viewpoint_twist().
void GS_set_viewdir | ( | float * | dir | ) |
void GS_set_viewport | ( | int | left, |
int | right, | ||
int | bottom, | ||
int | top | ||
) |
Set viewport.
left,right,bottom,top | viewport extent values |
Definition at line 2981 of file gs2.c.
References G_debug(), and gsd_viewport().
void GS_set_wire_color | ( | int | id, |
int | colr | ||
) |
Set wire color.
id | surface id |
colr | color value |
Definition at line 2014 of file gs2.c.
References G_debug(), gs_get_surf(), and g_surf::wire_color.
int GS_setall_drawmode | ( | int | mode | ) |
Set all draw-modes.
mode | mode id |
Definition at line 2061 of file gs2.c.
Referenced by Gs_load_3dview().
int GS_setall_drawres | ( | int | xres, |
int | yres, | ||
int | xwire, | ||
int | ywire | ||
) |
Set all draw resolutions.
xres,yres | x/y resolution value |
xwire,ywire | x/y wire value |
Definition at line 2198 of file gs2.c.
Referenced by Gs_load_3dview().
void GS_setlight_ambient | ( | int | num, |
float | red, | ||
float | green, | ||
float | blue | ||
) |
void GS_setlight_color | ( | int | num, |
float | red, | ||
float | green, | ||
float | blue | ||
) |
void GS_setlight_position | ( | int | num, |
float | xpos, | ||
float | ypos, | ||
float | zpos, | ||
int | local | ||
) |
int GS_surf_exists | ( | int | id | ) |
Check if surface exists
id | surface id |
Definition at line 194 of file gs2.c.
References G_debug(), gs_get_surf(), and NULL.
Referenced by GP_select_surf(), GS_delete_surface(), and GV_select_surf().
void GS_switchlight | ( | int | num, |
int | on | ||
) |
int GS_transp_is_set | ( | void | ) |
Check if transparency is set.
Definition at line 492 of file gs2.c.
References ATT_TRANSP, FC_GREY, gs_att_is_set(), gsd_getfc(), and NULL.
int GS_unset_att | ( | int | id, |
int | att | ||
) |
Unset attribute.
id | surface id |
att | attribute id |
Definition at line 1393 of file gs2.c.
References gs_get_surf(), gs_set_att_src(), g_surf::mask_needupdate, and NOTSET_ATT.
void GS_unset_cplane | ( | int | num | ) |
Unset clip place (turn off)
num | cplane id |
Definition at line 3227 of file gs2.c.
References gsd_cplane_off().
void GS_unset_rotation | ( | void | ) |
Stop scene rotation.
Definition at line 2901 of file gs2.c.
References georot::do_rot, and geoview::rotate.
Referenced by Nviz_unset_rotation().
void GS_unset_SDsurf | ( | void | ) |
Unset Scaled Difference surface.
Definition at line 1033 of file gs2.c.
References gsdiff_set_SDref(), and NULL.
int GS_update_curmask | ( | int | id | ) |
Update current mask.
May be called to update total mask for a surface at convenient times instead of waiting until ready to redraw surface
id | surface id |
Definition at line 997 of file gs2.c.
References gs_get_surf(), and gs_update_curmask().
int GS_update_normals | ( | int | id | ) |
Update normals.
id | surface id |
Definition at line 1119 of file gs2.c.
References gs_calc_normals(), and gs_get_surf().
void GS_zoom_setup | ( | int * | a, |
int * | b, | ||
int * | c, | ||
int * | d, | ||
int * | maxx, | ||
int * | maxy | ||
) |
int gsd_getViewport | ( | GLint * | , |
GLint * | |||
) |