Loading...
Searching...
No Matches
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.
void | gpd_obj (geosurf *gs, gvstyle *style, Point3 pt)
| Draw point representing object.
int | gpd_2dsite (geosite *gp, geosurf *gs, int do_fast)
| Draw 2D point set.
int | gpd_3dsite (geosite *gp, float xo, float yo, int do_fast)
| Draw 3D point set.

## 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.

Referenced by gpd_2dsite(), gpd_3dsite(), and gvd_vect().

## 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 )

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

  gp | site (geosite)
  gs | surface (geosurf)
  do_fast | (unused)

Returns
  0 on failure
  1 on success

Definition at line 215 of file gpd.c.

References CHK_FREQ, gpd_obj(), GS_check_cancel(), gs_get_att_src(), gs_get_att_typbuff(), gs_point_in_region(), gs_point_is_masked(), gs_update_curmask(), gsd_checkpoint(), gsd_do_scale(), gsd_getwindow(), gsd_linewidth(), gsd_popmatrix(), gsd_pushmatrix(), gsd_translate(), NULL, viewcell_tri_interp(), X, and Y.

Referenced by GP_draw_site().

## gpd_3dsite()

int gpd_3dsite | ( | geosite * | gp,
|  | float | xo,
|  | float | yo,
|  | int | do_fast )

Draw 3D point set.

Parameters

  gp | site (geosite)
  xo,yo |
  do_fast | (unused)

Returns
  0 on success
  1 on failure

Definition at line 312 of file gpd.c.

References CHK_FREQ, gpd_obj(), GS_check_cancel(), GS_global_exag(), gsd_checkpoint(), gsd_do_scale(), gsd_getwindow(), gsd_linewidth(), gsd_popmatrix(), gsd_pushmatrix(), NULL, X, and Y.

Referenced by GP_draw_site().

## 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

  gs | surface (geosurf)
  style | object displaying style (highlighted or not)
  pt | 3d point (Point3)

Definition at line 70 of file gpd.c.

References 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(), and gsd_x().

Referenced by gpd_2dsite(), gpd_3dsite(), and GS_draw_X().

## 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

  gs | surface (geosurf)
  pt | point (array(X,Y,Z))
  region | region settings (array (top,bottom,left,right))

Returns
  0 point outside of region
  1 point inside region

Definition at line 39 of file gpd.c.

References VCOL2X, VCOLS, VROW2Y, VROWS, X, and Y.

Referenced by gpd_2dsite().