Go to the documentation of this file.00001
00017 #include <grass/vedit.h>
00018
00028 int Vedit_flip_lines(struct Map_info *Map, struct ilist *List)
00029 {
00030 struct line_cats *Cats;
00031 struct line_pnts *Points;
00032 int i, line, type;
00033 int nlines_flipped;
00034
00035 nlines_flipped = 0;
00036
00037 Points = Vect_new_line_struct();
00038 Cats = Vect_new_cats_struct();
00039
00040 for (i = 0; i < List->n_values; i++) {
00041 line = List->value[i];
00042
00043 if (!Vect_line_alive(Map, line))
00044 continue;
00045
00046 type = Vect_read_line(Map, Points, Cats, line);
00047
00048 if (!(type & GV_LINES))
00049 continue;
00050
00051 Vect_line_reverse(Points);
00052
00053 if (Vect_rewrite_line(Map, line, type, Points, Cats) < 0) {
00054 return -1;
00055 }
00056
00057 G_debug(3, "Vedit_flip_lines(): line=%d", line);
00058
00059 nlines_flipped++;
00060 }
00061
00062
00063 Vect_destroy_line_struct(Points);
00064 Vect_destroy_cats_struct(Cats);
00065
00066 return nlines_flipped;
00067 }