17 is_delta_set_ =
false;
28 switch (wrapping_type) {
52 const rcti &output_area,
57 r_input_area = output_area;
81 r_input_area = output_area;
92 if (input->is_a_single_elem() && output->is_a_single_elem()) {
93 copy_v4_v4(output->get_elem(0, 0), input->get_elem(0, 0));
104 const float value[4] = {0.0f, 0.0f, 0.0f, 1.0f};
105 output->fill(area, value);
113 delta_x = round(delta_x);
114 delta_y = round(delta_y);
117 for (
int y = area.ymin; y < area.ymax; y++) {
118 float *out = output->get_elem(area.xmin, y);
119 for (
int x = area.xmin; x < area.xmax; x++) {
120 const float input_x = x - delta_x;
121 const float input_y = y - delta_y;
123 out += output->elem_stride;
135 const bool determined =
MINLINE void copy_v4_v4(float r[4], const float a[4])
void BLI_rcti_translate(struct rcti *rect, int x, int y)
void BLI_rcti_resize_y(struct rcti *rect, int y)
void BLI_rcti_resize_x(struct rcti *rect, int x)
bool BLI_rcti_is_empty(const struct rcti *rect)
a MemoryBuffer contains access to the data
unsigned int get_height() const
void add_output_socket(DataType datatype)
unsigned int get_width() const
NodeOperationFlags flags_
NodeOperationInput * get_input_socket(unsigned int index)
void add_input_socket(DataType datatype, ResizeMode resize_mode=ResizeMode::Center)
void set_canvas_input_index(unsigned int index)
set the index of the input socket that will determine the canvas of this operation
TranslateCanvasOperation()
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
void update_memory_buffer_started(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
static constexpr int IMAGE_INPUT_INDEX
MemoryBufferExtend y_extend_mode_
MemoryBufferExtend x_extend_mode_
static constexpr int X_INPUT_INDEX
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
static constexpr int Y_INPUT_INDEX
void set_wrapping(int wrapping_type)
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.
DataType
possible data types for sockets
ResizeMode
Resize modes of inputsockets How are the input and working resolutions matched.
constexpr rcti COM_AREA_NONE