22 #include <grass/gis.h>
23 #include <grass/Vect.h>
24 #include <grass/glocale.h>
38 int area,
struct line_pnts *BPoints)
40 int i, line, aline, dir;
41 struct Plus_head *Plus;
43 static int first_time = 1;
44 static struct line_pnts *Points;
46 G_debug(3,
"Vect_get_area_points(): area = %d", area);
47 BPoints->n_points = 0;
50 Area = Plus->Area[area];
53 G_warning(_(
"Attempt to read points of nonexistent area"));
57 if (first_time == 1) {
62 G_debug(3,
" n_lines = %d", Area->n_lines);
63 for (i = 0; i < Area->n_lines; i++) {
64 line = Area->lines[i];
66 G_debug(3,
" append line(%d) = %d", i, line);
72 G_debug(3,
" line n_points = %d", Points->n_points);
80 if (i != (Area->n_lines - 1))
82 G_debug(3,
" area n_points = %d", BPoints->n_points);
85 return (BPoints->n_points);
99 int isle,
struct line_pnts *BPoints)
101 int i, line, aline, dir;
102 struct Plus_head *Plus;
104 static int first_time = 1;
105 static struct line_pnts *Points;
107 G_debug(3,
"Vect_get_isle_points(): isle = %d", isle);
108 BPoints->n_points = 0;
111 Isle = Plus->Isle[isle];
113 if (first_time == 1) {
118 G_debug(3,
" n_lines = %d", Isle->n_lines);
119 for (i = 0; i < Isle->n_lines; i++) {
120 line = Isle->lines[i];
122 G_debug(3,
" append line(%d) = %d", i, line);
128 G_debug(3,
" line n_points = %d", Points->n_points);
136 if (i != (Isle->n_lines - 1))
138 G_debug(3,
" isle n_points = %d", BPoints->n_points);
141 return (BPoints->n_points);
155 struct Plus_head *Plus;
158 G_debug(3,
"Vect_get_area_centroid(): area = %d", area);
161 Area = Plus->Area[area];
164 G_fatal_error(_(
"Attempt to read topo for dead area (%d)"), area);
166 return (Area->centroid);
182 struct Plus_head *Plus;
185 G_debug(3,
"Vect_get_area_boundaries(): area = %d", area);
190 Area = Plus->Area[area];
193 G_fatal_error(_(
"Attempt to read topo for dead area (%d)"), area);
195 for (i = 0; i < Area->n_lines; i++) {
196 line = Area->lines[i];
200 return (List->n_values);
216 struct Plus_head *Plus;
219 G_debug(3,
"Vect_get_isle_boundaries(): isle = %d", isle);
224 Isle = Plus->Isle[isle];
227 G_fatal_error(
"Attempt to read topo for dead isle (%d)", isle);
229 for (i = 0; i < Isle->n_lines; i++) {
230 line = Isle->lines[i];
234 return (List->n_values);
248 struct Plus_head *Plus;
251 G_debug(3,
"Vect_get_area_num_isles(): area = %d", area);
254 Area = Plus->Area[area];
257 G_fatal_error(_(
"Attempt to read topo for dead area (%d)"), area);
259 G_debug(3,
" n_isles = %d", Area->n_isles);
261 return (Area->n_isles);
277 struct Plus_head *Plus;
280 G_debug(3,
"Vect_get_area_isle(): area = %d isle = %d", area, isle);
283 Area = Plus->Area[area];
286 G_fatal_error(_(
"Attempt to read topo for dead area (%d)"), area);
288 G_debug(3,
" -> isle = %d", Area->isles[isle]);
290 return (Area->isles[isle]);
304 struct Plus_head *Plus;
307 G_debug(3,
"Vect_get_isle_area(): isle = %d", isle);
310 Isle = Plus->Isle[isle];
313 G_fatal_error(_(
"Attempt to read topo for dead isle (%d)"), isle);
315 G_debug(3,
" -> area = %d", Isle->area);
347 struct Plus_head *Plus;
352 Area = Plus->Area[area];
361 for (i = 0; i < Area->n_isles; i++) {
362 isle = Area->isles[i];
381 struct Plus_head *Plus;
383 struct line_pnts *Points;
386 static int first_time = 1;
388 G_debug(3,
"Vect_get_area_area(): area = %d", area);
390 if (first_time == 1) {
397 Area = Plus->Area[area];
403 for (i = 0; i < Area->n_isles; i++) {
410 G_debug(3,
" area = %f", size);
456 static struct line_cats *Cats =
NULL;
467 for (i = 0; i < Cats->n_cats; i++) {
468 if (Cats->field[i] == field) {