dartsim/dart — pull request #161 by jslee02 (2014-03-21 10:45:12+00:00)
Title: Improve interface for forward kinematics

* Rename functions pertain to generalized coordinate
* Add setters for configurations, generalized velocities, and generalized accelerations to `Skeleton` and `Joint`

Here are some examples with improved API:
```c++
// We are able to set configurations, generalized velocity, and generalized acceleration to skeleton as
skeleton->setConfigs(q, false, false, false); // Just store q to skeleton
skeleton->setConfigs(q, true, false, false); // and also update transformations of body nodes
skeleton->setConfigs(q, true, true, false); // and also update spacial velocities of body nodes
skeleton->setConfigs(q, true, true, true); // and also update spacial accelerations of body nodes
skeleton->setGenVels(dq, true, false); // Store generalized velocity and update spacial velocities of body nodes
skeleton->setGenAccs(dq, true); // Store generalized acceleration, and update spacial accelerations and accelerations

// We are also able to set the values directly to the joints as
skeleton->getJoint("left_hip")->setConfigs(q, true, false, false);
skeleton->getJoint("left_hip")->setGenVels(q, true, false);
skeleton->getJoint("left_hip")->setGenAccs(q, true);

// If you want to update the spacial values at once then
skeleton->setConfigs(q, false, false, false);
skeleton->setGenVels(dq, false, false);
skeleton->setGenAccs(ddq, false);
skeleton->computeForwardKinematics(true, true, true);

// If you want more simple way not considering performance, then you can just ignore all the Boolean flags as
skeleton->setConfigs(q); // All the spacial values are updated as default
skeleton->getJoint("left_knee")->setConfigs(q); // All the spacial values are updated as default
```