extern "C" 
{
	ISceneNode* IrrScene_ISceneNodeFactory_addSceneNodeFromType(ISceneNodeFactory* snf,ESCENE_NODE_TYPE type, ISceneNode* parent=0)
	{
		if (snf)
			return snf->addSceneNode(type,parent);
		else return 0;
	}
	
	ISceneNode* IrrScene_ISceneNodeFactory_addSceneNodeFromName(ISceneNodeFactory* snf,const c8* typeName, ISceneNode* parent=0)
	{
		if (snf)
			return snf->addSceneNode(typeName,parent);
		else return 0;
	}
	
	u32 IrrScene_ISceneNodeFactory_getCreatableSceneNodeTypeCount(ISceneNodeFactory* snf)
	{
		if (snf)
			return snf->getCreatableSceneNodeTypeCount();
		else return -1;
	}
	
	s32 IrrScene_ISceneNodeFactory_getCreateableSceneNodeType(ISceneNodeFactory* snf,u32 idx)
	{
		if (snf)
			return (s32)snf->getCreateableSceneNodeType(idx);
		else return -1;
	}
	
	const c8* IrrScene_ISceneNodeFactory_getCreateableSceneNodeTypeNameFromIndex(ISceneNodeFactory* snf,u32 idx)
	{
		if (snf)
			return snf->getCreateableSceneNodeTypeName(idx);
		else return 0;
	}
	
	const c8* IrrScene_ISceneNodeFactory_getCreateableSceneNodeTypeNameFromType(ISceneNodeFactory* snf,ESCENE_NODE_TYPE type)
	{
		if (snf)
			return snf->getCreateableSceneNodeTypeName(type);
		else return 0;		
	}

	bool IrrScene_ISceneNodeFactory_drop(ISceneNodeFactory* unk)
	{
		if (unk)
			return unk->drop();
		else return 0;
	}
	
	const c8* IrrScene_ISceneNodeFactory_getDebugName(ISceneNodeFactory* unk)
	{
		if (unk)
			return unk->getDebugName();
		else return "";
	}
	
	void IrrScene_ISceneNodeFactory_grab(ISceneNodeFactory* unk)
	{
		if (unk)
			unk->grab();
	}
		
}



