🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ObjectManager.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "ObjectNode.hpp"
25#include <vector>
26#include <limits>
27
28AST_NAMESPACE_BEGIN
29
37class AST_UTIL_API ObjectManager
38{
39public:
40 static ObjectManager& CurrentInstance();
41
42 ObjectManager() = default;
43 ~ObjectManager() = default;
44public:
48 Object* getObject(uint32_t index);
49
56 uint32_t addObject(Object* object);
57
61 errc_t setParentScope(Object* obj, Object* parentScope);
62
63
67 Object* getParentScope(Object* obj);
68
69
72 uint32_t getMaxObjectCount() const{return maxObjectCount_;}
73
78 errc_t setMaxObjectCount(uint32_t maxCount);
79
83 uint32_t getObjectCount() const;
84
85protected:
86 friend class Object;
87 errc_t removeNode(uint32_t index);
88
89 void advanceIndex();
90protected:
91 constexpr static uint32_t kDefaultMaxObjectCount = static_cast<uint32_t>(-1) - 1;
92
93 std::vector<ObjectNode*> objects_;
94 uint32_t nextIndex_{0};
95 uint32_t maxObjectCount_{kDefaultMaxObjectCount};
96};
97
100AST_NAMESPACE_END
对象管理器
定义 ObjectManager.hpp:38
uint32_t getMaxObjectCount() const
获取最大对象数量
定义 ObjectManager.hpp:72
std::vector< ObjectNode * > objects_
所有对象节点
定义 ObjectManager.hpp:93
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:81