summaryrefslogtreecommitdiff
path: root/inc/cad/solve.h
diff options
context:
space:
mode:
Diffstat (limited to 'inc/cad/solve.h')
-rw-r--r--inc/cad/solve.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/inc/cad/solve.h b/inc/cad/solve.h
index 4eae272..85b902b 100644
--- a/inc/cad/solve.h
+++ b/inc/cad/solve.h
@@ -22,6 +22,20 @@ struct component {
bool drawn;
};
+struct alias {
+ struct component *alias;
+ struct component *target;
+};
+
+struct constraints {
+ struct constraint *elements;
+ size_t length;
+ size_t capacity;
+
+ struct alias aliases[16];
+ size_t aliases_num;
+};
+
extern char *constraint_type_name[];
enum constraint_type {
CT_POINT_POINT_DISTANCE,
@@ -49,4 +63,6 @@ struct constraint {
bool used;
};
-bool solve_constraints(struct constraint *constraints, size_t constraints_num, struct drawing *drawing);
+void alias_point(struct constraints *c, struct component *alias, struct component *target);
+void add_constraint(struct constraints *c, struct constraint *new);
+bool solve_constraints(struct constraints *constraints, struct drawing *drawing);