//------------------------------------------------------------------------------------
// irr::scene::IBoneSceneNode wrappers (parent is ISceneNode)
//------------------------------------------------------------------------------------

extern "C"
{

	const c8* IrrScene_IBoneSceneNode_getBoneName(IBoneSceneNode* node) 
	{
		if (node)
			return node->getBoneName();
		else return 0;
	}

	u32 IrrScene_IBoneSceneNode_getBoneIndex(IBoneSceneNode* node)
	{
		if (node)
			return node->getBoneIndex();
		else return 0;
	}

	bool IrrScene_IBoneSceneNode_setAnimationMode(IBoneSceneNode* node, E_BONE_ANIMATION_MODE mode)
	{
		if (node)
			return node->setAnimationMode(mode);
		else return false;
	}

	s32 IrrScene_IBoneSceneNode_getAnimationMode(IBoneSceneNode* node) // returns E_BONE_ANIMATION_MODE
	{
		if (node)
			return node->getAnimationMode();
		else return -1;
	}

	void IrrScene_IBoneSceneNode_setSkinningSpace(IBoneSceneNode* node, E_BONE_SKINNING_SPACE space )
	{
		if (node)
			node->setSkinningSpace(space);
	}

	s32 IrrScene_IBoneSceneNode_getSkinningSpace(IBoneSceneNode* node) // returns E_BONE_SKINNING_SPACE
	{
		if (node)
			return node->getSkinningSpace();
		else return -1;
	}

	void IrrScene_IBoneSceneNode_updateAbsolutePositionOfAllChildren(IBoneSceneNode* node) 
	{
		if (node)
			node->updateAbsolutePositionOfAllChildren();
	}

	s32 IrrScene_IBoneSceneNode_getPositionHint(IBoneSceneNode* node)
	{
		return node->positionHint;
	}

	void IrrScene_IBoneSceneNode_setPositionHint(IBoneSceneNode* node, s32 hint)
	{
		if (node)
			node->positionHint = hint;
	}

	s32 IrrScene_IBoneSceneNode_getScaleHint(IBoneSceneNode* node)
	{
		return node->scaleHint;
	}

	void IrrScene_IBoneSceneNode_setScaleHint(IBoneSceneNode* node, s32 hint)
	{
		if (node)
			node->scaleHint = hint;
	}

	s32 IrrScene_IBoneSceneNode_getRotationHint(IBoneSceneNode* node)
	{
		return node->rotationHint;
	}

	void IrrScene_IBoneSceneNode_setRotationHint(IBoneSceneNode* node, s32 hint)
	{
		if (node)
			node->rotationHint = hint;
	}
	
}