Blender V4.3
COM_InpaintOperation.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2011 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
7#include "BLI_array.hh"
9#include "BLI_span.hh"
10
11#include "COM_NodeOperation.h"
12
13namespace blender::compositor {
14
16 protected:
20
21 public:
23
25 const MemoryBuffer &inpainted_region,
26 const MemoryBuffer &distance_to_boundary,
27 MemoryBuffer *output);
28
29 void fill_inpainting_region(const MemoryBuffer *input,
30 Span<int2> flooded_boundary,
31 MemoryBuffer &filled_region,
32 MemoryBuffer &distance_to_boundary_buffer,
33 MemoryBuffer &smoothing_radius_buffer);
34
36
37 void inpaint(const MemoryBuffer *input, MemoryBuffer *output);
38
39 void init_execution() override;
40
41 void deinit_execution() override;
42
43 void set_max_distance(int max_distance)
44 {
45 max_distance_ = max_distance;
46 }
47
48 void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) override;
50 const rcti &area,
51 Span<MemoryBuffer *> inputs) override;
52};
53
54} // namespace blender::compositor
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 inpaint(const MemoryBuffer *input, MemoryBuffer *output)
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.