spacer->length = length;
}
+void
+anchor_init (Anchor *anchor, Object *object, double x, double y)
+{
+ anchor->object = object;
+ anchor->x = x;
+ anchor->y = y;
+}
+
void
polygon_init (Polygon *p, int num_points, ...)
{
}
}
+static void
+model_constrain_anchor (Model *model, Anchor *anchor)
+{
+ anchor->object->position.x = anchor->x;
+ anchor->object->position.y = anchor->y;
+ anchor->object->previous_position.x = anchor->x;
+ anchor->object->previous_position.y = anchor->y;
+}
+
static void
model_constrain_offset (Model *model, Offset *offset)
{
double dx, dy, x, y, distance, fraction;
int i;
- /* Anchor object constraint. */
- if (model->anchor_object != NULL) {
- model->anchor_object->position.x = model->anchor_position.x;
- model->anchor_object->position.y = model->anchor_position.y;
- model->anchor_object->previous_position.x = model->anchor_position.x;
- model->anchor_object->previous_position.y = model->anchor_position.y;
- }
+ if (model->mouse_anchor.object != NULL)
+ model_constrain_anchor (model, &model->mouse_anchor);
+ for (i = 0; i < model->num_anchors; i++)
+ model_constrain_anchor (model, &model->anchors[i]);
/* String constraints. */
for (i = 0; i < model->num_strings; i++) {