void KeyframeModel::removeFrame(unsigned in) { if (in > m_motion.frames.size() || in < 0) return; if (m_motion.frames.size() == 1) { m_currentFrame = KeyframePtr(); m_jointManager->unsetFrame(); } else { m_currentFrame = m_motion.frames[in -1]; m_jointManager->setFrame(m_currentFrame); m_ikr->setFrame(m_currentFrame); m_ikl->setFrame(m_currentFrame); } beginRemoveRows(QModelIndex(), in, in); std::vector<KeyframePtr>::iterator c = m_motion.frames.begin() + in; if (m_motion.frames.size() > 0) m_motion.frames.erase(c); endRemoveRows(); dataChanged(index(in, 0), index(m_motion.frames.size(), 0)); }
void JointManager::unsetFrame() { m_currentFrame = KeyframePtr(); }