|
GRASS 8 Programmer's Manual 8.6.0dev(2026)-5f4f7ad06c
|
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. | |
| int | GS_get_longdim (float *dim) |
| Get largest dimension. | |
| int | GS_get_region (float *n, float *s, float *w, float *e) |
| Get 2D region extent. | |
| void | GS_set_att_defaults (float *defs, float *null_defs) |
| Set default attributes for map objects. | |
| int | GS_surf_exists (int id) |
| int | GS_new_surface (void) |
| Add new surface. | |
| void | GS_set_light_reset (int i) |
| int | GS_get_light_reset (void) |
| int | GS_new_light (void) |
| Add new model light. | |
| void | GS_setlight_position (int num, float xpos, float ypos, float zpos, int local) |
| Set light position. | |
| void | GS_getlight_position (int num, float *xpos, float *ypos, float *zpos, int *local) |
| Get light position. | |
| void | GS_setlight_color (int num, float red, float green, float blue) |
| Set light color. | |
| void | GS_getlight_color (int num, float *red, float *green, float *blue) |
| Get light color. | |
| void | GS_setlight_ambient (int num, float red, float green, float blue) |
| Set light ambient. | |
| void | GS_getlight_ambient (int num, float *red, float *green, float *blue) |
| Get light ambient. | |
| void | GS_lights_off (void) |
| Switch off all lights. | |
| void | GS_lights_on (void) |
| Switch on all lights. | |
| void | GS_switchlight (int num, int on) |
| Switch on/off light. | |
| int | GS_transp_is_set (void) |
| Check if transparency is set. | |
| void | GS_get_modelposition1 (float pos[]) |
| Retrieves coordinates for lighting model position, at center of view. | |
| void | GS_get_modelposition (float *size, float *pos) |
| Retrieves coordinates for lighting model position, at center of view. | |
| void | GS_set_Narrow (int *pt, int id, float *pos2) |
| Set decoration, north arrow ?? | |
| void | GS_draw_X (int id, float *pt) |
| Draw place marker. | |
| void | GS_draw_line_onsurf (int id, float x1, float y1, float x2, float y2) |
| Draw line on surface. | |
| int | GS_draw_nline_onsurf (int id, float x1, float y1, float x2, float y2, float *lasp, int n) |
| Draw multiline on surface. | |
| void | GS_draw_flowline_at_xy (int id, float x, float y) |
| Draw flow-line on surace. | |
| void | GS_draw_fringe (int id, unsigned long clr, float elev, int *where) |
| Draw fringe around data (surface) at selected corners. | |
| int | GS_draw_legend (const char *name, GLuint fontbase, int size, int *flags, float *range, int *pt) |
| Draw legend. | |
| void | GS_draw_list (GLuint list_id) |
| Draw pre-defined list. | |
| void | GS_draw_all_list (void) |
| Draw all glLists. | |
| void | GS_delete_list (GLuint list_id) |
| Delete pre-defined list. | |
| void | GS_draw_lighting_model1 (void) |
| Draw lighting model. | |
| void | GS_draw_lighting_model (void) |
| Draw lighting model. | |
| int | GS_update_curmask (int id) |
| Update current mask. | |
| int | GS_is_masked (int id, float *pt) |
| Check if point is masked ? | |
| void | GS_unset_SDsurf (void) |
| Unset Scaled Difference surface. | |
| int | GS_set_SDsurf (int id) |
| Set surface as Scaled Difference surface. | |
| int | GS_set_SDscale (float scale) |
| Set ? | |
| int | GS_get_SDsurf (int *id) |
| Get ? | |
| int | GS_get_SDscale (float *scale) |
| Get ? | |
| int | GS_update_normals (int id) |
| Update normals. | |
| int | GS_get_att (int id, int att, int *set, float *constant, char *mapname) |
| Get attributes. | |
| int | GS_get_cat_at_xy (int id, int att, char *catstr, float x, float y) |
| Get surface category on given position. | |
| int | GS_get_norm_at_xy (int id, float x, float y, float *nv) |
| Get surface normal at x,y (real coordinates) | |
| int | GS_get_val_at_xy (int id, int att, char *valstr, float x, float y) |
| Get RGB color at given point. | |
| int | GS_unset_att (int id, int att) |
| Unset attribute. | |
| int | GS_set_att_const (int id, int att, float constant) |
| Set attribute constant. | |
| int | GS_set_maskmode (int id, int mode) |
| Set mask mode. | |
| int | GS_get_maskmode (int id, int *mode) |
| Get mask mode. | |
| int | GS_Set_ClientData (int id, void *clientd) |
| Set client data. | |
| void * | GS_Get_ClientData (int id) |
| Get client data. | |
| int | GS_num_surfs (void) |
| Get number of surfaces. | |
| int * | GS_get_surf_list (int *numsurfs) |
| Get surface list. | |
| int | GS_delete_surface (int id) |
| Delete surface. | |
| int | GS_load_att_map (int id, const char *filename, int att) |
| Load raster map as attribute. | |
| void | GS_draw_surf (int id) |
| Draw surface. | |
| void | GS_draw_wire (int id) |
| Draw surface wire. | |
| void | GS_alldraw_wire (void) |
| Draw all wires. | |
| void | GS_alldraw_surf (void) |
| Draw all surfaces. | |
| void | GS_set_exag (int id, float exag) |
| Set Z exag for surface. | |
| void | GS_set_global_exag (float exag) |
| Set global z-exag value. | |
| float | GS_global_exag (void) |
| Get global z-exag value. | |
| void | GS_set_wire_color (int id, int colr) |
| Set wire color. | |
| int | GS_get_wire_color (int id, int *colr) |
| Get wire color. | |
| int | GS_setall_drawmode (int mode) |
| Set all draw-modes. | |
| int | GS_set_drawmode (int id, int mode) |
| Set draw mode. | |
| int | GS_get_drawmode (int id, int *mode) |
| Get draw mode. | |
| void | GS_set_nozero (int id, int att, int mode) |
| Set no-zero ? | |
| int | GS_get_nozero (int id, int att, int *mode) |
| Get no-zero ? | |
| int | GS_setall_drawres (int xres, int yres, int xwire, int ywire) |
| Set all draw resolutions. | |
| int | GS_set_drawres (int id, int xres, int yres, int xwire, int ywire) |
| Set draw resolution for surface. | |
| void | GS_get_drawres (int id, int *xres, int *yres, int *xwire, int *ywire) |
| Get draw resolution of surface. | |
| void | GS_get_dims (int id, int *rows, int *cols) |
| Get dimension of surface. | |
| int | GS_get_exag_guess (int id, float *exag) |
| Get exag-value guess. | |
| void | GS_get_zrange_nz (float *min, float *max) |
| Get Z extents for all loaded surfaces. | |
| void | GS_set_trans (int id, float xtrans, float ytrans, float ztrans) |
| Set translation (surface position) | |
| void | GS_get_trans (int id, float *xtrans, float *ytrans, float *ztrans) |
| Get translation values (surface position) | |
| unsigned int | GS_default_draw_color (void) |
| Get default draw color. | |
| unsigned int | GS_background_color (void) |
| Get background color. | |
| void | GS_set_draw (int where) |
| Sets which buffer to draw to. | |
| void | GS_ready_draw (void) |
| void | GS_done_draw (void) |
| Draw done, swap buffers. | |
| void | GS_set_focus (float *realto) |
| Set focus. | |
| void | GS_set_focus_real (float *realto) |
| Set real focus. | |
| int | GS_get_focus (float *realto) |
| Get focus. | |
| void | GS_set_focus_center_map (int id) |
| Set focus to map center. | |
| void | GS_moveto (float *pt) |
| Move viewpoint. | |
| void | GS_moveto_real (float *pt) |
| Move position to (real) | |
| int | GS_get_zextents (int id, float *min, float *max, float *mid) |
| Get z-extent for a single surface. | |
| int | GS_get_zrange (float *min, float *max, int doexag) |
| Get z-extent for all loaded surfaces. | |
| void | GS_get_from (float *fr) |
| Get viewpoint 'from' position. | |
| void | GS_get_from_real (float *fr) |
| Get viewpoint 'from' real coordinates. | |
| void | GS_get_to_real (float *to) |
| Get 'to' real coordinates. | |
| void | GS_zoom_setup (int *a, int *b, int *c, int *d, int *maxx, int *maxy) |
| Get zoom setup. | |
| void | GS_get_to (float *to) |
| Get 'to' model coordinates. | |
| void | GS_get_viewdir (float *dir) |
| Get viewdir. | |
| void | GS_set_viewdir (float *dir) |
| Set viewdir. | |
| void | GS_set_fov (int fov) |
| Set field of view. | |
| int | GS_get_fov (void) |
| Get field of view. | |
| int | GS_get_twist (void) |
| Get twist value. | |
| void | GS_set_twist (int t) |
| Set viewpoint twist value. | |
| void | GS_set_rotation (double angle, double x, double y, double z) |
| Set rotation params. | |
| void | GS_unset_rotation (void) |
| Stop scene rotation. | |
| void | GS_init_rotation (void) |
| Reset scene rotation. | |
| void | GS_get_rotation_matrix (double *matrix) |
| Get rotation matrix. | |
| void | GS_set_rotation_matrix (double *matrix) |
| Set rotation matrix. | |
| void | GS_set_nofocus (void) |
| Unset focus. | |
| void | GS_set_infocus (void) |
| Set focus. | |
| void | GS_set_viewport (int left, int right, int bottom, int top) |
| Set viewport. | |
| 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. | |
| int | GS_get_selected_point_on_surface (int sx, int sy, int *id, float *x, float *y, float *z) |
| Get selected point of surface. | |
| void | GS_set_cplane_rot (int num, float dx, float dy, float dz) |
| Set cplace rotation. | |
| void | GS_set_cplane_trans (int num, float dx, float dy, float dz) |
| Set cplace trans. | |
| void | GS_draw_cplane (int num) |
| Draw cplace. | |
| int | GS_draw_cplane_fence (int hs1, int hs2, int num) |
| Draw cplace fence ? | |
| void | GS_alldraw_cplane_fences (void) |
| Draw all cplace fences ? | |
| void | GS_set_cplane (int num) |
| Set cplace. | |
| void | GS_unset_cplane (int num) |
| Unset clip place (turn off) | |
| void | GS_get_scale (float *sx, float *sy, float *sz, int doexag) |
| Get axis scale. | |
| void | GS_set_fencecolor (int mode) |
| Set fence color. | |
| int | GS_get_fencecolor (void) |
| Get fence color. | |
| 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. | |
| int | GS_save_3dview (const char *vname, int surfid) |
| Save 3d view. | |
| int | GS_load_3dview (const char *vname, int surfid) |
| Load 3d view. | |
| void | GS_init_view (void) |
| Init viewpoint. | |
| void | GS_clear (int col) |
| Clear view. | |
| double | GS_get_aspect (void) |
| Get aspect value. | |
| int | GS_has_transparency (void) |
| Check for transparency. | |
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.
Draw all cplace fences ?
Definition at line 3194 of file gs2.c.
References GS_draw_cplane_fence(), gsd_get_cplanes_state(), and MAX_CPLANES.
Referenced by gk_follow_frames().
Draw all surfaces.
Definition at line 1937 of file gs2.c.
References GS_draw_surf().
Referenced by gk_follow_frames().
Draw all wires.
Overrides draw_mode for fast display
Definition at line 1920 of file gs2.c.
References gs_get_surf(), and gsd_wire_surf().
Referenced by gk_follow_frames(), GK_set_tension(), Gs_load_3dview(), Nviz_draw_quick(), and Nviz_resize_window().
Get background color.
Definition at line 2452 of file gs2.c.
Referenced by gk_draw_path(), gk_follow_frames(), and GK_set_tension().
Clear view.
| col | color value |
Definition at line 3417 of file gs2.c.
References G_debug(), and gsd_flush().
Referenced by gk_follow_frames(), GK_set_tension(), Nviz_draw_all(), and Nviz_draw_quick().
Get default draw color.
Definition at line 2439 of file gs2.c.
References G_debug().
Referenced by gk_draw_path(), GS_draw_line_onsurf(), GS_draw_nline_onsurf(), and gsd_draw_cplane().
Delete pre-defined list.
| list_id | list id |
Definition at line 886 of file gs2.c.
References gsd_deletelist().
Delete surface.
| id | surface id |
Definition at line 1559 of file gs2.c.
References FALSE, G_debug(), gs_delete_surf(), GS_surf_exists(), gv_update_drapesurfs(), and TRUE.
Draw done, swap buffers.
Definition at line 2501 of file gs2.c.
References G_debug(), GSD_BACK, gsd_flush(), and gsd_swapbuffers().
Referenced by gk_follow_frames(), GK_set_tension(), GK_show_path(), GK_show_site(), GK_show_vect(), GK_show_vol(), 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(), Nviz_draw_all_site(), Nviz_draw_all_vect(), Nviz_draw_all_vol(), Nviz_draw_image(), Nviz_draw_model(), Nviz_draw_quick(), and Nviz_resize_window().
Draw all glLists.
Uses glFlush() to ensure all drawing is complete before returning
Definition at line 874 of file gs2.c.
References gsd_calllists().
Referenced by gk_follow_frames(), and GK_show_list().
Draw cplace.
| num | cplace id |
Definition at line 3147 of file gs2.c.
References gs_getall_surfaces(), gs_num_surfaces(), gsd_draw_cplane(), gsd_draw_cplane_fence(), and MAX_SURFS.
Draw cplace fence ?
| hs1,hs2 | |
| num | cplane id |
Definition at line 3174 of file gs2.c.
References gs_get_surf(), gsd_draw_cplane_fence(), and NULL.
Referenced by GS_alldraw_cplane_fences(), and Nviz_draw_all_surf().
Draw flow-line on surace.
This is slow - should be moved to gs_ but GS_ good for testing and useful for app programmer
| id | surface id |
| x,y | coordinates of flow-line |
Definition at line 753 of file gs2.c.
References G_debug(), GS_coordpair_repeats(), GS_draw_nline_onsurf(), GS_get_norm_at_xy(), gs_get_surf(), GS_v2norm(), VXRES, VYRES, X, x, Y, and Z.
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 820 of file gs2.c.
References G_debug(), gs_get_surf(), and gsd_display_fringe().
Referenced by Nviz_draw_all(), and Nviz_draw_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 843 of file gs2.c.
References gsd_put_legend(), and name.
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 936 of file gs2.c.
References CM_DIFFUSE, DM_GOURAUD, GS_get_modelposition(), GS_v3eq(), gsd_backface(), gsd_colormode(), gsd_cplane_off(), gsd_cplane_on(), gsd_drawsphere(), gsd_flush(), gsd_get_cplanes_state(), gsd_popmatrix(), gsd_pushmatrix(), gsd_shademodel(), gsd_zwritemask(), and MAX_CPLANES.
Referenced by Nviz_draw_model().
Draw lighting model.
Definition at line 896 of file gs2.c.
References CM_AD, DM_GOURAUD, GS_get_modelposition1(), GS_v3eq(), gsd_backface(), gsd_colormode(), gsd_do_scale(), gsd_drawsphere(), gsd_popmatrix(), gsd_pushmatrix(), gsd_scale(), gsd_shademodel(), gsd_zwritemask(), and Z.
Draw line on surface.
| id | surface id |
| x1,y1,x2,y2 | line nodes |
Definition at line 675 of file gs2.c.
References GS_default_draw_color(), gs_get_surf(), gsd_color_func(), gsd_do_scale(), gsd_flush(), gsd_line_onsurf(), gsd_linewidth(), gsd_popmatrix(), gsd_pushmatrix(), gsd_translate(), X, and Y.
Draw pre-defined list.
Uses glFlush() to ensure all drawing is complete before returning
| list_id | list id |
Definition at line 861 of file gs2.c.
References gsd_calllist().
Draw multiline on surface.
Like above but limits points in line to n or points found in segment, whichever is smaller.
| id | surface id |
| x1,y1,x2,y2 | line nodes |
| lasp | |
| n |
Definition at line 715 of file gs2.c.
References GS_default_draw_color(), gs_get_surf(), gsd_color_func(), gsd_do_scale(), gsd_flush(), gsd_linewidth(), gsd_nline_onsurf(), gsd_popmatrix(), gsd_pushmatrix(), gsd_surf2real(), gsd_translate(), X, and Y.
Referenced by GS_draw_flowline_at_xy().
Draw surface.
| id | surface id |
Definition at line 1865 of file gs2.c.
References DM_GOURAUD, DM_POLY, DM_WIRE, DM_WIRE_POLY, G_debug(), gs_get_surf(), gsd_shademodel(), gsd_surf(), and gsd_wire_surf().
Referenced by GS_alldraw_surf(), and Nviz_draw_all_surf().
Draw surface wire.
Overrides draw_mode for fast display
| id | surface id |
Definition at line 1900 of file gs2.c.
References G_debug(), gs_get_surf(), and gsd_wire_surf().
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(), ATT_TOPO, g_vect_style::color, CONST_ATT, 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_vect_style::size, ST_GYRO, g_vect_style::symbol, X, Y, and Z.
Get aspect value.
Definition at line 3450 of file gs2.c.
References Cell_head::bottom, G_debug(), and Cell_head::top.
Referenced by GS_init_view(), and gsd_set_view().
Get attributes.
| id | surface id | |
| att | ||
| [out] | set | |
| [out] | constant | |
| [out] | mapname |
Definition at line 1134 of file gs2.c.
References CONST_ATT, gs_get_att_src(), gs_get_surf(), gsds_get_name(), MAP_ATT, and strcpy.
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 1177 of file gs2.c.
References _, 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(), in_vregion(), MAP_ATT, NULL, VCOL2DCOL, VROW2DROW, X, x, X2VCOL, Y, and Y2VROW.
Get client data.
| id | surface id |
Definition at line 1500 of file gs2.c.
References gs_get_surf(), and NULL.
Get dimension of surface.
| id | surface id | |
| [out] | rows,cols | number of rows/cols |
Definition at line 2280 of file gs2.c.
References Cell_head::cols, gs_get_surf(), and Cell_head::rows.
Referenced by Nviz_set_attr().
| 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 |
Definition at line 3284 of file gs2.c.
References G_debug(), gs_distance_onsurf(), gs_get_surf(), gsd_real2surf(), NULL, X, and Y.
Get draw mode.
| id | surface id | |
| [out] | mode | mode id |
Definition at line 2110 of file gs2.c.
References gs_get_surf().
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 2256 of file gs2.c.
References G_debug(), and gs_get_surf().
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 2307 of file gs2.c.
References ATT_TOPO, CONST_ATT, G_debug(), gs_get_att_src(), and gs_get_surf().
Referenced by Nviz_get_exag(), and Nviz_get_exag_height().
Get focus.
OK to call with NULL argument if just want to check state
| realto | real coordinates to |
Definition at line 2562 of file gs2.c.
References G_debug(), and GS_v3eq().
Referenced by GS_get_to_real(), Nviz_get_focus(), and Nviz_has_focus().
Get field of view.
Definition at line 2853 of file gs2.c.
Referenced by GK_add_key().
Get viewpoint 'from' position.
| [out] | fr | from model coordinates |
Definition at line 2724 of file gs2.c.
References FROM, G_debug(), and GS_v3eq().
Referenced by GK_add_key(), gk_draw_path(), gk_follow_frames(), Nviz_flythrough(), Nviz_get_viewpoint_position(), and Nviz_set_viewpoint_position().
Get viewpoint 'from' real coordinates.
| [out] | fr | 'from' real coordinates |
Definition at line 2738 of file gs2.c.
References FROM, GS_v3eq(), and gsd_model2real().
Referenced by Nviz_get_viewpoint_height(), and Nviz_set_viewpoint_height().
Definition at line 257 of file gs2.c.
Referenced by GS_new_light().
Get largest dimension.
| [out] | dim | dimension |
Definition at line 140 of file gs2.c.
References G_debug().
Referenced by gk_draw_path(), gp_set_defaults(), GS_draw_X(), gsd_draw_cplane(), Nviz_get_exag_height(), Nviz_get_longdim(), and Nviz_update_ranges().
Get mask mode.
| id | surface id | |
| [out] | mode | id |
Definition at line 1454 of file gs2.c.
References ATT_MASK, and gs_get_surf().
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.
| [out] | size | size |
| [out] | pos | coordinates (X, Y, Z) |
Definition at line 528 of file gs2.c.
References FROM, GS_v3dir(), TO, X, Y, and Z.
Referenced by GS_draw_lighting_model().
Retrieves coordinates for lighting model position, at center of view.
| [out] | pos | coordinates |
Definition at line 499 of file gs2.c.
References G_debug(), gs_get_data_avg_zmax(), gs_get_datacenter(), X, Y, and Z.
Referenced by GS_draw_lighting_model1().
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 1239 of file gs2.c.
References DRC2OFF, FNORM, gs_calc_normals(), gs_get_surf(), gs_point_is_masked(), gsd_real2surf(), in_vregion(), NULL, VCOL2DCOL, VROW2DROW, X, x, X2VCOL, Y, and Y2VROW.
Referenced by GS_draw_flowline_at_xy().
Get 2D region extent.
| [out] | n,s,w,e | extent values |
Definition at line 156 of file gs2.c.
Referenced by GP_draw_site(), gsd_model2real(), gsd_real2model(), and Nviz_set_cplane_here().
Get axis scale.
| sx,sy,sz | x/y/z scale values |
| doexag | use vertical exaggeration |
Definition at line 3239 of file gs2.c.
Referenced by gsd_coarse_surf_map(), gsd_def_cplane(), gsd_do_scale(), gsd_model2real(), gsd_model2surf(), gsd_norm_arrows(), gsd_real2model(), gsd_surf2model(), gsd_surf_const(), gsd_surf_map(), gsd_surf_map_old(), gsd_wire_arrows(), gvd_vect(), gvld_isosurf(), gvld_slices(), and init_vars().
Get ?
| [out] | scale | value |
Definition at line 1099 of file gs2.c.
References gsdiff_get_SDscale().
Get ?
| [out] | id | ? |
Definition at line 1079 of file gs2.c.
References gsdiff_get_SDref().
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 FROM, G_debug(), GS_distance(), gs_get_surf(), gs_los_intersect(), gs_los_intersect1(), gs_point_is_masked(), gs_setlos_enterdata(), GS_v3eq(), gsd_get_los(), gsd_surf2real(), MAX_SURFS, X, x, Y, and Z.
Referenced by GS_look_here(), GS_set_Narrow(), and Nviz_set_cplane_here().
Get surface list.
Must be freed when not needed!
| [out] | numsurfs | number of available surfaces |
Definition at line 1532 of file gs2.c.
References G_malloc, and NULL.
Referenced by Nviz_draw_all_surf(), Nviz_get_exag(), Nviz_get_exag_height(), Nviz_new_fringe(), Nviz_new_map_obj(), Nviz_set_arrow(), Nviz_set_focus_map(), Nviz_set_fringe(), and Nviz_set_scalebar().
Get 'to' real coordinates.
| [out] | to | 'to' real coordinates |
Definition at line 2751 of file gs2.c.
References G_get_set_window(), GS_get_focus(), X, Y, and Z.
Get translation values (surface position)
| id | surface id | |
| [out] | xtrans,ytrans,ztrans | trans values |
Definition at line 2416 of file gs2.c.
References G_debug(), and gs_get_surf().
Get twist value.
10ths of degrees off twelve o'clock
Definition at line 2863 of file gs2.c.
Referenced by GK_add_key().
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 1303 of file gs2.c.
References ATT_COLOR, b, CONST_ATT, 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.
Get viewdir.
| [out] | dir | viewdir value |
Definition at line 2807 of file gs2.c.
References FROM, GS_v3dir(), and TO.
Referenced by GK_add_key(), gk_follow_frames(), and Nviz_flythrough().
Get wire color.
| id | surface id | |
| [out] | colr | color value |
Definition at line 2039 of file gs2.c.
References gs_get_surf().
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 2665 of file gs2.c.
References G_debug(), gs_get_surf(), gs_get_zextents(), max, min, and NULL.
Get z-extent for all loaded surfaces.
| [out] | min | min z-value |
| [out] | max | max z-value |
| doexag | use z-exaggeration |
Definition at line 2688 of file gs2.c.
References G_debug(), gs_get_zrange(), gvl_get_zrange(), max, and min.
Referenced by gs_get_databounds_planes(), Gs_save_3dview(), gsd_check_focus(), gsd_def_cplane(), gsd_do_scale(), gsd_model2real(), gsd_model2surf(), gsd_real2model(), and gsd_surf2model().
Get Z extents for all loaded surfaces.
Treating zeros as "no data"
| [out] | min | min value |
| [out] | max | max value |
Definition at line 2358 of file gs2.c.
References G_debug(), gs_get_surf(), max, and min.
Referenced by Nviz_get_exag_height(), Nviz_get_zrange(), and Nviz_update_ranges().
Get global z-exag value.
Definition at line 2000 of file gs2.c.
References G_debug().
Referenced by gpd_3dsite(), gpd_obj(), gs_distance_onsurf(), gsd_coarse_surf_map(), gsd_draw_cplane(), gsd_norm_arrows(), gsd_surf_map(), gsd_surf_map_old(), gsd_wire_arrows(), init_vars(), Nviz_change_exag(), and Nviz_update_ranges().
Reset scene rotation.
Definition at line 2907 of file gs2.c.
Referenced by GS_init_view(), and Nviz_init_rotation().
Init viewpoint.
Definition at line 3346 of file gs2.c.
References FROM, G_debug(), GS_get_aspect(), GS_init_rotation(), GS_set_focus(), GS_UNIT_SIZE, GS_v3eq(), GS_v3normalize(), TO, W, X, Y, and Z.
Referenced by Nviz_init_view().
Check if point is masked ?
| id | surface id |
| pt | point |
Definition at line 1009 of file gs2.c.
References gs_get_surf(), gs_point_is_masked(), X, and Y.
Initialize OGSF library.
Get region settings - wind
Set Region (NSWE array) and compute scale
Definition at line 98 of file gs2.c.
References Cxl_func, G_debug(), G_get_set_window(), gs_init(), GS_UNIT_SIZE, and void_func().
Load 3d view.
| vname | view file name |
| surfid | surface id |
Definition at line 3328 of file gs2.c.
References gs_get_surf(), and Gs_load_3dview().
Load raster map as attribute.
| id | surface id |
| filename | filename |
| att | attribute descriptor |
Definition at line 1600 of file gs2.c.
References _, ATT_COLOR, ATT_MASK, ATT_TOPO, ATTY_CHAR, ATTY_FLOAT, ATTY_INT, ATTY_MASK, ATTY_NULL, ATTY_SHORT, CF_COLOR_PACKED, free(), G_debug(), G_fatal_error(), G_find_raster2(), G_free(), G_fully_qualified_name(), G_warning(), Gs_build_256lookup(), gs_get_att_typbuff(), gs_get_surf(), gs_init_normbuff(), Gs_loadmap_as_bitmap(), Gs_loadmap_as_char(), Gs_loadmap_as_float(), Gs_loadmap_as_int(), Gs_loadmap_as_short(), gs_malloc_att_buff(), gs_malloc_lookup(), Gs_numtype(), Gs_pack_colors(), Gs_pack_colors_float(), gs_set_att_src(), gs_set_att_type(), Gs_update_attrange(), gs_update_curmask(), gsds_findh(), gsds_free_data_buff(), gsds_newh(), gsds_set_changed(), MAP_ATT, NULL, and Rast_get_cellhd().
Referenced by Nviz_set_attr().
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, GS_distance(), GS_get_selected_point_on_surface(), gs_get_surf(), GS_set_focus(), GS_v3dir(), GS_v3mult(), gsd_get_los(), TO, X, x, Y, and Z.
Referenced by Nviz_look_here().
Move viewpoint.
| pt | 'from' model coordinates |
Definition at line 2616 of file gs2.c.
References FROM, G_debug(), GS_v3add(), GS_v3eq(), GS_v3normalize(), GS_v3sub(), and TO.
Referenced by gk_follow_frames(), GS_moveto_real(), Nviz_flythrough(), and Nviz_set_viewpoint_position().
Move position to (real)
| pt | point real coordinates |
Definition at line 2646 of file gs2.c.
References GS_moveto(), and gsd_real2model().
Referenced by Gs_load_3dview(), and Nviz_set_viewpoint_height().
Add new model light.
Definition at line 268 of file gs2.c.
References GS_get_light_reset(), GS_set_light_reset(), gsd_deflight(), gsd_init_lightmodel(), gsd_switchlight(), MAX_LIGHTS, W, X, Y, and Z.
Referenced by Nviz_new_light().
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 ATT_SHINE, CONST_ATT, G_debug(), gs_get_new_surface(), gs_init_surf(), gs_set_att_src(), gs_set_defaults(), g_surf::gsurf_id, and MAX_SURFS.
Referenced by Nviz_new_map_obj().
Get number of surfaces.
Definition at line 1517 of file gs2.c.
References gs_num_surfaces().
Referenced by Nviz_new_map_obj(), Nviz_set_arrow(), Nviz_set_focus_map(), and Nviz_set_scalebar().
Definition at line 2488 of file gs2.c.
References G_debug(), and gsd_set_view().
Referenced by gk_follow_frames(), GK_set_tension(), GK_show_path(), GK_show_site(), GK_show_vect(), GK_show_vol(), gsd_bgn_legend_viewport(), gsd_get_los(), Nviz_draw_all(), Nviz_draw_all_site(), Nviz_draw_all_vect(), Nviz_draw_all_vol(), Nviz_draw_model(), Nviz_draw_quick(), and Nviz_resize_window().
Save 3d view.
| vname | view file name |
| surfid | surface id |
Definition at line 3315 of file gs2.c.
References gs_get_surf(), and Gs_save_3dview().
Set attribute constant.
| id | surface id |
| att | attribute id |
| constant | value |
Definition at line 1405 of file gs2.c.
References gs_get_surf(), gs_set_att_const(), and Gs_update_attrange().
Referenced by Nviz_set_attr().
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().
Set client data.
| id | surface id |
| clientd | pointer to client data struct |
Definition at line 1478 of file gs2.c.
References gs_get_surf().
Set cplace.
| num | cplane id |
Definition at line 3214 of file gs2.c.
References gsd_cplane_on().
Referenced by Nviz_on_cplane().
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().
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().
Sets which buffer to draw to.
| where | GSD_BOTH, GSD_FRONT, GSD_BACK |
Definition at line 2462 of file gs2.c.
References GSD_BACK, gsd_backbuffer(), GSD_BOTH, gsd_bothbuffers(), GSD_FRONT, and gsd_frontbuffer().
Referenced by gk_follow_frames(), GK_set_tension(), GK_show_path(), GK_show_site(), GK_show_vect(), GK_show_vol(), 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_get_los(), gsd_north_arrow(), gsd_ortho_wall(), gsd_scalebar(), gsd_scalebar_v2(), Nviz_draw_all(), Nviz_draw_all_site(), Nviz_draw_all_vect(), Nviz_draw_all_vol(), Nviz_draw_image(), Nviz_draw_model(), Nviz_draw_quick(), and Nviz_resize_window().
Set draw mode.
| id | surface id |
| mode | mode type(s) |
Definition at line 2084 of file gs2.c.
References G_debug(), and gs_get_surf().
Referenced by GS_setall_drawmode(), and Nviz_set_attr().
Set draw resolution for surface.
| id | surface id |
| xres,yres | x/y resolution value |
| xwire,ywire | x/y wire value |
Definition at line 2222 of file gs2.c.
References G_debug(), and gs_get_surf().
Referenced by GS_setall_drawres(), and Nviz_set_attr().
Set Z exag for surface.
| id | surface id |
| exag | z-exag value |
Definition at line 1954 of file gs2.c.
References G_debug(), and gs_get_surf().
Set fence color.
| mode | mode id |
Definition at line 3255 of file gs2.c.
References gsd_setfc().
Referenced by Nviz_set_fence_color().
Set focus.
| realto | real coordinates to |
Definition at line 2520 of file gs2.c.
References G_debug(), GS_v3eq(), and gsd_set_view().
Referenced by GS_init_view(), Gs_load_3dview(), GS_look_here(), GS_set_focus_center_map(), GVL_set_focus_center_map(), and Nviz_set_focus().
Set focus to map center.
| id | surface id |
Definition at line 2581 of file gs2.c.
References G_debug(), gs_get_surf(), GS_set_focus(), X, Y, and Z.
Referenced by Nviz_set_focus_map().
Set real focus.
| realto | real coordinates to |
Definition at line 2538 of file gs2.c.
References G_get_set_window(), GS_v3eq(), gsd_set_view(), X, and Y.
Set field of view.
| fov | fov value |
Definition at line 2841 of file gs2.c.
Referenced by gk_follow_frames(), Gs_load_3dview(), and Nviz_set_viewpoint_persp().
Set global z-exag value.
| exag | exag value to be set up |
Definition at line 1978 of file gs2.c.
References G_debug().
Referenced by Gs_load_3dview(), and Nviz_change_exag().
Set focus.
Make sure that the center of view is set
Definition at line 2965 of file gs2.c.
References G_debug().
Referenced by Nviz_set_focus_state().
Definition at line 250 of file gs2.c.
Referenced by GS_new_light(), and Nviz_init_data().
Set mask mode.
Mask attribute special: constant is set to indicate invert or no
| id | surface id |
| mode | id |
Definition at line 1429 of file gs2.c.
References ATT_MASK, and gs_get_surf().
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(), X, x, Y, and Z.
Referenced by Nviz_set_arrow(), and Nviz_set_scalebar().
Unset focus.
Definition at line 2951 of file gs2.c.
References G_debug().
Referenced by GS_set_viewdir(), Nviz_set_focus_map(), and Nviz_set_focus_state().
Set rotation params.
Definition at line 2885 of file gs2.c.
References x.
Referenced by Nviz_set_rotation().
Set ?
| scale | scale value |
Definition at line 1064 of file gs2.c.
References gsdiff_set_SDscale().
Set surface as Scaled Difference surface.
| id | surface id |
Definition at line 1043 of file gs2.c.
References gs_get_surf(), and gsdiff_set_SDref().
Set translation (surface position)
| id | surface id |
| xtrans,ytrans,ztrans | translation values |
Definition at line 2392 of file gs2.c.
References G_debug(), and gs_get_surf().
Set viewpoint twist value.
10ths of degrees off twelve o'clock
| t | tenths of degrees clockwise from 12:00. |
Definition at line 2875 of file gs2.c.
References t.
Referenced by gk_follow_frames(), Gs_load_3dview(), and Nviz_set_viewpoint_twist().
Set viewdir.
Automatically turns off focus
| dir | viewdir value |
Definition at line 2821 of file gs2.c.
References FROM, GS_set_nofocus(), GS_v3add(), GS_v3eq(), GS_v3norm(), gsd_set_view(), and TO.
Referenced by gk_follow_frames(), and Nviz_flythrough().
Set viewport.
| left,right,bottom,top | viewport extent values |
Definition at line 2979 of file gs2.c.
References Cell_head::bottom, G_debug(), gsd_viewport(), and Cell_head::top.
Referenced by Nviz_resize_window().
Set wire color.
| id | surface id |
| colr | color value |
Definition at line 2015 of file gs2.c.
References G_debug(), and gs_get_surf().
Set all draw-modes.
| mode | mode id |
Definition at line 2062 of file gs2.c.
References GS_set_drawmode().
Referenced by Gs_load_3dview().
Set all draw resolutions.
| xres,yres | x/y resolution value |
| xwire,ywire | x/y wire value |
Definition at line 2199 of file gs2.c.
References GS_set_drawres().
Referenced by Gs_load_3dview().
Set light ambient.
Red, green, blue from 0.0 to 1.0
| num | light id (starts at 1) |
| red,green,blue | color values |
Definition at line 400 of file gs2.c.
References gsd_deflight().
Referenced by Nviz_set_light_ambient().
Set light color.
Definition at line 356 of file gs2.c.
References gsd_deflight().
Referenced by Nviz_set_light_bright(), and Nviz_set_light_color().
Set light position.
| num | light id (starts with 1) |
| xpos,ypos,zpos | coordinates (model) |
| local | local coordinate (for viewport) |
Definition at line 309 of file gs2.c.
References gsd_deflight(), W, X, Y, and Z.
Referenced by gk_follow_frames(), Nviz_draw_all_surf(), and Nviz_set_light_position().
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(), GV_select_surf(), Nviz_new_fringe(), and Nviz_set_fringe().
Switch on/off light.
| num | light id (starts at 1) |
| on | non-zero for 'on' otherwise 'off' |
Definition at line 470 of file gs2.c.
References gsd_switchlight().
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.
Unset attribute.
| id | surface id |
| att | attribute id |
Definition at line 1386 of file gs2.c.
References gs_get_surf(), gs_set_att_src(), and NOTSET_ATT.
Referenced by Nviz_unset_attr().
Unset clip place (turn off)
| num | cplane id |
Definition at line 3226 of file gs2.c.
References gsd_cplane_off().
Referenced by Nviz_off_cplane().
Unset Scaled Difference surface.
Definition at line 1027 of file gs2.c.
References gsdiff_set_SDref(), and NULL.
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 991 of file gs2.c.
References gs_get_surf(), and gs_update_curmask().
Update normals.
| id | surface id |
Definition at line 1113 of file gs2.c.
References gs_calc_normals(), and gs_get_surf().
Get zoom setup.
| [out] | a,b,c,d | current viewport settings |
| [out] | maxx,maxy | max viewport size |
Definition at line 2770 of file gs2.c.
References b, and gsd_getViewport().
Referenced by GS_zoom_setup().
Definition at line 86 of file gs2.c.
Referenced by GS_libinit().