1 
2 
3 #include "toonz/ikskeleton.h"
4 
computeSkeleton(IKNode * node)5 void IKSkeleton::computeSkeleton(IKNode *node) {
6   for (int i = 0; i < (int)m_nodes.size(); i++) {
7     m_nodes[i]->computeS();
8   }
9 }
10 
compute(void)11 void IKSkeleton::compute(void) {
12   IKNode *root = this->getRoot();
13   computeSkeleton(root);
14 }
15 
setPurpose(int nodeIndex,IKNode::Purpose purpose)16 void IKSkeleton::setPurpose(int nodeIndex, IKNode::Purpose purpose) {
17   switch (purpose) {
18   case IKNode::JOINT:
19     m_nodes[nodeIndex]->setPurpose(purpose);
20     break;
21   case IKNode::EFFECTOR:
22     if (m_nodes[nodeIndex]->getPurpose() != IKNode::EFFECTOR) {
23       m_nodes[nodeIndex]->setPurpose(purpose);
24       m_nodes[nodeIndex]->setSeqNumEffector(numEffector);
25       numEffector++;
26     }
27     break;
28   }
29 }
30 
31 //========================================================================
32