//------------------------------------------------------------------------------------
// irr::scene::ISceneNodeAnimator wrappers
//------------------------------------------------------------------------------------

extern "C" 
{
	void IrrScene_ISceneNodeAnimator_animateNode(ISceneNodeAnimator* sa,ISceneNode* node,u32 timeMs)
	{
		if (sa)
			sa->animateNode(node,timeMs);
	}
	
	s32 IrrScene_ISceneNodeAnimator_getType(ISceneNodeAnimator* sa)
	{
		if (sa)
			return (int)sa->getType();
		else return -1;
	}

	bool IrrScene_ISceneNodeAnimator_drop(ISceneNodeAnimator* unk)
	{
		if (unk)
			return unk->drop();
		else return 0;
	}
	
	const c8* IrrScene_ISceneNodeAnimator_getDebugName(ISceneNodeAnimator* unk)
	{
		if (unk)
			return unk->getDebugName();
		else return "";
	}
	
	void IrrScene_ISceneNodeAnimator_grab(ISceneNodeAnimator* unk)
	{
		if (unk)
			unk->grab();
	}

	ISceneNodeAnimator* IrrScene_ISceneNodeAnimator_createClone(ISceneNodeAnimator* sa,ISceneNode* node, ISceneManager* newManager=0)
	{
		if (sa)
			return sa->createClone(node,newManager);
		else return 0;
	}

	bool IrrScene_ISceneNodeAnimatorisEventReceiverEnabled(ISceneNodeAnimator* sa)
	{
		if (sa)
			return sa->isEventReceiverEnabled();
		else return false;
	}

	bool IrrScene_ISceneNodeAnimatorOnEvent(ISceneNodeAnimator* sa, const SEvent* event) 
	{
		if (sa)
			return sa->OnEvent(*event);
		else return false;
	}		
	
	bool IrrScene_ISceneNodeAnimator_hasFinished(ISceneNodeAnimator* sa) 
	{
		if (sa)
			return sa->hasFinished();
		else return false;
	}

}

