Blender V5.0
DNA_tracking_types.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
10
11#pragma once
12
13#include "DNA_defs.h"
14#include "DNA_listBase.h"
15
16/* match-moving data */
17
18struct Image;
20struct MovieTracking;
24struct bGPdata;
25
31
32typedef struct MovieTrackingCamera {
35
37 char _pad[2];
38
44 float focal;
46 short units;
47 char _pad1[2];
48
58
61
62 /* Polynomial distortion */
64 float k1, k2, k3;
65
66 /* Division distortion model coefficients */
68
69 /* Nuke distortion model coefficients */
71
72 /* Brown-Conrady distortion model coefficients */
78
79typedef struct MovieTrackingMarker {
81 float pos[2];
82
83 /* corners of pattern in the following order:
84 *
85 * Y
86 * ^
87 * | (3) --- (2)
88 * | | |
89 * | | |
90 * | | |
91 * | (0) --- (1)
92 * +-------------> X
93 *
94 * the coordinates are stored relative to pos.
95 */
96 float pattern_corners[4][2];
97
98 /* positions of left-bottom and right-top corners of search area (in unified 0..1 units,
99 * relative to marker->pos
100 */
101 float search_min[2], search_max[2];
102
106 int flag;
108
109typedef struct MovieTrackingTrack {
111
112 char name[/*MAX_NAME*/ 64];
113
114 /* ** settings ** */
115
116 /* positions of left-bottom and right-top corners of pattern (in unified 0..1 units,
117 * relative to marker->pos)
118 * moved to marker's corners since planar tracking implementation
119 */
121
122 /* positions of left-bottom and right-top corners of search area (in unified 0..1 units,
123 * relative to marker->pos
124 * moved to marker since affine tracking implementation
125 */
127
129 float offset[2];
130
131 /* ** track ** */
135 int _pad;
138
139 /* ** reconstruction data ** */
141 float bundle_pos[3];
143 float error;
144
145 /* ** UI editing ** */
149 float color[3];
150
151 /* ** control how tracking happens */
158 short margin;
162
163 /* tracking parameters */
170
172 struct bGPdata *gpd;
173
174 /* Weight of this track.
175 *
176 * Weight defines how much the track affects on the final reconstruction,
177 * usually gets animated in a way so when track has just appeared its
178 * weight is zero and then it gets faded up.
179 *
180 * Used to prevent jumps of the camera when tracks are appearing or
181 * disappearing.
182 */
183 float weight;
184
185 /* track weight especially for 2D stabilization */
188
190 /* Corners of the plane in the following order:
191 *
192 * Y
193 * ^
194 * | (3) --- (2)
195 * | | |
196 * | | |
197 * | | |
198 * | (0) --- (1)
199 * +-------------> X
200 *
201 * The coordinates are stored in frame normalized coordinates.
202 */
203 float corners[4][2];
204
208 int flag;
210
242
243typedef struct MovieTrackingSettings {
244 /* ** default tracker settings */
267
270
271 /* ** common tracker settings ** */
273 short speed;
274
275 /* ** reconstruction settings ** */
276 /* two keyframes for reconstruction initialization
277 * were moved to per-tracking object settings
278 */
281
283
284 /* which camera intrinsics to refine. uses on the REFINE_* flags */
286
287 /* ** tool settings ** */
288
289 /* set scale */
291 float dist;
292
293 /* cleanup */
296
297 /* set object scale */
301
332
346
371
375
395
405
408 int ok;
409
413 short flag;
414
415 /* ** runtime stuff ** */
416
417 /* summary */
419
420 /* detailed */
423
424 char _pad[4];
426
459
461enum {
466};
467
469enum {
472};
473
475enum {
476 MARKER_DISABLED = (1 << 0),
477 MARKER_TRACKED = (1 << 1),
481};
482
484enum {
489 TRACK_HIDDEN = (1 << 5),
490 TRACK_LOCKED = (1 << 6),
494 TRACK_DOPE_SEL = (1 << 10),
497};
498
500enum {
507};
508
510enum {
514};
515
521
523enum {
525
527};
528
530enum {
536};
537
539enum {
540 /* TRACKING_USE_FALLBACK_RECONSTRUCTION = (1 << 0), */ /* DEPRECATED */
542};
543
545enum {
547
552};
553
555enum {
561};
562
564enum {
568};
569
571enum {
573};
574
576enum {
578};
579
580enum {
584};
585
587enum {
594};
595
597enum {
601};
602
604enum {
608};
609
611enum {
614};
615
617enum {
621};
These structs are the foundation for all linked lists in the library system.
@ CAMERA_UNITS_MM
@ CAMERA_UNITS_PX
@ TRACKING_DOPE_SELECTED_ONLY
@ TRACKING_DOPE_SORT_INVERSE
@ TRACKING_DOPE_SHOW_HIDDEN
@ TRACKING_CLEAN_DELETE_SEGMENT
@ TRACKING_CLEAN_SELECT
@ TRACKING_CLEAN_DELETE_TRACK
@ REFINE_PRINCIPAL_POINT
@ REFINE_NO_INTRINSICS
@ REFINE_TANGENTIAL_DISTORTION
@ REFINE_RADIAL_DISTORTION
@ REFINE_FOCAL_LENGTH
@ TRACKING_SPEED_DOUBLE
@ TRACKING_SPEED_HALF
@ TRACKING_SPEED_FASTEST
@ TRACKING_SPEED_QUARTER
@ TRACKING_SPEED_REALTIME
@ 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_USE_KEYFRAME_SELECTION
@ 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
@ TRACKING_AUTOSCALE
@ TRACKING_SHOW_STAB_TRACKS
@ TRACKING_STABILIZE_SCALE
@ TRACKING_STABILIZE_ROTATION
@ TRACKING_2D_STABILIZATION
@ TRACKING_MOTION_MODAL
@ TRACKING_MOTION_TRIPOD
@ TRACKING_DISTORTION_MODEL_DIVISION
@ TRACKING_DISTORTION_MODEL_POLYNOMIAL
@ TRACKING_DISTORTION_MODEL_NUKE
@ TRACKING_DISTORTION_MODEL_BROWN
@ TRACKING_FILTER_BICUBIC
@ TRACKING_FILTER_NEAREST
@ TRACKING_FILTER_BILINEAR
@ TRACKING_RECONSTRUCTED
@ MARKER_GRAPH_SEL_X
@ MARKER_GRAPH_SEL_Y
@ MARKER_TRACKED
@ MARKER_DISABLED
@ MARKER_GRAPH_SEL
@ TRACK_ALGORITHM_FLAG_USE_NORMALIZATION
@ TRACK_ALGORITHM_FLAG_USE_BRUTE
@ TRACK_ALGORITHM_FLAG_USE_MASK
@ PLANE_MARKER_DISABLED
@ PLANE_MARKER_TRACKED
@ TRACKING_COVERAGE_BAD
@ TRACKING_COVERAGE_OK
@ TRACKING_COVERAGE_ACCEPTABLE
@ PLANE_TRACK_HIDDEN
@ PLANE_TRACK_LOCKED
@ PLANE_TRACK_AUTOKEY
@ TRACKING_OBJECT_CAMERA
eTrackFrameMatch
@ TRACK_MATCH_PREVIOUS_FRAME
@ TRACK_MATCH_KEYFRAME
struct MovieTrackingDopesheetChannel * prev
struct MovieTrackingDopesheetChannel * next
struct MovieTrackingDopesheetCoverageSegment * prev
struct MovieTrackingDopesheetCoverageSegment * next
struct MovieTrackingObject * prev
MovieTrackingPlaneTrack * active_plane_track
MovieTrackingReconstruction reconstruction
struct MovieTrackingObject * next
MovieTrackingTrack * active_track
struct MovieTrackingPlaneTrack * next
MovieTrackingTrack ** point_tracks
MovieTrackingPlaneMarker * markers
struct MovieTrackingPlaneTrack * prev
struct MovieReconstructedCamera * cameras
MovieTrackingTrack * rot_track_legacy
MovieTrackingMarker * markers
struct MovieTrackingTrack * next
struct MovieTrackingTrack * prev
MovieTrackingDopesheet dopesheet
MovieTrackingStats * stats
MovieTrackingPlaneTrack * act_plane_track_legacy
MovieTrackingReconstruction reconstruction_legacy
MovieTrackingStabilization stabilization
ListBase plane_tracks_legacy
MovieTrackingTrack * act_track_legacy
MovieTrackingCamera camera
MovieTrackingSettings settings