GRASS Programmer's Manual  6.5.svn(2014)-r66266
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
flip.c
Go to the documentation of this file.
1 
14 #include <grass/vedit.h>
15 
25 int Vedit_flip_lines(struct Map_info *Map, struct ilist *List)
26 {
27  struct line_cats *Cats;
28  struct line_pnts *Points;
29  int i, line, type;
30  int nlines_flipped;
31 
32  nlines_flipped = 0;
33 
34  Points = Vect_new_line_struct();
35  Cats = Vect_new_cats_struct();
36 
37  for (i = 0; i < List->n_values; i++) {
38  line = List->value[i];
39 
40  if (!Vect_line_alive(Map, line))
41  continue;
42 
43  type = Vect_read_line(Map, Points, Cats, line);
44 
45  if (!(type & GV_LINES))
46  continue;
47 
48  Vect_line_reverse(Points);
49 
50  if (Vect_rewrite_line(Map, line, type, Points, Cats) < 0) {
51  return -1;
52  }
53 
54  G_debug(3, "Vedit_flip_lines(): line=%d", line);
55 
56  nlines_flipped++;
57  }
58 
59  /* destroy structures */
62 
63  return nlines_flipped;
64 }
int Vedit_flip_lines(struct Map_info *Map, struct ilist *List)
Flip direction of selected lines.
Definition: flip.c:25
struct line_pnts * Vect_new_line_struct()
Creates and initializes a struct line_pnts.
Definition: line.c:57
void Vect_line_reverse(struct line_pnts *Points)
Reverse the order of vertices.
Definition: line.c:784
int Vect_rewrite_line(struct Map_info *Map, int line, int type, struct line_pnts *points, struct line_cats *cats)
Rewrites feature info at the given offset.
int GV_LINES
Definition: vdigit/main.py:24
int Vect_destroy_cats_struct(struct line_cats *p)
Frees all memory associated with line_cats structure, including the struct itself.
int Vect_line_alive(struct Map_info *Map, int line)
Check if feature is alive or dead.
struct line_cats * Vect_new_cats_struct()
Creates and initializes line_cats structure.
tuple Map
Definition: render.py:1310
int G_debug(int level, const char *msg,...)
Print debugging message.
Definition: gis/debug.c:51
int Vect_destroy_line_struct(struct line_pnts *p)
Frees all memory associated with a struct line_pnts, including the struct itself. ...
Definition: line.c:90
int Vect_read_line(struct Map_info *Map, struct line_pnts *line_p, struct line_cats *line_c, int line)
Read vector feature.