MayaFlux 0.2.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 250 of file Logic.cpp.

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