GRASS 8 Programmer's Manual
8.5.0(2026)-8d6ceba290
Toggle main menu visibility
Loading...
Searching...
No Matches
smain.c
Go to the documentation of this file.
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <grass/bitmap.h>
4
5
static
int
dump_map(
struct
BM *map);
6
7
int
main
(
int
argc,
char
*argv[])
8
{
9
int
SIZE;
10
struct
BM *map, *map2;
11
int
i,
x
, y;
12
int
dump;
13
FILE *fp;
14
15
if
(argc < 2)
16
SIZE = 11;
17
else
18
SIZE = atoi(argv[1]);
19
20
if
(
NULL
== getenv(
"NODUMP"
))
21
dump = 1;
22
else
23
dump = 0;
24
25
map =
BM_create_sparse
(SIZE, SIZE);
26
27
/* turn on bits in X pattern */
28
for
(i = 0; i < SIZE; i++) {
29
BM_set
(map, i, i, 1);
30
BM_set
(map, (SIZE - 1) - i, i, 1);
31
}
32
33
if
(dump)
34
dump_map(map);
35
36
fprintf(stdout,
"Size = %d\n"
,
BM_get_map_size
(map));
37
38
/*
39
BM_dump_map_sparse (map);
40
*/
41
42
fprintf(stdout,
"\n\n"
);
43
/* now invert it */
44
for
(y = 0; y < SIZE; y++)
45
for
(
x
= 0;
x
< SIZE;
x
++) {
46
BM_set
(map,
x
, y, !
BM_get
(map,
x
, y));
47
#ifdef FOO
48
/*DEBUG*/
if
(y == 0)
49
/*DEBUG*/
BM_dump_map_row_sparse
(map, y);
50
#endif
51
}
52
53
if
(dump)
54
dump_map(map);
55
56
fprintf(stdout,
"Size = %d\n"
,
BM_get_map_size
(map));
57
/*
58
fprintf (stdout, "\n\n");
59
BM_dump_map_sparse (map);
60
*/
61
{
62
fp = fopen(
"dumpfile"
,
"w"
);
63
if
(0 >
BM_file_write
(fp, map)) {
64
fprintf(stderr,
"File_write failed\n"
);
65
goto
nowrite;
66
}
67
fclose(fp);
68
69
fp = fopen(
"dumpfile"
,
"r"
);
70
map2 =
BM_file_read
(fp);
71
fclose(fp);
72
dump_map(map2);
73
}
74
75
BM_destroy
(map2);
76
nowrite:
77
78
BM_destroy
(map);
79
80
return
0;
81
}
82
83
static
int
dump_map(
struct
BM *map)
84
{
85
int
x
, y;
86
87
for
(y = 0; y < map->rows; y++) {
88
for
(
x
= 0;
x
< map->cols;
x
++) {
89
fprintf(stdout,
"%c"
,
BM_get
(map,
x
, y) ?
'#'
:
'.'
);
90
}
91
fprintf(stdout,
"\n"
);
92
}
93
}
BM_set
int BM_set(struct BM *map, int x, int y, int val)
Sets bitmap value to 'val' at location 'x' 'y'.
Definition
bitmap.c:182
BM_file_write
int BM_file_write(FILE *fp, struct BM *map)
Write bitmap out to file.
Definition
bitmap.c:258
BM_get_map_size
size_t BM_get_map_size(struct BM *map)
Returns size in bytes that bitmap is taking up.
Definition
bitmap.c:236
BM_get
int BM_get(struct BM *map, int x, int y)
Gets 'val' from the bitmap.
Definition
bitmap.c:213
BM_destroy
int BM_destroy(struct BM *map)
Destroy bitmap and free all associated memory.
Definition
bitmap.c:88
BM_file_read
struct BM * BM_file_read(FILE *fp)
Create map structure and load it from file.
Definition
bitmap.c:299
NULL
#define NULL
Definition
ccmath.h:32
BM_create_sparse
struct BM * BM_create_sparse(int x, int y)
Create a sparse bitmap of dimension 'x'/'y'.
Definition
sparse.c:41
BM_dump_map_row_sparse
int BM_dump_map_row_sparse(struct BM *map, int y)
Debugging code to dump out structure of links for single row.
Definition
sparse.c:316
main
int main(void)
Definition
winlocale.c:201
x
#define x
bitmap
smain.c
Generated on
for GRASS 8 Programmer's Manual by
1.17.0