GRASS GIS 8 Programmer's Manual
8.5.0dev(2024)-231bb51e5e
|
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 field 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 3191 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 1917 of file gs2.c.
Referenced by Gs_load_3dview().
unsigned int GS_background_color | ( | void | ) |
void GS_clear | ( | int | col | ) |
unsigned int GS_default_draw_color | ( | void | ) |
void GS_delete_list | ( | GLuint | list_id | ) |
Delete pre-defined list.
list_id | list id |
Definition at line 884 of file gs2.c.
References gsd_deletelist().
int GS_delete_surface | ( | int | id | ) |
Delete surface.
id | surface id |
Definition at line 1557 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 2498 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 872 of file gs2.c.
References gsd_calllists().
void GS_draw_cplane | ( | int | num | ) |
Draw cplace.
num | cplace id |
Definition at line 3144 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 3171 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 818 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 841 of file gs2.c.
References gsd_put_legend(), and name.
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 934 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 859 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 1862 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 1897 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 634 of file gs2.c.
References _viewcell_tri_interp(), g_surf::att, ATT_TOPO, g_vect_style::color, CONST_ATT, gsurf_att::constant, gs_get_att_src(), GS_get_longdim(), gs_get_surf(), gsd_do_scale(), gsd_linewidth(), gsd_pushmatrix(), gsd_translate(), NULL, g_surf::ox, g_surf::oy, g_vect_style::size, 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 3447 of file gs2.c.
References Cell_head::bottom, and Cell_head::top.
Referenced by gsd_set_view().
int GS_get_att | ( | int | id, |
int | att, | ||
int * | set, | ||
float * | constant, | ||
char * | mapname | ||
) |
Get attributes.
id | surface id | |
att | ||
[out] | set | |
[out] | constant | |
[out] | mapname |
Definition at line 1132 of file gs2.c.
References g_surf::att, CONST_ATT, gsurf_att::constant, gs_get_att_src(), gs_get_surf(), gsds_get_name(), gsurf_att::hdata, MAP_ATT, src, and strcpy.
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 1175 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 1498 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 2277 of file gs2.c.
References Cell_head::cols, g_surf::cols, gs_get_surf(), Cell_head::rows, 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 2253 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 2304 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 | ) |
int GS_get_fov | ( | void | ) |
void GS_get_from | ( | float * | fr | ) |
Get viewpoint 'from' position.
[out] | fr | from model coordinates |
Definition at line 2721 of file gs2.c.
References GS_v3eq().
Referenced by Nviz_get_viewpoint_position(), and Nviz_set_viewpoint_position().
void GS_get_from_real | ( | float * | fr | ) |
int GS_get_light_reset | ( | void | ) |
Definition at line 257 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) |
void GS_get_modelposition1 | ( | float | pos[] | ) |
Retrieves coordinates for lighting model position, at center of view.
pos[out] | coordinates |
Definition at line 499 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 1237 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 | ) |
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 3236 of file gs2.c.
Referenced by gsd_do_scale(), gsd_model2surf(), gsd_surf2model(), gsd_wire_arrows(), and gvd_vect().
int GS_get_SDscale | ( | float * | scale | ) |
int GS_get_SDsurf | ( | int * | id | ) |
Get ?
[out] | id | ? |
Definition at line 1077 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 3051 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 needed!
[out] | numsurf | number of available surfaces |
Definition at line 1530 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 2748 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 2413 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 | ) |
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 1301 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 2804 of file gs2.c.
References GS_v3dir().
int GS_get_wire_color | ( | int | id, |
int * | colr | ||
) |
Get wire color.
id | surface id | |
[out] | colr | color value |
Definition at line 2036 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 2662 of file gs2.c.
References G_debug(), gs_get_surf(), gs_get_zextents(), max, min, 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 2685 of file gs2.c.
References gs_get_zrange(), gvl_get_zrange(), max, and min.
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 2355 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 1997 of file gs2.c.
References G_debug().
Referenced by gpd_obj(), gsd_wire_arrows(), and Nviz_update_ranges().
int GS_has_transparency | ( | void | ) |
void GS_init_rotation | ( | void | ) |
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 3325 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 3002 of file gs2.c.
References GS_distance(), GS_get_selected_point_on_surface(), gs_get_surf(), GS_set_focus(), gsd_get_los(), g_surf::ox, g_surf::oy, 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 2613 of file gs2.c.
References G_debug().
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 2643 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 GS_get_light_reset(), GS_set_light_reset(), and MAX_LIGHTS.
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 223 of file gs2.c.
References G_debug().
int GS_num_surfs | ( | void | ) |
Get number of surfaces.
Definition at line 1515 of file gs2.c.
References gs_num_surfaces().
void GS_ready_draw | ( | void | ) |
Definition at line 2485 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 3312 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 1403 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 1476 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 3211 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 3119 of file gs2.c.
References gsd_cplane_setrot().
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 3132 of file gs2.c.
References gsd_cplane_settrans().
void GS_set_draw | ( | int | where | ) |
Sets which buffer to draw to.
where | GSD_BOTH, GSD_FRONT, GSD_BACK |
Definition at line 2459 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 2219 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 1951 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 2517 of file gs2.c.
References G_debug().
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 2578 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 2535 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 2838 of file gs2.c.
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 1975 of file gs2.c.
References G_debug().
Referenced by Gs_load_3dview().
void GS_set_infocus | ( | void | ) |
Set focus.
Make sure that the center of view is set
Definition at line 2962 of file gs2.c.
References G_debug().
Referenced by Nviz_set_focus_state().
void GS_set_light_reset | ( | int | i | ) |
Definition at line 250 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 564 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 2948 of file gs2.c.
References G_debug().
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 | ||
) |
void GS_set_rotation_matrix | ( | double * | matrix | ) |
int GS_set_SDscale | ( | float | scale | ) |
int GS_set_SDsurf | ( | int | id | ) |
Set surface as Scaled Difference surface.
id | surface id |
Definition at line 1041 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 2389 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 2872 of file gs2.c.
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 2976 of file gs2.c.
References Cell_head::bottom, G_debug(), gsd_viewport(), and Cell_head::top.
void GS_set_wire_color | ( | int | id, |
int | colr | ||
) |
Set wire color.
id | surface id |
colr | color value |
Definition at line 2012 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 2059 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 2196 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 489 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 1384 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 3223 of file gs2.c.
References gsd_cplane_off().
void GS_unset_rotation | ( | void | ) |
void GS_unset_SDsurf | ( | void | ) |
Unset Scaled Difference surface.
Definition at line 1025 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 989 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 1111 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 * | |||
) |