Blender  V3.3
COM_PlaneTrackOperation.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2013 Blender Foundation. */
3 
4 #pragma once
5 
6 #include <string.h>
7 
9 
10 #include "DNA_movieclip_types.h"
11 #include "DNA_tracking_types.h"
12 
13 #include "BLI_listbase.h"
14 #include "BLI_string.h"
15 
16 namespace blender::compositor {
17 
19  protected:
24 
25  /* NOTE: this class is not an operation itself (to prevent virtual inheritance issues)
26  * implementation classes must make wrappers to use these methods, see below.
27  */
29  void determine_canvas(const rcti &preferred_area, rcti &r_area);
30 
31  public:
33 
35  {
36  movie_clip_ = clip;
37  }
38  void set_tracking_object(char *object)
39  {
41  }
42  void set_plane_track_name(char *plane_track)
43  {
44  BLI_strncpy(plane_track_name_, plane_track, sizeof(plane_track_name_));
45  }
46  void set_framenumber(int framenumber)
47  {
48  framenumber_ = framenumber;
49  }
50 
51  private:
52  void read_corners_from_track(float corners[4][2], float frame);
53 };
54 
56  public:
58  {
59  }
60 
61  void init_data() override;
62 
63  void init_execution() override;
64 
65  void determine_canvas(const rcti &preferred_area, rcti &r_area) override
66  {
67  PlaneTrackCommon::determine_canvas(preferred_area, r_area);
68 
69  rcti unused = COM_AREA_NONE;
70  rcti &preferred = r_area;
71  NodeOperation::determine_canvas(preferred, unused);
72  }
73 };
74 
76  public PlaneTrackCommon {
77  public:
79  {
80  }
81 
82  void init_data() override;
83 
84  void init_execution() override;
85 
86  void determine_canvas(const rcti &preferred_area, rcti &r_area) override
87  {
88  PlaneTrackCommon::determine_canvas(preferred_area, r_area);
89 
90  rcti unused = COM_AREA_NONE;
91  rcti &preferred = r_area;
92  NodeOperation::determine_canvas(preferred, unused);
93  }
94 };
95 
96 } // namespace blender::compositor
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
Definition: string.c:64
virtual void determine_canvas(const rcti &preferred_area, rcti &r_area)
void determine_canvas(const rcti &preferred_area, rcti &r_area)
void read_and_calculate_corners(PlaneDistortBaseOperation *distort_op)
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
constexpr rcti COM_AREA_NONE
Definition: COM_defines.h:112