2009

a Rag Doll constraint, the objects not only have no linear freedom, but their
possible relative orientation is also restricted.
In each constraint, these angular and linear limits are defined in terms of the
constraints coordinate system or constraint space. Because a constraint restricts
the movement of its objects relative to each other, a constraint also needs to
maintain a mapping from each objects local space to the constraint space.
reactor lets you manipulate the constraint space in each object's local space
separately, as you'll see in the
Working With Constraint Spaces on page 3928
section.
Parents and Children
Each reactor constraint can have two objects: a parent object and a child
object. Although two-bodied constraints actually restrict the possible
movement of both bodies, it is often simpler to specify how one object is
allowed to move relative to the other one, particularly when you are using
limits. With reactor, you specify how the child object can move relative to
the parent.
For some constraints, it makes no difference which object is the parent and
which is the child. For instance, if you use a Point-Point constraint to attach
two objects together at a common point, it works in exactly the same way
regardless of how you specify the attached objects.
However, with the more complex Rag Doll constraint, which you typically
use to model body joints, it's important to specify which object is the parent.
This is because this constraint lets you specify a number of limits on how the
child can move relative to the parent object. For example, when you move
your torso, your arm always moves with it. So when modeling a shoulder
joint, you would specify that the torso object is the parent, making the arm
object the child. You can then specify limits on the arm's movement relative
to the torso.
When you constrain an object to a point in world space rather than another
object, the constrained object is the child object and there is no parent object.
Working With Constraint Spaces
For most constraints, by default the constraint space is aligned with the child
body. This means that the constraint pivot/attachment point is positioned at
the child object's pivot point, and the constraint space takes its orientation
from the child body's local space. The exceptions to this are the constraints
with two attachment points, Springs and Stiff Springs, and the Point-Path
constraint, each of which has its own default alignment.
3928 | Chapter 16 reactor