Blender V4.3
COM_DilateErodeOperation.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
8
9namespace blender::compositor {
10
12 public:
13 struct PixelData;
14
15 private:
16 float distance_;
17 float switch_;
18 float inset_;
19
24 int scope_;
25
26 public:
27 /* DilateErode Distance Threshold */
29
30 void init_data() override;
31
32 void set_distance(float distance)
33 {
34 distance_ = distance;
35 }
36 void set_switch(float sw)
37 {
38 switch_ = sw;
39 }
40 void set_inset(float inset)
41 {
42 inset_ = inset;
43 }
44
45 void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) override;
47 const rcti &area,
48 Span<MemoryBuffer *> inputs) override;
49};
50
52 public:
53 struct PixelData;
54
55 protected:
56 float distance_;
57 int scope_;
58
59 public:
60 /* Dilate Distance. */
62
63 void init_data() override;
64
65 void set_distance(float distance)
66 {
68 }
69 void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) final;
70 virtual void update_memory_buffer_partial(MemoryBuffer *output,
71 const rcti &area,
72 Span<MemoryBuffer *> inputs) override;
73};
74
76 public:
77 /* Erode Distance */
79
81 const rcti &area,
82 Span<MemoryBuffer *> inputs) override;
83};
84
86 protected:
88
89 public:
90 /* Dilate step */
92
93 void set_iterations(int iterations)
94 {
95 iterations_ = iterations;
96 }
97
98 void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) final;
99 virtual void update_memory_buffer_partial(MemoryBuffer *output,
100 const rcti &area,
101 Span<MemoryBuffer *> inputs) override;
102};
103
105 public:
108
110 const rcti &area,
111 Span<MemoryBuffer *> inputs) override;
112};
113
114} // namespace blender::compositor
void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) final
Get input operation area being read by this operation on rendering given output area.
virtual void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
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_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
virtual void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) final
Get input operation area being read by this operation on rendering given output area.
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
a MemoryBuffer contains access to the data
float distance(float a, float b)