GRASS GIS 7 Programmer's Manual  7.9.dev(2021)-e5379bbd7
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. More...
 
int gvd_vect (geovect *gv, geosurf *gs, int do_fast)
 Draw vector set. More...
 
void gvd_draw_lineonsurf (geosurf *gs, float *bgn, float *end, int color)
 Draw line on surface. More...
 

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 23 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
gssurface
bgnbegin point
endend point
regionregion settings
Returns
1 segment inside region
0 segment outside region

Definition at line 39 of file gvd.c.

◆ gvd_draw_lineonsurf()

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

Draw line on surface.

Parameters
gssurface
bgnfirst line point
endend line point
colorcolor value

Definition at line 300 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
gvvector set
gssurface
do_fastnon-zero for fast mode
Returns

Definition at line 79 of file gvd.c.

Referenced by GV_draw_fastvect(), and GV_draw_vect().