15 bool include_all_inner_edges_;
16 bool include_edges_of_image_;
18 bool is_output_rendered_;
24 const float *outer_mask,
29 const float *outer_mask_buffer,
35 const float *outer_mask,
40 include_all_inner_edges_ = include_all_inner_edges;
44 include_edges_of_image_ = include_edges_of_image;
void update_memory_buffer(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
DoubleEdgeMaskOperation()
void compute_double_edge_mask(const float *inner_mask, const float *outer_mask, float *output_mask)
void compute_boundary(const float *inner_mask, const float *outer_mask, MutableSpan< int2 > inner_boundary, MutableSpan< int2 > outer_boundary)
void set_include_all_inner_edges(bool include_all_inner_edges)
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 compute_gradient(const float *inner_mask_buffer, const float *outer_mask_buffer, MutableSpan< int2 > flooded_inner_boundary, MutableSpan< int2 > flooded_outer_boundary, float *output_mask)
void set_include_edges_of_image(bool include_edges_of_image)
a MemoryBuffer contains access to the data
NodeOperation contains calculation logic.