Blender V4.3
COM_BlurBaseOperation.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
9#define MAX_GAUSSTAB_RADIUS 30000
10
11#include "BLI_simd.hh"
12
13namespace blender::compositor {
14
16 private:
17 bool extend_bounds_;
18
19 protected:
20 static constexpr int IMAGE_INPUT_INDEX = 0;
21 static constexpr int SIZE_INPUT_INDEX = 1;
22
23 protected:
24 BlurBaseOperation(DataType data_type8);
25 float *make_gausstab(float rad, int size);
26#if BLI_HAVE_SSE2
27 __m128 *convert_gausstab_sse(const float *gausstab, int size);
28#endif
33 float *make_dist_fac_inverse(float rad, int size, int falloff);
34
35 void update_size();
36
38
39 float size_;
41
42 /* Flags for inheriting classes. */
44
45 public:
46 virtual void init_data() override;
47
48 void set_data(const NodeBlurData *data);
49
50 void set_size(float size)
51 {
52 size_ = size;
53 sizeavailable_ = true;
54 }
55
56 void set_extend_bounds(bool extend_bounds)
57 {
58 extend_bounds_ = extend_bounds;
59 }
60
61 int get_blur_size(eDimension dim) const;
62
63 void determine_canvas(const rcti &preferred_area, rcti &r_area) override;
64
65 virtual void get_area_of_interest(int input_idx,
66 const rcti &output_area,
67 rcti &r_input_area) override;
68};
69
70} // namespace blender::compositor
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
virtual 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.
float * make_dist_fac_inverse(float rad, int size, int falloff)
DataType
possible data types for sockets
Definition COM_defines.h:21