+ model->sticks[i * 2 + 1].length = random() % 20 + 20;
+ }
+ }
+
+ model->anchor_object = NULL;
+}
+
+static void
+model_init_rope (Model *model)
+{
+ const int num_objects = 20;
+ const int num_sticks = num_objects - 1;
+ const int stick_length = 20;
+ int i;
+
+ model->objects = g_new (Object, num_objects);
+ model->num_objects = num_objects;
+ model->sticks = g_new (Stick, num_sticks);
+ model->num_sticks = num_sticks;
+
+ for (i = 0; i < num_objects; i++) {
+ model->objects[i].position.x = 200;
+ model->objects[i].position.y = 40 + i * stick_length;
+ model->objects[i].previous_position.x = 200;
+ model->objects[i].previous_position.y = 40 + i * stick_length;
+
+ if (i + 1 < num_objects) {
+ model->sticks[i].a = &model->objects[i];
+ model->sticks[i].b = &model->objects[i + 1];
+ model->sticks[i].length = stick_length;