Loading...
Searching...
No Matches
smain.c
Go to the documentation of this file.
#include <stdio.h>
#include <stdlib.h>
#include <grass/bitmap.h>
static int dump_map(struct BM *map);
int main(int argc, char *argv[])
{
int SIZE;
struct BM *map, *map2;
int i, x, y;
int dump;
FILE *fp;
if (argc < 2)
SIZE = 11;
else
SIZE = atoi(argv[1]);
if (NULL == getenv("NODUMP"))
dump = 1;
else
dump = 0;
map = BM_create_sparse(SIZE, SIZE);
/* turn on bits in X pattern */
for (i = 0; i < SIZE; i++) {
BM_set(map, i, i, 1);
BM_set(map, (SIZE - 1) - i, i, 1);
}
if (dump)
dump_map(map);
fprintf(stdout, "Size = %d\n", BM_get_map_size(map));
/*
BM_dump_map_sparse (map);
*/
fprintf(stdout, "\n\n");
/* now invert it */
for (y = 0; y < SIZE; y++)
for (x = 0; x < SIZE; x++) {
BM_set(map, x, y, !BM_get(map, x, y));
#ifdef FOO
/*DEBUG*/ if (y == 0)
/*DEBUG*/ BM_dump_map_row_sparse(map, y);
#endif
}
if (dump)
dump_map(map);
fprintf(stdout, "Size = %d\n", BM_get_map_size(map));
/*
fprintf (stdout, "\n\n");
BM_dump_map_sparse (map);
*/
{
fp = fopen("dumpfile", "w");
if (0 > BM_file_write(fp, map)) {
fprintf(stderr, "File_write failed\n");
goto nowrite;
}
fclose(fp);
fp = fopen("dumpfile", "r");
map2 = BM_file_read(fp);
fclose(fp);
dump_map(map2);
}
BM_destroy(map2);
nowrite:
BM_destroy(map);
return 0;
}
static int dump_map(struct BM *map)
{
int x, y;
for (y = 0; y < map->rows; y++) {
for (x = 0; x < map->cols; x++) {
fprintf(stdout, "%c", BM_get(map, x, y) ? '#' : '.');
}
fprintf(stdout, "\n");
}
}
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