summaryrefslogtreecommitdiff
path: root/inc/cad
diff options
context:
space:
mode:
Diffstat (limited to 'inc/cad')
-rw-r--r--inc/cad/solve.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/inc/cad/solve.h b/inc/cad/solve.h
index 11afded..95c6b58 100644
--- a/inc/cad/solve.h
+++ b/inc/cad/solve.h
@@ -101,9 +101,22 @@ struct constraint {
uint8_t used;
};
+struct subassembly {
+ struct solve_step *steps;
+ size_t steps_num;
+ size_t fix;
+
+ struct component **articulation;
+ struct element **articulation_position;
+ size_t articulation_num;
+
+ bool fixed;
+};
+
void alias_point(struct constraints *c, struct component *alias, struct component *target);
void add_constraint(struct constraints *c, struct constraint *new);
void free_constraints(struct constraints *c);
-bool solve_constraints(struct constraints *constraints, struct drawing *drawing);
+bool solve_constraints(struct constraints *constraints, struct drawing *drawing, struct subassembly *assemblies, size_t *assemblies_num);
+void reconstruct_drawing(struct constraints *constraints, struct subassembly *assemblies, size_t *assemblies_num);
#define DEG(x) ((x) * M_PI / 180.0)