ULRE/inc/hgl/graph/Scene.h

51 lines
1.3 KiB
C
Raw Normal View History

2024-09-06 01:04:28 +08:00
#pragma once
2024-09-06 01:04:28 +08:00
#include<hgl/graph/SceneNode.h>
2025-05-22 01:42:16 +08:00
#include<hgl/type/Pool.h>
2024-09-06 01:04:28 +08:00
namespace hgl::graph
2024-09-06 01:04:28 +08:00
{
/**
* <Br>
*
*/
class Scene
{
U8String SceneName; ///<场景名称
2025-05-22 01:42:16 +08:00
ObjectList<SceneNode> SceneNodePool; ///<场景节点池
SceneNode *root_node; ///<场景根节点
2025-05-22 01:42:16 +08:00
public:
const U8String & GetSceneName()const{return SceneName;} ///<获取场景名称
2025-05-22 01:42:16 +08:00
SceneNode * GetRootNode (){return root_node;} ///<获取场景根节点
2025-05-22 01:42:16 +08:00
public:
2024-09-06 01:04:28 +08:00
Scene()
{
root_node=new SceneNode;
}
2024-09-06 01:04:28 +08:00
virtual ~Scene()
{
SAFE_CLEAR(root_node);
}
};//class Scene
2025-05-22 01:42:16 +08:00
bool RegistryScene(Scene *sw); ///<注册场景
2025-06-04 00:18:32 +08:00
bool UnregistryScene(const U8String &scene_name); ///<注销场景
2025-05-22 01:42:16 +08:00
inline bool UnregistryScene(Scene *sw) ///<注销场景
2025-05-22 01:42:16 +08:00
{
if(!sw)return(false);
return UnregistryScene(sw->GetSceneName());
2025-05-22 01:42:16 +08:00
}
2025-06-04 00:18:32 +08:00
Scene *GetScene(const U8String &scene_name); ///<获取指定名称的场景
}//namespace hgl::graph