1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
#ifndef DRIVERLIB_PATH_H
#define DRIVERLIB_PATH_H
enum path_mode {
P_MOVE,
P_CONT,
P_CLOSE,
};
struct vertex {
double x, y;
int mode;
};
struct path {
struct vertex *vertices;
int count;
int alloc;
int start;
};
void path_init(struct path *);
void path_free(struct path *);
void path_alloc(struct path *, int);
void path_reset(struct path *);
void path_append(struct path *, double, double, int);
void path_copy(struct path *, const struct path *);
void path_begin(struct path *);
void path_move(struct path *, double, double);
void path_cont(struct path *, double, double);
void path_close(struct path *);
void path_stroke(struct path *, void (*)(double, double, double, double));
#endif
|