Blender  V3.3
DNA_tracking_types.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2011 Blender Foundation. All rights reserved. */
3 
10 #pragma once
11 
12 #include "DNA_defs.h"
13 #include "DNA_listBase.h"
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 /* match-moving data */
20 
21 struct Image;
23 struct MovieTracking;
24 struct MovieTrackingCamera;
25 struct MovieTrackingMarker;
26 struct MovieTrackingTrack;
27 struct bGPdata;
28 
29 typedef struct MovieReconstructedCamera {
30  int framenr;
31  float error;
32  float mat[4][4];
34 
35 typedef struct MovieTrackingCamera {
37  void *intrinsics;
38 
40  char _pad[2];
41 
43  float sensor_width;
45  float pixel_aspect;
47  float focal;
49  short units;
50  char _pad1[2];
52  float principal[2];
53 
54  /* Polynomial distortion */
56  float k1, k2, k3;
57 
58  /* Division distortion model coefficients */
60 
61  /* Nuke distortion model coefficients */
62  float nuke_k1, nuke_k2;
63 
64  /* Brown-Conrady distortion model coefficients */
70 
71 typedef struct MovieTrackingMarker {
73  float pos[2];
74 
75  /* corners of pattern in the following order:
76  *
77  * Y
78  * ^
79  * | (3) --- (2)
80  * | | |
81  * | | |
82  * | | |
83  * | (0) --- (1)
84  * +-------------> X
85  *
86  * the coordinates are stored relative to pos.
87  */
88  float pattern_corners[4][2];
89 
90  /* positions of left-bottom and right-top corners of search area (in unified 0..1 units,
91  * relative to marker->pos
92  */
93  float search_min[2], search_max[2];
94 
96  int framenr;
98  int flag;
100 
101 typedef struct MovieTrackingTrack {
103 
105  char name[64];
106 
107  /* ** settings ** */
108 
109  /* positions of left-bottom and right-top corners of pattern (in unified 0..1 units,
110  * relative to marker->pos)
111  * moved to marker's corners since planar tracking implementation
112  */
113  float pat_min[2] DNA_DEPRECATED, pat_max[2] DNA_DEPRECATED;
114 
115  /* positions of left-bottom and right-top corners of search area (in unified 0..1 units,
116  * relative to marker->pos
117  * moved to marker since affine tracking implementation
118  */
119  float search_min[2] DNA_DEPRECATED, search_max[2] DNA_DEPRECATED;
120 
122  float offset[2];
123 
124  /* ** track ** */
128  int _pad;
131 
132  /* ** reconstruction data ** */
134  float bundle_pos[3];
136  float error;
137 
138  /* ** UI editing ** */
142  float color[3];
143 
144  /* ** control how tracking happens */
151  short margin;
155 
156  /* tracking parameters */
163 
165  struct bGPdata *gpd;
166 
167  /* Weight of this track.
168  *
169  * Weight defines how much the track affects on the final reconstruction,
170  * usually gets animated in a way so when track has just appeared its
171  * weight is zero and then it gets faded up.
172  *
173  * Used to prevent jumps of the camera when tracks are appearing or
174  * disappearing.
175  */
176  float weight;
177 
178  /* track weight especially for 2D stabilization */
179  float weight_stab;
181 
182 typedef struct MovieTrackingPlaneMarker {
183  /* Corners of the plane in the following order:
184  *
185  * Y
186  * ^
187  * | (3) --- (2)
188  * | | |
189  * | | |
190  * | | |
191  * | (0) --- (1)
192  * +-------------> X
193  *
194  * The coordinates are stored in frame normalized coordinates.
195  */
196  float corners[4][2];
197 
199  int framenr;
201  int flag;
203 
204 typedef struct MovieTrackingPlaneTrack {
206 
208  char name[64];
209 
217  char _pad[4];
218 
223 
225  int flag;
226 
228  struct Image *image;
231 
232  /* Runtime data */
236 
237 typedef struct MovieTrackingSettings {
238  /* ** default tracker settings */
261 
263  short motion_flag;
264 
265  /* ** common tracker settings ** */
267  short speed;
268 
269  /* ** reconstruction settings ** */
270  /* two keyframes for reconstruction initialization
271  * were moved to per-tracking object settings
272  */
273  int keyframe1 DNA_DEPRECATED;
274  int keyframe2 DNA_DEPRECATED;
275 
277 
278  /* which camera intrinsics to refine. uses on the REFINE_* flags */
280 
281  /* ** tool settings ** */
282 
283  /* set scale */
285  float dist;
286 
287  /* cleanup */
289  float clean_error;
290 
291  /* set object scale */
295 
297  int flag;
302 
303  /* 2d stabilization */
305  float maxscale;
308 
312  float target_pos[2];
314  float target_rot;
316  float scale;
317 
320 
322  int filter;
323 
324  /* initialization and run-time data */
329 
331  int flag;
332 
334  float error;
335 
339  int camnr;
343 
344 typedef struct MovieTrackingObject {
346 
348  char name[64];
349  int flag;
351  float scale;
352 
359 
360  /* reconstruction options */
364 
365 typedef struct MovieTrackingStats {
366  char message[256];
368 
371 
374  char _pad[4];
375 
377  char name[64];
378 
382  int *segments;
388 
391 
392  int coverage;
395 
396  char _pad[4];
398 
399 typedef struct MovieTrackingDopesheet {
401  int ok;
402 
404  short sort_method;
406  short flag;
407 
408  /* ** runtime stuff ** */
409 
410  /* summary */
412 
413  /* detailed */
416 
417  char _pad[4];
419 
420 typedef struct MovieTracking {
437 
441 
444 
448 
450 enum {
455 };
456 
458 enum {
461 };
462 
464 enum {
465  MARKER_DISABLED = (1 << 0),
466  MARKER_TRACKED = (1 << 1),
467  MARKER_GRAPH_SEL_X = (1 << 2),
468  MARKER_GRAPH_SEL_Y = (1 << 3),
470 };
471 
473 enum {
474  TRACK_HAS_BUNDLE = (1 << 1),
475  TRACK_DISABLE_RED = (1 << 2),
477  TRACK_DISABLE_BLUE = (1 << 4),
478  TRACK_HIDDEN = (1 << 5),
479  TRACK_LOCKED = (1 << 6),
480  TRACK_CUSTOMCOLOR = (1 << 7),
481  TRACK_USE_2D_STAB = (1 << 8),
483  TRACK_DOPE_SEL = (1 << 10),
484  TRACK_PREVIEW_ALPHA = (1 << 11),
486 };
487 
489 enum {
496 };
497 
499 enum {
503 };
504 
506 typedef enum eTrackFrameMatch {
510 
512 enum {
514 
516 };
517 
519 enum {
525 };
526 
528 enum {
529  /* TRACKING_USE_FALLBACK_RECONSTRUCTION = (1 << 0), */ /* DEPRECATED */
531 };
532 
534 enum {
536 
541 };
542 
544 enum {
546  TRACKING_AUTOSCALE = (1 << 1),
550 };
551 
553 enum {
557 };
558 
560 enum {
562 };
563 
565 enum {
567 };
568 
569 enum {
573 };
574 
576 enum {
583 };
584 
586 enum {
590 };
591 
593 enum {
597 };
598 
600 enum {
603 };
604 
606 enum {
607  PLANE_TRACK_HIDDEN = (1 << 1),
608  PLANE_TRACK_LOCKED = (1 << 2),
610 };
611 
612 #ifdef __cplusplus
613 }
614 #endif
These structs are the foundation for all linked lists in the library system.
@ PLANE_MARKER_DISABLED
@ PLANE_MARKER_TRACKED
@ TRACKING_CLEAN_DELETE_SEGMENT
@ TRACKING_CLEAN_SELECT
@ TRACKING_CLEAN_DELETE_TRACK
@ TRACKING_OBJECT_CAMERA
@ TRACKING_SPEED_DOUBLE
@ TRACKING_SPEED_HALF
@ TRACKING_SPEED_FASTEST
@ TRACKING_SPEED_QUARTER
@ TRACKING_SPEED_REALTIME
struct MovieTrackingDopesheet MovieTrackingDopesheet
@ TRACKING_AUTOSCALE
@ TRACKING_SHOW_STAB_TRACKS
@ TRACKING_STABILIZE_SCALE
@ TRACKING_STABILIZE_ROTATION
@ TRACKING_2D_STABILIZATION
struct MovieTrackingPlaneMarker MovieTrackingPlaneMarker
@ TRACKING_FILTER_BICUBIC
@ TRACKING_FILTER_NEAREST
@ TRACKING_FILTER_BILINEAR
@ TRACK_ALGORITHM_FLAG_USE_NORMALIZATION
@ TRACK_ALGORITHM_FLAG_USE_BRUTE
@ TRACK_ALGORITHM_FLAG_USE_MASK
struct MovieTrackingSettings MovieTrackingSettings
struct MovieReconstructedCamera MovieReconstructedCamera
@ REFINE_PRINCIPAL_POINT
@ REFINE_NO_INTRINSICS
@ REFINE_TANGENTIAL_DISTORTION
@ REFINE_RADIAL_DISTORTION
@ REFINE_FOCAL_LENGTH
@ TRACKING_RECONSTRUCTED
@ PLANE_TRACK_HIDDEN
@ PLANE_TRACK_LOCKED
@ PLANE_TRACK_AUTOKEY
@ MARKER_GRAPH_SEL_X
@ MARKER_GRAPH_SEL_Y
@ MARKER_TRACKED
@ MARKER_DISABLED
@ MARKER_GRAPH_SEL
struct MovieTracking MovieTracking
@ TRACKING_MOTION_MODAL
@ TRACKING_MOTION_TRIPOD
struct MovieTrackingPlaneTrack MovieTrackingPlaneTrack
struct MovieTrackingMarker MovieTrackingMarker
@ TRACK_CUSTOMCOLOR
@ TRACK_PREVIEW_ALPHA
@ TRACK_DISABLE_BLUE
@ TRACK_HIDDEN
@ TRACK_PREVIEW_GRAYSCALE
@ TRACK_LOCKED
@ TRACK_DOPE_SEL
@ TRACK_USE_2D_STAB
@ TRACK_HAS_BUNDLE
@ TRACK_USE_2D_STAB_ROT
@ TRACK_DISABLE_RED
@ TRACK_DISABLE_GREEN
@ TRACKING_COVERAGE_BAD
@ TRACKING_COVERAGE_OK
@ TRACKING_COVERAGE_ACCEPTABLE
struct MovieTrackingTrack MovieTrackingTrack
struct MovieTrackingDopesheetChannel MovieTrackingDopesheetChannel
@ CAMERA_UNITS_MM
@ CAMERA_UNITS_PX
struct MovieTrackingStats MovieTrackingStats
struct MovieTrackingReconstruction MovieTrackingReconstruction
@ TRACKING_DISTORTION_MODEL_DIVISION
@ TRACKING_DISTORTION_MODEL_POLYNOMIAL
@ TRACKING_DISTORTION_MODEL_NUKE
@ TRACKING_DISTORTION_MODEL_BROWN
struct MovieTrackingObject MovieTrackingObject
@ TRACKING_USE_KEYFRAME_SELECTION
struct MovieTrackingDopesheetCoverageSegment MovieTrackingDopesheetCoverageSegment
struct MovieTrackingStabilization MovieTrackingStabilization
struct MovieTrackingCamera MovieTrackingCamera
@ TRACKING_DOPE_SELECTED_ONLY
@ TRACKING_DOPE_SORT_INVERSE
@ TRACKING_DOPE_SHOW_HIDDEN
@ TRACK_MOTION_MODEL_TRANSLATION_SCALE
@ TRACK_MOTION_MODEL_TRANSLATION
@ TRACK_MOTION_MODEL_TRANSLATION_ROTATION_SCALE
@ TRACK_MOTION_MODEL_TRANSLATION_ROTATION
@ TRACK_MOTION_MODEL_HOMOGRAPHY
@ TRACK_MOTION_MODEL_AFFINE
@ TRACKING_DOPE_SORT_START
@ TRACKING_DOPE_SORT_AVERAGE_ERROR
@ TRACKING_DOPE_SORT_LONGEST
@ TRACKING_DOPE_SORT_NAME
@ TRACKING_DOPE_SORT_END
@ TRACKING_DOPE_SORT_TOTAL
eTrackFrameMatch
@ TRACK_MATCH_PREVIOS_FRAME
@ TRACK_MATCH_KEYFRAME
struct MovieTrackingDopesheetChannel * prev
struct MovieTrackingDopesheetChannel * next
struct MovieTrackingDopesheetCoverageSegment * prev
struct MovieTrackingDopesheetCoverageSegment * next
struct MovieTrackingObject * prev
MovieTrackingReconstruction reconstruction
struct MovieTrackingObject * next
struct MovieTrackingPlaneTrack * next
MovieTrackingTrack ** point_tracks
MovieTrackingPlaneMarker * markers
struct MovieTrackingPlaneTrack * prev
struct MovieReconstructedCamera * cameras
MovieTrackingTrack *rot_track DNA_DEPRECATED
struct bGPdata * gpd
MovieTrackingMarker * markers
float search_min[2] DNA_DEPRECATED
float pat_min[2] DNA_DEPRECATED
struct MovieTrackingTrack * next
struct MovieTrackingTrack * prev
MovieTrackingReconstruction reconstruction
MovieTrackingPlaneTrack * act_plane_track
MovieTrackingDopesheet dopesheet
MovieTrackingStats * stats
MovieTrackingTrack * act_track
MovieTrackingStabilization stabilization
MovieTrackingCamera camera
MovieTrackingSettings settings