MayaFlux 0.4.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 153 of file NodeGraphManager.hpp.

154 {
155 auto node = std::make_shared<NodeType>(std::forward<Args>(args)...);
156 m_Node_registry[id] = node;
157 return node;
158 }
uint32_t id
std::unordered_map< std::string, std::shared_ptr< Node > > m_Node_registry
Registry of all nodes by their string identifiers.

References id.