| |
| |
| #include "toonz/ikskeleton.h" |
| |
| void IKSkeleton::computeSkeleton(IKNode *node) { |
| for (int i = 0; i < (int)m_nodes.size(); i++) { |
| m_nodes[i]->computeS(); |
| } |
| } |
| |
| void IKSkeleton::compute(void) { |
| IKNode *root = this->getRoot(); |
| computeSkeleton(root); |
| } |
| |
| void IKSkeleton::setPurpose(int nodeIndex, IKNode::Purpose purpose) { |
| switch (purpose) { |
| case IKNode::JOINT: |
| m_nodes[nodeIndex]->setPurpose(purpose); |
| break; |
| case IKNode::EFFECTOR: |
| if (m_nodes[nodeIndex]->getPurpose() != IKNode::EFFECTOR) { |
| m_nodes[nodeIndex]->setPurpose(purpose); |
| m_nodes[nodeIndex]->setSeqNumEffector(numEffector); |
| numEffector++; |
| } |
| break; |
| } |
| } |
| |
| |
| |