Blender  V3.3
COM_TransformOperation.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2021 Blender Foundation. */
3 
4 #pragma once
5 
7 
8 namespace blender::compositor {
9 
11  private:
12  constexpr static int IMAGE_INPUT_INDEX = 0;
13  constexpr static int X_INPUT_INDEX = 1;
14  constexpr static int Y_INPUT_INDEX = 2;
15  constexpr static int DEGREE_INPUT_INDEX = 3;
16  constexpr static int SCALE_INPUT_INDEX = 4;
17 
18  float rotate_cosine_;
19  float rotate_sine_;
20  int translate_x_;
21  int translate_y_;
22  float scale_;
23  rcti scale_canvas_ = COM_AREA_NONE;
24  rcti rotate_canvas_ = COM_AREA_NONE;
25  rcti translate_canvas_ = COM_AREA_NONE;
26 
27  /* Set variables. */
28  PixelSampler sampler_;
29  bool convert_degree_to_rad_;
30  float translate_factor_x_;
31  float translate_factor_y_;
32  bool invert_;
33  Size2f max_scale_canvas_size_;
34 
35  public:
37 
38  void set_translate_factor_xy(float x, float y)
39  {
40  translate_factor_x_ = x;
41  translate_factor_y_ = y;
42  }
43 
45  {
46  convert_degree_to_rad_ = value;
47  }
48 
50  {
51  sampler_ = sampler;
52  }
53 
54  void set_invert(bool value)
55  {
56  invert_ = value;
57  }
58 
60 
61  void init_data() override;
62  void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) override;
64  const rcti &area,
65  Span<MemoryBuffer *> inputs) override;
66 
67  void determine_canvas(const rcti &preferred_area, rcti &r_area) override;
68 
69  private:
71  void transform(BuffersIterator<float> &it, const MemoryBuffer *input_img);
73  void transform_inverted(BuffersIterator<float> &it, const MemoryBuffer *input_img);
74 };
75 
76 } // namespace blender::compositor
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition: btDbvt.cpp:52
a MemoryBuffer contains access to the data of a chunk
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 determine_canvas(const rcti &preferred_area, rcti &r_area) override
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
depth_tx sampler(1, ImageType::FLOAT_2D, "combined_tx") .sampler(2
ccl_global KernelShaderEvalInput ccl_global float * output
static void area(int d1, int d2, int e1, int e2, float weights[2])
typename BuffersIteratorBuilder< T >::Iterator BuffersIterator
constexpr rcti COM_AREA_NONE
Definition: COM_defines.h:112
static bNodeSocketTemplate inputs[]