void compute_inpainting_region(const MemoryBuffer *input, const MemoryBuffer &inpainted_region, const MemoryBuffer &distance_to_boundary, MemoryBuffer *output)
void update_memory_buffer(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void deinit_execution() override
void inpaint(const MemoryBuffer *input, MemoryBuffer *output)
void set_max_distance(int max_distance)
MemoryBuffer * cached_buffer_
void init_execution() override
bool cached_buffer_ready_
Array< int2 > compute_inpainting_boundary(const MemoryBuffer *input)
void fill_inpainting_region(const MemoryBuffer *input, Span< int2 > flooded_boundary, MemoryBuffer &filled_region, MemoryBuffer &distance_to_boundary_buffer, MemoryBuffer &smoothing_radius_buffer)
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.
a MemoryBuffer contains access to the data
NodeOperation contains calculation logic.