Elaztek Developer Hub
Blamite Game Engine - Sapien (Library)  00348.01.18.22.2253.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 <blam/api/blam_api.h>
6 
7 #ifdef SAPIEN_LIB_EXPORTS
8 #define SAPIEN_LIB_API __declspec(dllexport)
9 #else
10 #define SAPIEN_LIB_API __declspec(dllimport)
11 #endif
12 
17 {
18  Group,
19  Object,
20  Undefined
21 };
22 
27 {
28 private:
30 
31 protected:
32  bool use_custom_name = false;
33 
40  std::string display_name_override = "unspecified";
41 public:
43 
45 
46  BlamScenarioHierarchyNode(BlamScenarioHierarchyNodeType _node_type, std::string _display_name_override);
47 
53  virtual std::string GetName();
54 };
55 
62 {
63 public:
64  std::vector<BlamScenarioHierarchyNode*> child_nodes = std::vector<BlamScenarioHierarchyNode*>();
65 
66  BlamScenarioHierarchyNode_Group(std::string group_name);
67 
68  void ReleaseData();
69 };
70 
77 {
78 public:
79  BlamWorldObject* world_object = nullptr;
80 
82 
83  BlamScenarioHierarchyNode_Object(std::string custom_name);
84 
90  std::string GetName();
91 
97  std::string GetTypeLabel();
98 
104  std::string GetClassLabel();
105 };
106 
115 {
116 public:
117 
126 
134 
136 
137  void Refresh();
138 
139  void ReleaseData();
140 };
141 
143 {
145 
147 
149 }
BlamScenarioHierarchyNode::parent_node
BlamScenarioHierarchyNode * parent_node
The parent node, if any, of this hierarchy node.
Definition: hierarchy.h:42
BlamScenarioHierarchyNode_Object::world_object
BlamWorldObject * world_object
The world object that this node refers to.
Definition: hierarchy.h:79
BlamScenarioHierarchyNodeType::Group
@ Group
Indicates the hierarchy node is a BlamScenarioHierarchyNode_Group.
BlamScenarioHierarchy::Refresh
void Refresh()
Definition: BlamScenarioHierarchy.cpp:11
BlamScenarioHierarchyNode_Group::BlamScenarioHierarchyNode_Group
BlamScenarioHierarchyNode_Group(std::string group_name)
Definition: BlamScenarioHierarchyNode_Group.cpp:3
BlamScenarioHierarchyNodeType
BlamScenarioHierarchyNodeType
Enumerator listing possible hierarchy node types.
Definition: hierarchy.h:16
SAPIEN_LIB_API
#define SAPIEN_LIB_API
Definition: hierarchy.h:10
BlamScenarioHierarchyNode::use_custom_name
bool use_custom_name
Whether or not to use a custom display name for the node.
Definition: hierarchy.h:32
BlamScenarioHierarchyNode_Group::child_nodes
std::vector< BlamScenarioHierarchyNode * > child_nodes
The list of child nodes within this group.
Definition: hierarchy.h:64
BlamScenarioHierarchyNode::display_name_override
std::string display_name_override
The custom display name of this hierarchy node.
Definition: hierarchy.h:40
Sapien::Hierarchy
Definition: hierarchy.h:142
BlamScenarioHierarchyNode_Object::GetName
std::string GetName()
Retrieves the display name of the hierarchy node.
Definition: BlamScenarioHierarchyNode_Object.cpp:18
BlamScenarioHierarchy::debug_root_node
BlamScenarioHierarchyNode_Group * debug_root_node
Pointer to the Debug root node.
Definition: hierarchy.h:133
BlamScenarioHierarchyNode_Object::GetClassLabel
std::string GetClassLabel()
Creates a 'Class' label for the node to be shown to the user.
Definition: BlamScenarioHierarchyNode_Object.cpp:61
BlamScenarioHierarchyNode_Group::ReleaseData
void ReleaseData()
Sapien::Hierarchy::PrepareHierarchy
SAPIEN_LIB_API void PrepareHierarchy()
Definition: hierarchy.cpp:5
BlamScenarioHierarchy
Class representing a scenario hierarchy.
Definition: hierarchy.h:114
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:26
BlamScenarioHierarchy::ReleaseData
void ReleaseData()
Definition: BlamScenarioHierarchy.cpp:41
BlamScenarioHierarchyNode_Object
Class representing an object hierarchy node.
Definition: hierarchy.h:76
BlamScenarioHierarchyNode_Object::BlamScenarioHierarchyNode_Object
BlamScenarioHierarchyNode_Object()
Definition: BlamScenarioHierarchyNode_Object.cpp:7
BlamScenarioHierarchyNode_Group
Class representing a group hierarchy node.
Definition: hierarchy.h:61
Sapien::Hierarchy::GetHierarchy
SAPIEN_LIB_API BlamScenarioHierarchy * GetHierarchy()
Definition: hierarchy.cpp:22
BlamScenarioHierarchy::BlamScenarioHierarchy
BlamScenarioHierarchy()
Definition: BlamScenarioHierarchy.cpp:6
BlamScenarioHierarchyNode_Object::GetTypeLabel
std::string GetTypeLabel()
Creates a 'Type' label for the node to be shown to the user.
Definition: BlamScenarioHierarchyNode_Object.cpp:30
Sapien::Hierarchy::ReleaseHierarchy
SAPIEN_LIB_API void ReleaseHierarchy()
Definition: hierarchy.cpp:11
BlamScenarioHierarchy::scenario_root_node
BlamScenarioHierarchyNode_Group * scenario_root_node
Pointer to the Scenario/Mission root node.
Definition: hierarchy.h:125
BlamScenarioHierarchyNodeType::Object
@ Object
Indicates the hierarchy node is a BlamScenarioHierarchyNode_Object.
BlamScenarioHierarchyNode::BlamScenarioHierarchyNode
BlamScenarioHierarchyNode(BlamScenarioHierarchyNodeType _node_type)
Definition: BlamScenarioHierarchyNode.cpp:3
BlamScenarioHierarchyNodeType::Undefined
@ Undefined
Indicates the hierarchy node is an undefined type. Any node with this type should be considered inval...