MayaFlux 0.1.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 253 of file Logic.cpp.

254{
258
259 if (m_input_buffer.size() < inputs.size()) {
260 m_input_buffer.resize(inputs.size(), 0.0);
261 m_input_count = inputs.size();
262 }
263
265 m_multi_input_function = [this](const std::vector<double>& inputs) {
266 bool result = true;
267 for (const auto& input : inputs) {
268 result = result && (input > m_threshold);
269 }
270 return result;
271 };
272 }
273 }
274
275 // Copy inputs to our buffer
276 for (size_t i = 0; i < inputs.size() && i < m_input_buffer.size(); ++i) {
277 m_input_buffer[i] = inputs[i];
278 }
279
281 m_last_output = result ? 1.0 : 0.0;
282
284
285 return m_last_output;
286}
double m_threshold
Threshold for boolean conversion.
Definition Logic.hpp:568
std::vector< double > m_input_buffer
Definition Logic.hpp:575
LogicOperator m_operator
Current logic operator.
Definition Logic.hpp:560
MultiInputFunction m_multi_input_function
Function for recursive/feedforward mode.
Definition Logic.hpp:562
LogicMode m_mode
Current processing mode.
Definition Logic.hpp:559
void notify_tick(double value) override
Notifies all registered callbacks about a new sample.
Definition Logic.cpp:512
size_t m_input_count
Expected number of inputs for multi-input mode.
Definition Logic.hpp:567
double m_last_output
The most recent sample value generated by this oscillator.
Definition Node.hpp:378
@ 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: