//============================================================================== void ReferentialSkeleton::registerComponent(BodyNode* _bn) { registerBodyNode(_bn); registerJoint(_bn->getParentJoint()); std::size_t nDofs = _bn->getParentJoint()->getNumDofs(); for(std::size_t i=0; i < nDofs; ++i) registerDegreeOfFreedom(_bn->getParentJoint()->getDof(i)); }
//============================================================================== void Linkage::satisfyCriteria() { std::vector<BodyNode*> bns = mCriteria.satisfy(); while(getNumBodyNodes() > 0) unregisterBodyNode(mBodyNodes.back()); for(BodyNode* bn : bns) { registerBodyNode(bn); } update(); }