22 #include <grass/gis.h>
23 #include <grass/Vect.h>
24 #include <grass/glocale.h>
42 struct Map_info *Err,
double *removed_area)
48 struct line_pnts *Points;
49 struct line_cats *Cats;
50 double size_removed = 0.0;
58 for (area = 1; area <= nareas; area++) {
59 int i, j, centroid, dissolve_neighbour;
90 for (i = 0; i < List->n_values; i++) {
91 int line, left, right, neighbour;
93 line = List->value[i];
104 G_debug(4,
" line = %d left = %d right = %d neighbour = %d",
105 line, left, right, neighbour);
109 G_debug(3,
"num neighbours = %d", AList->n_values);
112 dissolve_neighbour = 0;
114 for (i = 0; i < AList->n_values; i++) {
118 neighbour1 = AList->value[i];
119 G_debug(4,
" neighbour1 = %d", neighbour1);
121 for (j = 0; j < List->n_values; j++) {
122 int line, left, right, neighbour2;
124 line = List->value[j];
131 if (neighbour2 == neighbour1) {
138 dissolve_neighbour = neighbour1;
142 G_debug(3,
"dissolve_neighbour = %d", dissolve_neighbour);
146 for (i = 0; i < List->n_values; i++) {
147 int line, left, right, neighbour;
149 line = List->value[i];
156 G_debug(3,
" neighbour = %d", neighbour);
158 if (neighbour == dissolve_neighbour) {
164 for (i = 0; i < AList->n_values; i++) {
167 line = AList->value[i];
181 *removed_area = size_removed;