Irrlicht 3D Engine
ISceneNodeFactory.h
Go to the documentation of this file.
00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt
00002 // This file is part of the "Irrlicht Engine".
00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
00004 
00005 #ifndef __I_SCENE_NODE_FACTORY_H_INCLUDED__
00006 #define __I_SCENE_NODE_FACTORY_H_INCLUDED__
00007 
00008 #include "IReferenceCounted.h"
00009 #include "ESceneNodeTypes.h"
00010 
00011 namespace irr
00012 {
00013 
00014 namespace scene
00015 {
00016     class ISceneNode;
00017 
00019 
00027     class ISceneNodeFactory : public virtual IReferenceCounted
00028     {
00029     public:
00031 
00035         virtual ISceneNode* addSceneNode(ESCENE_NODE_TYPE type, ISceneNode* parent=0) = 0;
00036 
00038 
00042         virtual ISceneNode* addSceneNode(const c8* typeName, ISceneNode* parent=0) = 0;
00043 
00045         virtual u32 getCreatableSceneNodeTypeCount() const = 0;
00046 
00048 
00050         virtual ESCENE_NODE_TYPE getCreateableSceneNodeType(u32 idx) const = 0;
00051 
00053 
00055         virtual const c8* getCreateableSceneNodeTypeName(u32 idx) const = 0;
00056 
00058 
00060         virtual const c8* getCreateableSceneNodeTypeName(ESCENE_NODE_TYPE type) const = 0;
00061     };
00062 
00063 
00064 } // end namespace scene
00065 } // end namespace irr
00066 
00067 #endif
00068