GRASS GIS 8 Programmer's Manual  8.5.0dev(2024)-847944e18e
gpd.c File Reference

OGSF library - loading and manipulating point sets (lower level) More...

#include <stdlib.h>
#include <math.h>
#include <grass/ogsf.h>
#include "rowcol.h"
Include dependency graph for gpd.c:

Go to the source code of this file.

Macros

#define CHK_FREQ   50
 
#define v_border   50
 

Functions

int gs_point_in_region (geosurf *gs, float *pt, float *region)
 Check if point is in region. More...
 
void gpd_obj (geosurf *gs, gvstyle *style, Point3 pt)
 Draw point representing object. More...
 
int gpd_2dsite (geosite *gp, geosurf *gs, int do_fast UNUSED)
 Draw 2D point set. More...
 
int gpd_3dsite (geosite *gp, float xo, float yo, int do_fast UNUSED)
 Draw 3D point set. More...
 

Detailed Description

OGSF library - loading and manipulating point sets (lower level)

(C) 1999-2008, 2011 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.

Author
Bill Brown USACERL, GMSL/University of Illinois (December 1993)
Doxygenized by Martin Landa <landa.martin gmail.com> (May 2008)

Definition in file gpd.c.

Macro Definition Documentation

◆ CHK_FREQ

#define CHK_FREQ   50

Definition at line 22 of file gpd.c.

◆ v_border

#define v_border   50

Definition at line 25 of file gpd.c.

Function Documentation

◆ gpd_2dsite()

int gpd_2dsite ( geosite gp,
geosurf gs,
int do_fast  UNUSED 
)

Draw 2D point set.

Need to think about translations - If user translates surface, sites should automatically go with it, but translating sites should translate it relative to surface on which it's displayed

Handling mask checking here

Todo:
prevent scaling by 0
Parameters
gpsite (geosite)
gssurface (geosurf)
do_fast(unused)
Returns
0 on failure
1 on success

Definition at line 215 of file gpd.c.

◆ gpd_3dsite()

int gpd_3dsite ( geosite gp,
float  xo,
float  yo,
int do_fast  UNUSED 
)

Draw 3D point set.

Parameters
gpsite (geosite)
xo,yo
do_fast(unused)
Returns
0 on success
1 on failure

Definition at line 312 of file gpd.c.

◆ gpd_obj()

void gpd_obj ( geosurf gs,
gvstyle style,
Point3  pt 
)

Draw point representing object.

Do normal transforms before calling

Note gs: NULL if 3d obj or const elev surface

Parameters
gssurface (geosurf)
styleobject displaying style (highlighted or not)
pt3d point (Point3)

Definition at line 70 of file gpd.c.

References CM_COLOR, CM_DIFFUSE, g_vect_style::color, GS_global_exag(), GS_v3eq(), gsd_box(), gsd_color_func(), gsd_colormode(), gsd_cube(), gsd_diamond(), gsd_draw_asterisk(), gsd_draw_box(), gsd_draw_gyro(), gsd_popmatrix(), gsd_pushmatrix(), gsd_scale(), gsd_sphere(), gsd_x(), g_vect_style::size, ST_ASTER, ST_BOX, ST_CUBE, ST_DIAMOND, ST_GYRO, ST_HISTOGRAM, ST_SPHERE, ST_X, g_vect_style::symbol, and Z.

◆ gs_point_in_region()

int gs_point_in_region ( geosurf gs,
float *  pt,
float *  region 
)

Check if point is in region.

Check for cancel every CHK_FREQ points

Parameters
gssurface (geosurf)
ptpoint (array(X,Y,Z))
regionregion settings (array (top,bottom,left,right))
Returns
0 point outside of region
1 point inside region

Definition at line 39 of file gpd.c.