18#include <unordered_map>
65 std::vector<const ITreeNode *>
GetAllNodes()
const override;
void PrintTree() const override
std::shared_ptr< BehaviorTree > behavior_tree_
EmberCore::String GetTreeStructure() const override
void TraverseNodes(std::function< void(ITreeNode *)> visitor) override
std::vector< ITreeNode * > FindNodesByType(ITreeNode::NodeType type) const override
ITreeNode * GetRootNode() const override
ITreeNode * FindNodeByName(const EmberCore::String &name) const override
DirectTreeAdapter(std::shared_ptr< BehaviorTree > tree)
Constructor that wraps a BehaviorTree.
NodeAdapter * GetOrCreateNodeAdapter(Node *node) const
ITreeNode::NodeType ConvertNodeType(Node::Type type) const
void EnsureRootAdapter() const
const EmberCore::String & GetName() const override
const EmberCore::String & GetDescription() const override
std::unique_ptr< NodeAdapter > root_adapter_
bool HasCycles() const override
std::shared_ptr< BehaviorTree > GetTree() const
std::unordered_map< Node *, std::unique_ptr< NodeAdapter > > node_adapter_cache_
std::shared_ptr< BehaviorTree > GetWrappedTree() const
ITreeNode * FindNodeById(size_t id) const override
bool IsValid() const override
virtual ~DirectTreeAdapter()=default
size_t GetMaxDepth() const override
std::vector< ITreeNode * > GetAllNodes() override
size_t GetNodeCount() const override
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.
Type
Node types for behavior tree classification.
Main types header for EmberCore.
std::string String
Framework-agnostic string type.