|
GRASS 8 Programmer's Manual 8.6.0dev(2026)-1d1e47ad9d
|
OGSF library - primitive drawing functions (lower level functions) More...
#include <stdlib.h>#include <string.h>#include <grass/config.h>#include <GL/gl.h>#include <GL/glu.h>#include <GL/glx.h>#include <grass/gis.h>#include <grass/ogsf.h>#include <grass/glocale.h>
Go to the source code of this file.
Macros | |
| #define | USE_GL_NORMALIZE |
| #define | RED_MASK 0x000000FF |
| #define | GRN_MASK 0x0000FF00 |
| #define | BLU_MASK 0x00FF0000 |
| #define | ALP_MASK 0xFF000000 |
| #define | INT_TO_RED(i, r) (r = (i & RED_MASK)) |
| #define | INT_TO_GRN(i, g) (g = (i & GRN_MASK) >> 8) |
| #define | INT_TO_BLU(i, b) (b = (i & BLU_MASK) >> 16) |
| #define | INT_TO_ALP(i, a) (a = (i & ALP_MASK) >> 24) |
| #define | MAX_OBJS 64 |
| #define | border 15 |
OGSF library - primitive drawing functions (lower level functions)
GRASS OpenGL gsurf OGSF Library
(C) 1999-2008, 2018 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 gsd_prim.c.
| #define ALP_MASK 0xFF000000 |
Definition at line 51 of file gsd_prim.c.
| #define BLU_MASK 0x00FF0000 |
Definition at line 50 of file gsd_prim.c.
| #define border 15 |
Definition at line 62 of file gsd_prim.c.
| #define GRN_MASK 0x0000FF00 |
Definition at line 49 of file gsd_prim.c.
Definition at line 56 of file gsd_prim.c.
| #define MAX_OBJS 64 |
Definition at line 58 of file gsd_prim.c.
| #define RED_MASK 0x000000FF |
Definition at line 48 of file gsd_prim.c.
| #define USE_GL_NORMALIZE |
Definition at line 46 of file gsd_prim.c.
ADD.
| n |
Definition at line 254 of file gsd_prim.c.
Referenced by GS_draw_lighting_model(), GS_draw_lighting_model1(), and gsd_3darrow().
Begin line.
Definition at line 397 of file gsd_prim.c.
Referenced by gk_draw_path(), gsd_3dcursor(), gsd_arrow(), gsd_diamond_lines(), gsd_draw_box(), gsd_draw_gyro(), gsd_fringe_horiz_line(), gsd_fringe_horiz_line2(), gsd_fringe_vert_line(), gsd_line_onsurf(), gsd_nline_onsurf(), gsd_plus(), gsd_put_legend(), gsd_scalebar_v2(), gsd_wire_surf_const(), gsd_wire_surf_map(), gsd_x(), gvd_draw_lineonsurf(), gvd_vect(), gvld_wind3_box(), and gvld_wire_slices().
ADD.
| listno | |
| do_draw |
Definition at line 1125 of file gsd_prim.c.
Referenced by gsd_3darrow(), and gsd_put_legend().
Delimit the vertices of a primitive or a group of like primitives.
Definition at line 372 of file gsd_prim.c.
Referenced by gsd_box(), gsd_cube(), gsd_diamond(), gsd_draw_cplane(), gsd_north_arrow(), gsd_scalebar(), gsd_surf_const(), and gvld_isosurf().
ADD.
Definition at line 277 of file gsd_prim.c.
Referenced by gsd_fringe_horiz_poly(), gsd_fringe_vert_poly(), and primitive_cylinder().
ADD.
Definition at line 337 of file gsd_prim.c.
Referenced by gsd_coarse_surf_map(), gsd_surf_map(), primitive_cone(), and primitive_cylinder().
ADD.
Definition at line 297 of file gsd_prim.c.
Referenced by gsd_diamond(), gsd_ortho_wall(), gsd_surf_const(), gsd_surf_map_old(), gsd_triangulated_wall(), and gvld_slice().
ADD.
Definition at line 317 of file gsd_prim.c.
Specify pixel arithmetic.
| yesno | turn on/off |
Definition at line 994 of file gsd_prim.c.
Referenced by gsd_coarse_surf_map(), gsd_draw_cplane(), gsd_ortho_wall(), gsd_surf_const(), gsd_surf_map(), gsd_surf_map_old(), gvld_isosurf(), gvld_slice(), and gvld_slices().
Draw to the front and back buffers.
Definition at line 446 of file gsd_prim.c.
Referenced by GS_set_draw().
ADD.
| listno |
Definition at line 1173 of file gsd_prim.c.
Referenced by GS_draw_list(), and gsd_3darrow().
ADD.
| listno | [unused] |
Definition at line 1185 of file gsd_prim.c.
References gsd_call_label(), gsd_popmatrix(), gsd_pushmatrix(), and MAX_OBJS.
Referenced by GS_draw_all_list().
| int gsd_checkpoint | ( | float | pt[4], |
| int | window[4], | ||
| int | viewport[4], | ||
| double | modelMatrix[16], | ||
| double | projMatrix[16] | ||
| ) |
ADD.
| pt | |
| window | |
| viewport | |
| doubleMatrix | |
| projMatrix |
Definition at line 585 of file gsd_prim.c.
Referenced by gpd_2dsite(), gpd_3dsite(), gsd_surf_const(), gsd_surf_map(), and gsd_surf_map_old().
ADD.
| x,y | |
| rad |
Definition at line 167 of file gsd_prim.c.
References x.
Referenced by gsd_draw_gyro().
Set current color.
| col | color value |
Definition at line 698 of file gsd_prim.c.
References b, g, INT_TO_ALP, INT_TO_BLU, INT_TO_GRN, INT_TO_RED, and r.
Referenced by gk_draw_path(), gpd_obj(), GS_draw_line_onsurf(), GS_draw_nline_onsurf(), gs_put_label(), gsd_3darrow(), gsd_arrow(), gsd_arrow_onsurf(), gsd_display_fringe(), gsd_draw_asterisk(), gsd_draw_box(), gsd_draw_cplane(), gsd_draw_gyro(), gsd_drawsphere(), gsd_get_los(), gsd_litvert_func(), gsd_north_arrow(), gsd_plus(), gsd_put_legend(), gsd_scalebar(), gsd_scalebar_v2(), gsd_wire_surf_const(), gsd_wire_surf_map(), gsd_x(), gvd_draw_lineonsurf(), gvd_vect(), gvld_wind3_box(), and gvld_wire_slices().
Set color mode.
Call glColorMaterial before enabling the GL_COLOR_MATERIAL
| cm | color mode value |
Definition at line 98 of file gsd_prim.c.
References CM_AD, CM_COLOR, CM_DIFFUSE, CM_EMISSION, and CM_NULL.
Referenced by gk_draw_path(), gpd_obj(), GS_draw_lighting_model(), GS_draw_lighting_model1(), gsd_bgn_legend_viewport(), gsd_coarse_surf_map(), gsd_display_fringe(), gsd_norm_arrows(), gsd_ortho_wall(), gsd_surf_const(), gsd_surf_map(), gsd_surf_map_old(), gsd_triangulated_wall(), gsd_wire_arrows(), gsd_wire_surf_const(), gsd_wire_surf_map(), gvd_vect(), gvld_isosurf(), gvld_slices(), gvld_wind3_box(), and gvld_wire_slices().
Define clip plane.
| num | |
| params |
Definition at line 1014 of file gsd_prim.c.
Referenced by gsd_def_cplane().
Define light.
| num | light id (starts with 1) |
| vals | position(x,y,z,w), color, ambientm, emission |
Definition at line 836 of file gsd_prim.c.
References lightdefs::ambient, lightdefs::color, MAX_LIGHTS, lightdefs::position, W, X, Y, and Z.
Referenced by GS_new_light(), GS_setlight_ambient(), GS_setlight_color(), and GS_setlight_position().
Delete list.
| listno | |
| range | [unused] |
Definition at line 1153 of file gsd_prim.c.
References MAX_OBJS.
Referenced by GS_delete_list().
ADD.
| x,y,z | |
| rad |
Definition at line 187 of file gsd_prim.c.
References x.
Referenced by gsd_arrow_onsurf().
End line.
Definition at line 407 of file gsd_prim.c.
Referenced by gk_draw_path(), gsd_3dcursor(), gsd_arrow(), gsd_diamond_lines(), gsd_draw_box(), gsd_draw_gyro(), gsd_fringe_horiz_line(), gsd_fringe_horiz_line2(), gsd_fringe_vert_line(), gsd_line_onsurf(), gsd_nline_onsurf(), gsd_plus(), gsd_put_legend(), gsd_scalebar_v2(), gsd_wire_surf_const(), gsd_wire_surf_map(), gsd_x(), gvd_draw_lineonsurf(), gvd_vect(), gvld_wind3_box(), and gvld_wire_slices().
End list.
Definition at line 1140 of file gsd_prim.c.
Referenced by gsd_3darrow(), and gsd_put_legend().
Delimit the vertices of a primitive or a group of like primitives.
Definition at line 387 of file gsd_prim.c.
Referenced by gsd_box(), gsd_cube(), gsd_diamond(), gsd_draw_cplane(), gsd_north_arrow(), gsd_scalebar(), gsd_surf_const(), and gvld_isosurf().
ADD.
Definition at line 287 of file gsd_prim.c.
Referenced by gsd_fringe_horiz_poly(), gsd_fringe_vert_poly(), and primitive_cylinder().
ADD.
Definition at line 347 of file gsd_prim.c.
Referenced by gsd_coarse_surf_map(), gsd_surf_map(), primitive_cone(), and primitive_cylinder().
ADD.
Definition at line 307 of file gsd_prim.c.
Referenced by gsd_diamond(), gsd_ortho_wall(), gsd_surf_const(), gsd_surf_map_old(), gsd_triangulated_wall(), and gvld_slice().
ADD.
Definition at line 327 of file gsd_prim.c.
Finish.
Does nothing, only called from src.contrib/GMSL/NVIZ2.2/src/glwrappers.c
Definition at line 1059 of file gsd_prim.c.
Mostly for flushing drawing commands across a network.
glFlush doesn't block, so if blocking is desired use glFinish.
Definition at line 84 of file gsd_prim.c.
Referenced by GS_clear(), GS_done_draw(), GS_draw_lighting_model(), GS_draw_line_onsurf(), GS_draw_nline_onsurf(), GS_draw_X(), 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(), and gsd_scalebar_v2().
Get image of current GL screen.
| pixbuf | data buffer | |
| [out] | xsize,ysize | picture dimension |
Definition at line 902 of file gsd_prim.c.
References b, G_malloc, l, r, and t.
Referenced by GS_write_ppm(), and GS_write_tif().
Get shaded model.
Definition at line 438 of file gsd_prim.c.
Referenced by gsd_3darrow(), gsd_box(), gsd_cube(), and gsd_diamond().
Get viewport.
| [out] | window | |
| viewport | ||
| modelMatrix | model matrix | |
| projMatrix | projection matrix |
Definition at line 554 of file gsd_prim.c.
References border, gsd_do_scale(), gsd_popmatrix(), and gsd_pushmatrix().
Referenced by gpd_2dsite(), gpd_3dsite(), gsd_surf_const(), gsd_surf_map(), gsd_surf_map_old(), gvld_isosurf(), and gvld_slices().
Set width of rasterized lines.
| n | line width |
Definition at line 267 of file gsd_prim.c.
Referenced by gk_draw_path(), gpd_2dsite(), gpd_3dsite(), GS_draw_line_onsurf(), GS_draw_nline_onsurf(), GS_draw_X(), gsd_arrow_onsurf(), gsd_bgn_legend_viewport(), gsd_display_fringe(), gsd_get_los(), gsd_scalebar_v2(), gvd_vect(), gvld_wind3_box(), and gvld_wire_slices().
Set the current normal vector & specify vertex.
| norm | normal vector |
| col | color value |
| pt | point (model coordinates) |
Definition at line 657 of file gsd_prim.c.
References gsd_color_func().
Referenced by gsd_box(), gsd_coarse_surf_map(), gsd_cube(), gsd_diamond(), gsd_ortho_wall(), gsd_surf_const(), gsd_surf_map(), gsd_surf_map_old(), gsd_triangulated_wall(), gvld_isosurf(), and gvld_slice().
ADD.
| norm | |
| col | [unused] |
| pt |
Definition at line 673 of file gsd_prim.c.
Referenced by primitive_cone(), and primitive_cylinder().
ADD.
First time called, gets a bunch of objects, then hands them back when needed
Definition at line 1094 of file gsd_prim.c.
References MAX_OBJS.
Referenced by gsd_3darrow(), and gsd_put_legend().
Pop the current matrix stack.
Definition at line 501 of file gsd_prim.c.
Referenced by gpd_2dsite(), gpd_3dsite(), gpd_obj(), GS_draw_lighting_model(), GS_draw_lighting_model1(), GS_draw_line_onsurf(), GS_draw_nline_onsurf(), GS_draw_X(), gsd_3darrow(), gsd_arrow(), gsd_bgn_legend_viewport(), gsd_box(), gsd_calllists(), gsd_coarse_surf_map(), gsd_cube(), gsd_diamond(), gsd_draw_asterisk(), gsd_draw_box(), gsd_draw_cplane(), gsd_draw_gyro(), 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_getwindow(), gsd_norm_arrows(), gsd_north_arrow(), gsd_ortho_wall(), gsd_scalebar(), gsd_scalebar_v2(), gsd_surf_const(), gsd_surf_map(), gsd_surf_map_old(), gsd_triangulated_wall(), gsd_wire_arrows(), gsd_wire_surf_const(), gsd_wire_surf_map(), gvd_vect(), gvld_isosurf(), gvld_slices(), gvld_wind3_box(), and gvld_wire_slices().
Push the current matrix stack.
Definition at line 511 of file gsd_prim.c.
Referenced by gpd_2dsite(), gpd_3dsite(), gpd_obj(), GS_draw_lighting_model(), GS_draw_lighting_model1(), GS_draw_line_onsurf(), GS_draw_nline_onsurf(), GS_draw_X(), GS_set_Narrow(), gsd_3darrow(), gsd_arrow(), gsd_bgn_legend_viewport(), gsd_box(), gsd_calllists(), gsd_coarse_surf_map(), gsd_cube(), gsd_diamond(), gsd_draw_asterisk(), gsd_draw_box(), gsd_draw_cplane(), gsd_draw_gyro(), gsd_fringe_horiz_line(), gsd_fringe_horiz_line2(), gsd_fringe_horiz_poly(), gsd_fringe_vert_line(), gsd_fringe_vert_poly(), gsd_getwindow(), gsd_norm_arrows(), gsd_north_arrow(), gsd_ortho_wall(), gsd_scalebar(), gsd_scalebar_v2(), gsd_surf_const(), gsd_surf_map(), gsd_surf_map_old(), gsd_triangulated_wall(), gsd_wire_arrows(), gsd_wire_surf_const(), gsd_wire_surf_map(), gvd_vect(), gvld_isosurf(), gvld_slices(), gvld_wind3_box(), and gvld_wire_slices().
ADD.
| angle | |
| axis |
Definition at line 605 of file gsd_prim.c.
References _, G_warning(), and x.
Referenced by gsd_3darrow(), gsd_arrow(), gsd_draw_asterisk(), gsd_draw_cplane(), and gsd_draw_gyro().
Multiply the current matrix by a general scaling matrix.
| xs | x scale value |
| ys | y scale value |
| zs | z scale value |
Definition at line 525 of file gsd_prim.c.
Referenced by gpd_obj(), GS_draw_lighting_model1(), gsd_3darrow(), gsd_arrow(), gsd_box(), gsd_cube(), gsd_diamond(), gsd_do_scale(), gsd_draw_asterisk(), gsd_draw_box(), gsd_draw_cplane(), and gsd_draw_gyro().
Set clip plane.
| num | |
| able |
Definition at line 1041 of file gsd_prim.c.
Referenced by gsd_cplane_off(), gsd_cplane_on(), gsd_draw_cplane(), and gsd_draw_cplane_fence().
Set material.
| set_shin,set_emis | flags |
| sh,em | should be 0. - 1. |
| emcolor | packed colors to use for emission |
Definition at line 803 of file gsd_prim.c.
Referenced by gsd_coarse_surf_map(), gsd_surf_map(), gsd_surf_map_old(), gvld_isosurf(), gvld_slices(), and gvld_wire_slices().
Set shaded model.
| shade | non-zero for GL_SMOOTH otherwise GL_FLAT |
Definition at line 419 of file gsd_prim.c.
Referenced by GS_draw_lighting_model(), GS_draw_lighting_model1(), GS_draw_surf(), gsd_3darrow(), gsd_box(), gsd_cube(), gsd_diamond(), gvld_isosurf(), gvld_slices(), gvld_wind3_box(), and gvld_wire_slices().
ADD.
| center | center-point |
| siz | size value |
Definition at line 207 of file gsd_prim.c.
Referenced by gpd_obj(), and gsd_drawsphere().
Switch light on/off.
| num | |
| on | 1 for 'on', 0 turns them off |
Definition at line 877 of file gsd_prim.c.
Referenced by GS_lights_off(), GS_lights_on(), GS_new_light(), and GS_switchlight().
Multiply the current matrix by a translation matrix.
| dx | x translation value |
| dy | y translation value |
| dz | z translation value |
Definition at line 539 of file gsd_prim.c.
Referenced by gpd_2dsite(), GS_draw_line_onsurf(), GS_draw_nline_onsurf(), GS_draw_X(), gsd_3darrow(), gsd_arrow(), gsd_box(), gsd_coarse_surf_map(), gsd_cube(), gsd_diamond(), gsd_do_scale(), gsd_draw_asterisk(), gsd_draw_box(), gsd_draw_cplane(), gsd_draw_gyro(), gsd_fringe_horiz_line(), gsd_fringe_horiz_line2(), gsd_fringe_horiz_poly(), gsd_fringe_vert_line(), gsd_fringe_vert_poly(), gsd_norm_arrows(), gsd_surf_const(), gsd_surf_map(), gsd_surf_map_old(), gsd_wire_arrows(), gsd_wire_surf_const(), gsd_wire_surf_map(), gvd_vect(), gvld_isosurf(), gvld_slices(), gvld_wind3_box(), and gvld_wire_slices().
ADD.
| pt |
Definition at line 686 of file gsd_prim.c.
Referenced by gk_draw_path(), gsd_3dcursor(), gsd_arrow(), gsd_diamond_lines(), gsd_draw_box(), gsd_draw_cplane(), gsd_draw_gyro(), gsd_fringe_horiz_line(), gsd_fringe_horiz_line2(), gsd_fringe_horiz_poly(), gsd_fringe_vert_line(), gsd_fringe_vert_poly(), gsd_line_onsurf(), gsd_nline_onsurf(), gsd_plus(), gsd_scalebar_v2(), gsd_wire_surf_const(), gsd_wire_surf_map(), gsd_x(), gvd_draw_lineonsurf(), gvd_vect(), gvld_wind3_box(), and gvld_wire_slices().
Set the viewport.
l, b specify the lower left corner of the viewport rectangle, in pixels.
r, t specify the width and height of the viewport.
| l | left |
| r | right |
| b | bottom |
| t | top |
Definition at line 1077 of file gsd_prim.c.
Referenced by GS_set_viewport().
Write view.
| pixbuf | data buffer |
| xsize,ysize | picture dimension |
Definition at line 969 of file gsd_prim.c.
References G_malloc.
Referenced by GS_write_zoom().
Write out z-mask.
Enable or disable writing into the depth buffer
| n | Specifies whether the depth buffer is enabled for writing |
Definition at line 241 of file gsd_prim.c.
Referenced by gk_draw_path(), GS_draw_lighting_model(), GS_draw_lighting_model1(), gsd_coarse_surf_map(), gsd_display_fringe(), gsd_draw_cplane(), gsd_ortho_wall(), gsd_surf_const(), gsd_surf_map(), gsd_surf_map_old(), gvld_isosurf(), gvld_slice(), and gvld_slices().
Print color mode to stderr.
Definition at line 151 of file gsd_prim.c.
References _, and G_message().
Referenced by gsd_surf_map_old().