13 constexpr static int IMAGE_INPUT_INDEX = 0;
14 constexpr static int DEGREE_INPUT_INDEX = 1;
18 bool do_degree2_rad_conversion_;
26 float &x,
float &y,
float center_x,
float center_y,
float sine,
float cosine)
28 const float dx = x - center_x;
29 const float dy = y - center_y;
30 x = center_x + (cosine * dx + sine * dy);
31 y = center_y + (-sine * dx + cosine * dy);
36 const rcti &rotate_canvas,
40 const rcti &area,
float center_x,
float center_y,
float sine,
float cosine,
rcti &r_bounds);
42 const rcti &area,
float center_x,
float center_y,
float sine,
float cosine,
rcti &r_bounds);
44 const rcti &rotate_canvas,
47 const rcti &output_area,
58 do_degree2_rad_conversion_ = abool;
a MemoryBuffer contains access to the data
void init_data() override
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
void set_do_degree2_rad_conversion(bool abool)
static void get_rotation_offset(const rcti &input_canvas, const rcti &rotate_canvas, float &r_offset_x, float &r_offset_y)
static void rotate_coords(float &x, float &y, float center_x, float center_y, float sine, float cosine)
static void get_rotation_area_of_interest(const rcti &input_canvas, const rcti &rotate_canvas, float sine, float cosine, const rcti &output_area, rcti &r_input_area)
static void get_area_rotation_bounds_inverted(const rcti &area, float center_x, float center_y, float sine, float cosine, rcti &r_bounds)
static void get_area_rotation_bounds(const rcti &area, float center_x, float center_y, float sine, float cosine, rcti &r_bounds)
static void get_rotation_canvas(const rcti &input_canvas, float sine, float cosine, rcti &r_canvas)
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
static void get_rotation_center(const rcti &area, float &r_x, float &r_y)
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 set_sampler(PixelSampler sampler)
local_group_size(16, 16) .push_constant(Type local_group_size(16, 16) .push_constant(Type input_tx sampler(1, ImageType::FLOAT_2D, "matte_tx") .image(0