1 #include <grass/gis.h>
2 #include <grass/raster.h>
3 #include <unistd.h>
4 #include "Gwater.h"
5
bseg_read_cell(BSEG * bseg,char * map_name,char * mapset)6 int bseg_read_cell(BSEG * bseg, char *map_name, char *mapset)
7 {
8 int row, rows;
9 int col, cols;
10 int map_fd;
11 CELL *buffer;
12 char cbuf;
13
14 bseg->name = NULL;
15 bseg->mapset = NULL;
16
17 map_fd = Rast_open_old(map_name, mapset);
18 rows = Rast_window_rows();
19 cols = Rast_window_cols();
20 buffer = Rast_allocate_c_buf();
21 for (row = 0; row < rows; row++) {
22 Rast_get_c_row(map_fd, buffer, row);
23 for (col = cols; col >= 0; col--) {
24 cbuf = (char)buffer[col];
25 bseg_put(bseg, &cbuf, row, col);
26 }
27 }
28
29 Rast_close(map_fd);
30 G_free(buffer);
31
32 bseg->name = G_store(map_name);
33 bseg->mapset = G_store(mapset);
34
35 return 0;
36 }
37