20 #include <grass/gis.h>
21 #include <grass/Vect.h>
22 #include <grass/glocale.h>
40 struct Map_info *Err,
double *removed_area)
46 struct line_pnts *Points;
47 struct line_cats *Cats;
48 double size_removed = 0.0;
56 for (area = 1; area <= nareas; area++) {
57 int i, j, centroid, dissolve_neighbour;
88 for (i = 0; i < List->n_values; i++) {
89 int line, left, right, neighbour;
91 line = List->value[i];
102 G_debug(4,
" line = %d left = %d right = %d neighbour = %d",
103 line, left, right, neighbour);
107 G_debug(3,
"num neighbours = %d", AList->n_values);
110 dissolve_neighbour = 0;
112 for (i = 0; i < AList->n_values; i++) {
116 neighbour1 = AList->value[i];
117 G_debug(4,
" neighbour1 = %d", neighbour1);
119 for (j = 0; j < List->n_values; j++) {
120 int line, left, right, neighbour2;
122 line = List->value[j];
129 if (neighbour2 == neighbour1) {
136 dissolve_neighbour = neighbour1;
140 G_debug(3,
"dissolve_neighbour = %d", dissolve_neighbour);
144 for (i = 0; i < List->n_values; i++) {
145 int line, left, right, neighbour;
147 line = List->value[i];
154 G_debug(3,
" neighbour = %d", neighbour);
156 if (neighbour == dissolve_neighbour) {
162 for (i = 0; i < AList->n_values; i++) {
165 line = AList->value[i];
179 *removed_area = size_removed;