GRASS Programmer's Manual
6.5.svn(2014)-r66266
|
OGSF library - loading and manipulating surfaces. More...
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <grass/gis.h>
#include <grass/gstypes.h>
Go to the source code of this file.
Functions | |
double | GS_geodistance (double *from, double *to, const char *units) |
Calculate distance between 2 coordinates. More... | |
float | GS_distance (float *from, float *to) |
Calculate distance. More... | |
float | GS_P2distance (float *from, float *to) |
Calculate distance in plane. More... | |
void | GS_v3eq (float *v1, float *v2) |
Copy vector values. More... | |
void | GS_v3add (float *v1, float *v2) |
Sum vectors. More... | |
void | GS_v3sub (float *v1, float *v2) |
Subtract vectors. More... | |
void | GS_v3mult (float *v1, float k) |
Multiple vectors. More... | |
int | GS_v3norm (float *v1) |
Change v1 so that it is a unit vector (2D) More... | |
int | GS_v2norm (float *v1) |
Change v1 so that it is a unit vector (3D) More... | |
int | GS_dv3norm (double *dv1) |
Changes v1 so that it is a unit vector. More... | |
int | GS_v3normalize (float *v1, float *v2) |
Change v2 so that v1v2 is a unit vector. More... | |
int | GS_v3dir (float *v1, float *v2, float *v3) |
Get a normalized direction from v1 to v2, store in v3. More... | |
void | GS_v2dir (float *v1, float *v2, float *v3) |
Get a normalized direction from v1 to v2, store in v3 (2D) More... | |
void | GS_v3cross (float *v1, float *v2, float *v3) |
Get the cross product v3 = v1 cross v2. More... | |
void | GS_v3mag (float *v1, float *mag) |
Magnitude of vector. More... | |
int | GS_coordpair_repeats (float *p1, float *p2, int nhist) |
ADD. More... | |
OGSF library - loading and manipulating surfaces.
GRASS OpenGL gsurf OGSF Library
(C) 1999-2008 by the GRASS Development Team
This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.
Definition in file GS_util.c.
ADD.
Initialize by calling with a number nhist to represent number of previous entrys to check, then call with zero as nhist
p1 | first point |
p2 | second point |
nhist | ? |
Definition at line 443 of file GS_util.c.
References G_free(), and NULL.
Referenced by GS_draw_flowline_at_xy().
float GS_distance | ( | float * | from, |
float * | to | ||
) |
Calculate distance.
from | 'from' point (X,Y,Z) |
to | 'to' point (X,Y,Z) |
Definition at line 141 of file GS_util.c.
Referenced by gs_distance_onsurf(), GS_get_selected_point_on_surface(), GS_look_here(), gs_los_intersect1(), gs_setlos_enterdata(), gsd_zup_twist(), gv_line_length(), and Nviz_set_cplane_here().
int GS_dv3norm | ( | double * | dv1 | ) |
double GS_geodistance | ( | double * | from, |
double * | to, | ||
const char * | units | ||
) |
Calculate distance between 2 coordinates.
Units is one of:
Default is meters.
from | starting point |
to | ending point |
units | map units |
Definition at line 55 of file GS_util.c.
References Gs_distance().
float GS_P2distance | ( | float * | from, |
float * | to | ||
) |
Calculate distance in plane.
from | 'from' point (X,Y) |
to | 'to' point (X,Y) |
Definition at line 160 of file GS_util.c.
Referenced by gsd_arrow(), gsd_draw_cplane_fence(), gv_line_length(), and seg_intersect_vregion().
void GS_v2dir | ( | float * | v1, |
float * | v2, | ||
float * | v3 | ||
) |
int GS_v2norm | ( | float * | v1 | ) |
void GS_v3add | ( | float * | v1, |
float * | v2 | ||
) |
Sum vectors.
v1 += v2
[in,out] | v1 | first vector |
v2 | second vector |
Definition at line 195 of file GS_util.c.
Referenced by GS_moveto(), GS_set_viewdir(), gs_setlos_enterdata(), and gsd_arrow_onsurf().
void GS_v3cross | ( | float * | v1, |
float * | v2, | ||
float * | v3 | ||
) |
Get the cross product v3 = v1 cross v2.
v1 | first vector | |
v2 | second vector | |
[out] | v3 | output vector |
Definition at line 406 of file GS_util.c.
Referenced by gsd_arrow_onsurf(), gsd_surf_map_old(), and Gv_load_vect().
int GS_v3dir | ( | float * | v1, |
float * | v2, | ||
float * | v3 | ||
) |
Get a normalized direction from v1 to v2, store in v3.
v1 | first vector | |
v2 | second vector | |
[out] | v3 | output vector |
Definition at line 353 of file GS_util.c.
Referenced by GS_get_modelposition(), GS_get_viewdir(), GS_look_here(), gs_los_intersect(), gs_los_intersect1(), gs_setlos_enterdata(), gsd_arrow_onsurf(), gsd_get_zup(), and Nviz_set_cplane_here().
void GS_v3eq | ( | float * | v1, |
float * | v2 | ||
) |
Copy vector values.
v1 = v2
[out] | v1 | first vector |
v2 | second vector |
Definition at line 178 of file GS_util.c.
Referenced by gpd_obj(), GS_draw_lighting_model(), GS_draw_lighting_model1(), GS_get_focus(), GS_get_from(), GS_get_from_real(), GS_get_selected_point_on_surface(), GS_get_to(), GS_init_view(), gs_los_intersect(), GS_moveto(), Gs_save_3dview(), GS_set_focus(), GS_set_focus_real(), GS_set_viewdir(), gsd_arrow_onsurf(), gsd_check_focus(), gsd_surf_map_old(), gsd_wall(), gsd_zup_twist(), gsdrape_get_allsegments(), and gsdrape_get_segments().
void GS_v3mag | ( | float * | v1, |
float * | mag | ||
) |
Magnitude of vector.
v1 | vector | |
[out] | mag | magnitude value |
Definition at line 421 of file GS_util.c.
Referenced by gsd_arrow_onsurf(), and gsd_surf_map_old().
void GS_v3mult | ( | float * | v1, |
float | k | ||
) |
Multiple vectors.
v1 *= k
[in,out] | v1 | vector |
k | multiplicator |
Definition at line 229 of file GS_util.c.
Referenced by GS_look_here(), Gs_save_3dview(), gs_setlos_enterdata(), gsd_arrow_onsurf(), gsd_check_focus(), and Nviz_set_cplane_here().
int GS_v3norm | ( | float * | v1 | ) |
Change v1 so that it is a unit vector (2D)
[in,out] | v1 | vector |
Definition at line 246 of file GS_util.c.
Referenced by GS_set_viewdir(), gsd_3darrow(), gsd_arrow(), gsd_draw_cplane_fence(), and iso_calc_cube().
int GS_v3normalize | ( | float * | v1, |
float * | v2 | ||
) |
Change v2 so that v1v2 is a unit vector.
v1 | first vector |
v2[in,out] | second vector |
Definition at line 322 of file GS_util.c.
Referenced by GS_init_view(), GS_moveto(), and gsd_check_focus().
void GS_v3sub | ( | float * | v1, |
float * | v2 | ||
) |
Subtract vectors.
v1 -= v2
[in,out] | v1 | first vector |
v2 | second vector |
Definition at line 212 of file GS_util.c.
Referenced by GS_moveto(), and gsd_surf_map_old().