25#define BLENDER_ZMAX 10000.0f
46 for (
const float *elem : input->as_range()) {
47 const float value = *elem;
58 minmult->
y = ((maxv != minv) ? 1.0f / (maxv - minv) : 0.0f);
70 const float input_value = *it.in(0);
72 *it.out = (input_value - minmult->
x) * minmult->
y;
75 CLAMP(*it.out, 0.0f, 1.0f);
struct NodeTwoFloats NodeTwoFloats
a MemoryBuffer contains access to the data
void add_output_socket(DataType datatype)
NodeOperationFlags flags_
const rcti & get_canvas() const
NodeOperation * get_input_operation(int index)
void add_input_socket(DataType datatype, ResizeMode resize_mode=ResizeMode::Center)
void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) override
Get input operation area being read by this operation on rendering given output area.
void update_memory_buffer_started(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void deinit_execution() override
NodeTwoFloats * cached_instance_
temporarily cache of the execution storage it stores x->min and y->multiply.
typename BuffersIteratorBuilder< T >::Iterator BuffersIterator