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();
}