Elaztek Developer Hub
Blamite Game Engine - Sapien (Library)  00349.01.22.22.0709.blamite
The level editor application for the Blamite Game Engine.
hierarchy.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 #include <vector>
5 #include <map>
6 #include <blam/api/blam_api.h>
7 
8 #ifdef SAPIEN_LIB_EXPORTS
9 #define SAPIEN_LIB_API __declspec(dllexport)
10 #else
11 #define SAPIEN_LIB_API __declspec(dllimport)
12 #endif
13 
18 {
19  Group,
20  Object,
21  Undefined
22 };
23 
28 {
29 private:
31 
32 protected:
33  bool use_custom_name = false;
34 
41  std::string display_name_override = "unspecified";
42 public:
43  BlamScenarioHierarchyNode* parent_node = nullptr;
44 
46 
47  BlamScenarioHierarchyNode(BlamScenarioHierarchyNodeType _node_type, std::string _display_name_override);
48 
50 
56  virtual std::string GetName();
57 };
58 
65 {
66 public:
67  std::vector<BlamScenarioHierarchyNode*> child_nodes = std::vector<BlamScenarioHierarchyNode*>();
68  int folder_id = -1;
69 
70  BlamScenarioHierarchyNode_Group(std::string group_name, int _folder_id);
71 
72  void ReleaseData();
73 };
74 
81 {
82 public:
83  BlamWorldObject* world_object = nullptr;
84 
86 
87  BlamScenarioHierarchyNode_Object(std::string custom_name);
88 
94  std::string GetName();
95 
101  std::string GetTypeLabel();
102 
108  std::string GetClassLabel();
109 };
110 
119 {
120 public:
121 
129  BlamScenarioHierarchyNode_Group* scenario_root_node = nullptr;
130 
135  std::map<int, BlamScenarioHierarchyNode_Group*> folder_ids = std::map<int, BlamScenarioHierarchyNode_Group*>();
136 
141 
146 
150  void Refresh();
151 
155  void ReleaseData();
156 };
157 
159 {
161 
163 
165 
167 }
BlamScenarioHierarchyNodeType::Group
@ Group
Indicates the hierarchy node is a BlamScenarioHierarchyNode_Group.
BlamScenarioHierarchyNodeType
BlamScenarioHierarchyNodeType
Enumerator listing possible hierarchy node types.
Definition: hierarchy.h:17
SAPIEN_LIB_API
#define SAPIEN_LIB_API
Definition: hierarchy.h:11
Sapien::Hierarchy
Definition: hierarchy.h:158
Sapien::Hierarchy::SaveScenario
SAPIEN_LIB_API void SaveScenario()
Definition: hierarchy.cpp:29
Sapien::Hierarchy::PrepareHierarchy
SAPIEN_LIB_API void PrepareHierarchy()
Definition: hierarchy.cpp:7
BlamScenarioHierarchy
Class representing a scenario hierarchy.
Definition: hierarchy.h:118
BlamScenarioHierarchyNode::GetName
virtual std::string GetName()
Retrieves the display name of the hierarchy node.
Definition: BlamScenarioHierarchyNode.cpp:15
BlamScenarioHierarchyNode
Base class for hierarchy nodes.
Definition: hierarchy.h:27
BlamScenarioHierarchyNode_Object
Class representing an object hierarchy node.
Definition: hierarchy.h:80
BlamScenarioHierarchyNode_Group
Class representing a group hierarchy node.
Definition: hierarchy.h:64
Sapien::Hierarchy::GetHierarchy
SAPIEN_LIB_API BlamScenarioHierarchy * GetHierarchy()
Definition: hierarchy.cpp:24
Sapien::Hierarchy::ReleaseHierarchy
SAPIEN_LIB_API void ReleaseHierarchy()
Definition: hierarchy.cpp:13
BlamScenarioHierarchyNodeType::Object
@ Object
Indicates the hierarchy node is a BlamScenarioHierarchyNode_Object.
BlamScenarioHierarchyNodeType::Undefined
@ Undefined
Indicates the hierarchy node is an undefined type. Any node with this type should be considered inval...