Ember
Loading...
Searching...
No Matches
DefaultTreeFactory.h
Go to the documentation of this file.
1#pragma once
2
5#include "Core/Node.h"
7#include <memory>
8
9namespace EmberCore {
10
18 public:
19 DefaultTreeFactory() = default;
20 virtual ~DefaultTreeFactory() = default;
21
22 // ITreeFactory interface implementation
23 std::shared_ptr<ITreeStructure> CreateTree(const EmberCore::String &name = "New Tree") override;
24 std::shared_ptr<ITreeNode> CreateNode(const EmberCore::String &name, ITreeNode::NodeType type) override;
25 std::shared_ptr<ITreeStructure> CreateSampleTree() override;
26
27 EmberCore::String GetFactoryName() const override { return "Default Implementation"; }
28 EmberCore::String GetFactoryVersion() const override { return "1.0.0"; }
29
30 bool SupportsFeature(const EmberCore::String &feature_name) const override {
31 // Current implementation supports all basic features
32 return feature_name == "basic_tree_operations" || feature_name == "node_manipulation" ||
33 feature_name == "tree_validation" || feature_name == "serialization";
34 }
35
36 private:
37 // Helper method to convert ITreeNode::NodeType to Node::Type
39
40 // Helper method to convert Node::Type to ITreeNode::NodeType
42};
43
44} // namespace EmberCore
Node::Type ConvertNodeType(ITreeNode::NodeType type) const
EmberCore::String GetFactoryName() const override
Get the name of this factory implementation.
bool SupportsFeature(const EmberCore::String &feature_name) const override
Check if this factory supports a specific feature.
EmberCore::String GetFactoryVersion() const override
Get the version of this factory implementation.
std::shared_ptr< ITreeNode > CreateNode(const EmberCore::String &name, ITreeNode::NodeType type) override
Create a new node.
std::shared_ptr< ITreeStructure > CreateTree(const EmberCore::String &name="New Tree") override
Create a new empty behavior tree.
virtual ~DefaultTreeFactory()=default
std::shared_ptr< ITreeStructure > CreateSampleTree() override
Create a sample behavior tree for testing.
Abstract factory interface for creating behavior tree implementations.
NodeType
Node types for visualization categorization.
Definition ITreeNode.h:36
Type
Node types for behavior tree classification.
Definition Node.h:25
Main types header for EmberCore.
std::string String
Framework-agnostic string type.
Definition String.h:14