summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/cad/construction.h2
-rw-r--r--inc/cad/log.h8
-rw-r--r--inc/cad/svg.h26
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);