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

◆ process_multi_input()

double MayaFlux::Nodes::Generator::Logic::process_multi_input ( const std::vector< double > &  inputs)

Processes multiple parallel inputs.

Parameters
inputsVector of input values to evaluate together
Returns
1.0 for true result, 0.0 for false result

Evaluates multiple inputs simultaneously according to the configured multi-input logic function, producing a single binary output.

Definition at line 246 of file Logic.cpp.

247{
251
252 if (m_input_buffer.size() < inputs.size()) {
253 m_input_buffer.resize(inputs.size(), 0.0);
254 m_input_count = inputs.size();
255 }
256
258 m_multi_input_function = [this](const std::vector<double>& inputs) {
259 bool result = true;
260 for (const auto& input : inputs) {
261 result = result && (input > m_threshold);
262 }
263 return result;
264 };
265 }
266 }
267
268 // Copy inputs to our buffer
269 for (size_t i = 0; i < inputs.size() && i < m_input_buffer.size(); ++i) {
270 m_input_buffer[i] = inputs[i];
271 }
272
274 m_last_output = result ? 1.0 : 0.0;
275
277
278 return m_last_output;
279}
double m_threshold
Threshold for boolean conversion.
Definition Logic.hpp:590
std::vector< double > m_input_buffer
Definition Logic.hpp:598
LogicOperator m_operator
Current logic operator.
Definition Logic.hpp:581
MultiInputFunction m_multi_input_function
Function for recursive/feedforward mode.
Definition Logic.hpp:583
LogicMode m_mode
Current processing mode.
Definition Logic.hpp:580
void notify_tick(double value) override
Notifies all registered callbacks about a new sample.
Definition Logic.cpp:503
size_t m_input_count
Expected number of inputs for multi-input mode.
Definition Logic.hpp:589
double m_last_output
The most recent sample value generated by this oscillator.
Definition Node.hpp:377
@ MULTI_INPUT
Parallel evaluation of multiple input signals.
@ CUSTOM
User-defined boolean function.

References MayaFlux::Nodes::Generator::CUSTOM, m_input_buffer, m_input_count, MayaFlux::Nodes::Node::m_last_output, m_mode, m_multi_input_function, m_operator, m_threshold, MayaFlux::Nodes::Generator::MULTI_INPUT, and notify_tick().

+ Here is the call graph for this function: