#ifndef ARRAY_H #define ARRAY_H #include #define UNDEF INT_MAX struct array { int min_x, max_x; int min_y, max_y; int min_z, max_z; int *data; /* NULL if there are no points */ }; struct array *new_array(void); void free_array(struct array *a); void set(struct array *a, int x, int y, int z); static inline int get(const struct array *a, int x, int y) { return a->data[(x)-a->min_x+(a->max_x-a->min_x+1)*((y)-a->min_y)]; } #endif /* ARRAY_H */