4#include <unordered_map>
18 TCPTreeAdapter(std::shared_ptr<EmberCore::BehaviorTree> tree, std::shared_ptr<StateManager> state_manager);
40 std::vector<EmberCore::ITreeNode *>
GetAllNodes()
override;
41 std::vector<const EmberCore::ITreeNode *>
GetAllNodes()
const override;
60 std::shared_ptr<EmberCore::BehaviorTree>
m_tree;
63 mutable std::unordered_map<size_t, std::unique_ptr<EmberCore::NodeAdapter>>
m_adapters;
Abstract interface for tree nodes that can be visualized.
NodeType
Node types for visualization categorization.
Abstract interface for tree structures that can be visualized.
Adapter class that wraps the current Node implementation to work with ITreeNode interface.
Represents a node in a behavior tree structure.
const EmberCore::String & GetName() const override
std::shared_ptr< EmberCore::BehaviorTree > GetBehaviorTree()
size_t GetNodeCount() const override
TCPTreeAdapter(std::shared_ptr< EmberCore::BehaviorTree > tree, std::shared_ptr< StateManager > state_manager)
int64_t GetCurrentTick() const
const EmberCore::String & GetDescription() const override
EmberCore::NodeAdapter * GetOrCreateAdapter(EmberCore::Node *node) const
std::vector< EmberCore::ITreeNode * > GetAllNodes() override
bool IsValid() const override
Protocol::NodeStatus NodeStatus
bool HasCycles() const override
EmberCore::ITreeNode * GetRootNode() const override
std::shared_ptr< StateManager > GetStateManager()
EmberCore::ITreeNode * FindNodeById(size_t id) const override
std::shared_ptr< const EmberCore::BehaviorTree > GetBehaviorTree() const
NodeStatus GetNodeStatus(size_t node_id) const
~TCPTreeAdapter() override=default
std::shared_ptr< EmberCore::BehaviorTree > m_tree
void TraverseNodes(std::function< void(EmberCore::ITreeNode *)> visitor) override
EmberCore::ITreeNode * FindNodeByName(const EmberCore::String &name) const override
std::shared_ptr< const StateManager > GetStateManager() const
bool HasRootNode() const override
EmberCore::NodeAdapter * m_rootAdapter
size_t GetMaxDepth() const override
std::shared_ptr< StateManager > m_stateManager
EmberCore::String GetTreeStructure() const override
void PrintTree() const override
std::unordered_map< size_t, std::unique_ptr< EmberCore::NodeAdapter > > m_adapters
std::vector< EmberCore::ITreeNode * > FindNodesByType(EmberCore::ITreeNode::NodeType type) const override
bool IsNodeInExecutionPath(size_t node_id) const
void BuildAdapterCache() const
std::string String
Framework-agnostic string type.