Loading...
Searching...
No Matches
gvd.c File Reference

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

`#include <stdio.h>`
`#include <stdlib.h>`
`#include <grass/gis.h>`
`#include <grass/ogsf.h>`
`#include "rowcol.h"`
Include dependency graph for gvd.c:

Go to the source code of this file.

## Macros

#define | CHK_FREQ 5

## Functions

int | gs_clip_segment (geosurf *gs, float *bgn, float *end, float *region)
| Clip segment.
int | gvd_vect (geovect *gv, geosurf *gs, int do_fast)
| Draw vector set.
void | gvd_draw_lineonsurf (geosurf *gs, float *bgn, float *end, int color)
| Draw line on surface.

## Detailed Description

OGSF library - loading and manipulating vector sets (lower level functions).

(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 (December 1993)
  Doxygenized by Martin Landa (June 2008)

Definition in file gvd.c.

## Macro Definition Documentation

## CHK_FREQ

#define CHK_FREQ 5

Definition at line 24 of file gvd.c.

## Function Documentation

## gs_clip_segment()

int gs_clip_segment | ( | geosurf * | gs,
|  | float * | bgn,
|  | float * | end,
|  | float * | region )

Clip segment.

Todo
  to use fast clipping and move to gs.c

Parameters

  gs | surface
  bgn | begin point
  end | end point
  region | region settings

Returns
  1 segment inside region
  0 segment outside region

Definition at line 40 of file gvd.c.

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

Referenced by gvd_vect().

## gvd_draw_lineonsurf()

void gvd_draw_lineonsurf | ( | geosurf * | gs,
|  | float * | bgn,
|  | float * | end,
|  | int | color )

Draw line on surface.

Parameters

  gs | surface
  bgn | first line point
  end | end line point
  color | color value

Definition at line 299 of file gvd.c.

References gs_point_is_masked(), gsd_bgnline(), gsd_color_func(), gsd_endline(), gsd_vert_func(), and gsdrape_get_segments().

## gvd_vect()

int gvd_vect | ( | geovect * | gv,
|  | geosurf * | gs,
|  | int | do_fast )

Draw vector set.

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

Handling mask checking here, but may be more appropriate to handle in get_drape_segments?

Parameters

  gv | vector set
  gs | surface
  do_fast | non-zero for fast mode

Returns

Definition at line 79 of file gvd.c.

References CHK_FREQ, G_debug(), G_free(), GS_check_cancel(), gs_clip_segment(), gs_get_att_src(), GS_get_scale(), gs_get_zrange(), gs_point_is_masked(), gs_update_curmask(), gsd_bgnline(), gsd_color_func(), gsd_colormode(), gsd_do_scale(), gsd_endline(), gsd_linewidth(), gsd_popmatrix(), gsd_pushmatrix(), gsd_translate(), gsd_vert_func(), gsdrape_get_segments(), gv_decimate_lines(), NULL, X, and Y.

Referenced by GV_draw_fastvect(), and GV_draw_vect().