diff options
Diffstat (limited to 'inc/cad')
| -rw-r--r-- | inc/cad/construction.h | 2 | ||||
| -rw-r--r-- | inc/cad/log.h | 8 | ||||
| -rw-r--r-- | inc/cad/svg.h | 26 |
3 files changed, 27 insertions, 9 deletions
diff --git a/inc/cad/construction.h b/inc/cad/construction.h index 71bc432..e4b0428 100644 --- a/inc/cad/construction.h +++ b/inc/cad/construction.h @@ -78,7 +78,7 @@ struct drawing { }; struct element* insert_cmd(struct drawing *drawing, struct command cmd); -void execute_drawing(struct drawing *drawing, double inputs[]); +void place_points(struct drawing *drawing, double inputs[]); bool circle_line_intersect(struct circle circle, struct line line, uint8_t root, struct point *point); void line_through_points(struct point p1, struct point p2, struct line* l); diff --git a/inc/cad/log.h b/inc/cad/log.h new file mode 100644 index 0000000..dd46479 --- /dev/null +++ b/inc/cad/log.h @@ -0,0 +1,8 @@ +#pragma once + +#define LOG(fmt, ...) \ + fprintf(stderr, "%s:%d: " fmt, __FILE__, __LINE__, ##__VA_ARGS__); + +#define CRASH(fmt, ...) \ + fprintf(stderr, "%s:%d: " fmt, __FILE__, __LINE__, ##__VA_ARGS__); \ + abort(); diff --git a/inc/cad/svg.h b/inc/cad/svg.h index 7a7e799..e44cf3a 100644 --- a/inc/cad/svg.h +++ b/inc/cad/svg.h @@ -11,12 +11,22 @@ enum LineStyle { }; #define TEXT_OFFSET 0.4 -void plot_line_between(struct point p1, struct point p2); -void plot_arc_between_style(struct point c, struct point p1, struct point p2, enum LineStyle style); -void plot_arc_between(struct point c, struct point p1, struct point p2); -void plot_text(struct point p, double angle, char* str); +enum CanvasState { + CANVAS_INIT, + CANVAS_DRAWING, +}; + +struct canvas { + enum CanvasState state; + FILE *f; +}; + +void plot_line_between(struct canvas *canvas, struct point p1, struct point p2); +void plot_arc_between_style(struct canvas *canvas, struct point c, struct point p1, struct point p2, enum LineStyle style); +void plot_arc_between(struct canvas *canvas, struct point c, struct point p1, struct point p2); +void plot_text(struct canvas *canvas, struct point p, double angle, char* str); -void begin_drawing(); -void draw_constraints(struct constraints *constraints); -void draw_topology(struct topology *topo); -void end_drawing(); +void begin_drawing(struct canvas *canvas); +void draw_constraints(struct canvas *canvas, struct constraints *constraints); +void draw_topology(struct canvas *canvas, struct topology *topo); +void end_drawing(struct canvas *canvas); |
