MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ create_node()

template<typename NodeType , typename... Args>
std::shared_ptr< NodeType > MayaFlux::Nodes::NodeGraphManager::create_node ( const std::string &  id,
Args &&...  args 
)
inline

Creates and registers a new node of the specified type.

Template Parameters
NodeTypeThe type of node to create (must derive from Node)
ArgsParameter types for the node's constructor
Parameters
idString identifier for the node
argsConstructor arguments for the node
Returns
Shared pointer to the created node

This template method creates a node of any type that derives from Node, passing the provided arguments to its constructor. The created node is automatically registered with the given string identifier for later lookup.

Example:

auto sine = manager.create_node<Generators::Sine>("my_sine", 440.0, 0.5);
auto filter = manager.create_node<Filters::LowPass>("my_filter", sine, 1000.0);

Definition at line 134 of file NodeGraphManager.hpp.

135 {
136 auto node = std::make_shared<NodeType>(std::forward<Args>(args)...);
137 m_Node_registry[id] = node;
138 return node;
139 }
std::unordered_map< std::string, std::shared_ptr< Node > > m_Node_registry
Registry of all nodes by their string identifiers.