45static std::optional<std::string> rna_tracking_path(
const PointerRNA * )
50static std::optional<std::string> rna_trackingSettings_path(
const PointerRNA * )
52 return "tracking.settings";
55static void rna_tracking_defaultSettings_patternUpdate(
Main * ,
68static void rna_tracking_defaultSettings_searchUpdate(
Main * ,
81static std::optional<std::string> rna_trackingTrack_path(
const PointerRNA *
ptr)
113 *
ptr, &RNA_MovieTrackingReconstruction, &tracking_camera_object->
reconstruction);
123static int rna_tracking_active_object_index_get(
PointerRNA *
ptr)
127 return clip->tracking.objectnr;
130static void rna_tracking_active_object_index_set(
PointerRNA *
ptr,
int value)
134 clip->tracking.objectnr = value;
138static void rna_tracking_active_object_index_range(
144 *
max =
max_ii(0, clip->tracking.tot_object - 1);
169 "Track '%s' is not found in the tracking object %s",
171 tracking_object->
name);
184static void rna_tracking_active_plane_track_set(
PointerRNA *
ptr,
199 "Plane track '%s' is not found in the tracking object %s",
201 tracking_object->
name);
214static void rna_tracking_object_active_track_set(
PointerRNA *
ptr,
228 "Track '%s' is not found in the tracking object %s",
230 tracking_object->
name);
242static void rna_tracking_object_active_plane_track_set(
PointerRNA *
ptr,
256 "Plane track '%s' is not found in the tracking object %s",
258 tracking_object->
name);
262static void rna_trackingTrack_name_set(
PointerRNA *
ptr,
const char *value)
269 char old_name[
sizeof(track->
name)];
276 if (adt !=
nullptr) {
277 char rna_path_prefix[
MAX_NAME * 2 + 64];
279 &clip->tracking, track, rna_path_prefix,
sizeof(rna_path_prefix));
281 &clip->id, adt,
nullptr, rna_path_prefix, old_name, track->
name, 0, 0, 1);
292static void rna_trackingTrack_select_set(
PointerRNA *
ptr,
bool value)
308static void rna_trackingPlaneMarker_frame_set(
PointerRNA *
ptr,
int value)
317 if (plane_marker >= plane_track->
markers &&
318 plane_marker < plane_track->markers + plane_track->
markersnr)
320 plane_track_of_marker = plane_track;
325 if (plane_track_of_marker) {
330 if (plane_track_of_marker) {
332 new_plane_marker.
framenr = value;
339static std::optional<std::string> rna_trackingPlaneTrack_path(
const PointerRNA *
ptr)
346 &clip->tracking, plane_track, rna_path,
sizeof(rna_path));
350static void rna_trackingPlaneTrack_name_set(
PointerRNA *
ptr,
const char *value)
357 char old_name[
sizeof(plane_track->
name)];
364 if (adt !=
nullptr) {
367 &clip->tracking, plane_track, rna_path,
sizeof(rna_path));
369 &clip->id, adt,
nullptr, rna_path, old_name, plane_track->
name, 0, 0, 1);
373static std::optional<std::string> rna_trackingCamera_path(
const PointerRNA * )
375 return "tracking.camera";
382 float val = camera->
focal;
384 if (clip->lastsize[0]) {
391static void rna_trackingCamera_focal_mm_set(
PointerRNA *
ptr,
float value)
396 if (clip->lastsize[0]) {
397 value = clip->lastsize[0] * value / camera->
sensor_width;
400 if (value >= 0.0001f) {
401 camera->
focal = value;
405static void rna_trackingCamera_principal_point_pixels_get(
PointerRNA *
ptr,
406 float *r_principal_point_pixels)
412static void rna_trackingCamera_principal_point_pixels_set(
PointerRNA *
ptr,
413 const float *principal_point_pixels)
419static std::optional<std::string> rna_trackingStabilization_path(
const PointerRNA * )
421 return "tracking.stabilization";
451 iter,
ptr, &tracking_camera_object->
tracks, rna_track_2d_stabilization);
454static int rna_tracking_stabTracks_active_index_get(
PointerRNA *
ptr)
457 return clip->tracking.stabilization.act_track;
460static void rna_tracking_stabTracks_active_index_set(
PointerRNA *
ptr,
int value)
463 clip->tracking.stabilization.act_track = value;
466static void rna_tracking_stabTracks_active_index_range(
472 *
max =
max_ii(0, clip->tracking.stabilization.tot_track - 1);
480 iter,
ptr, &tracking_camera_object->
tracks, rna_track_2d_stabilization_rotation);
483static int rna_tracking_stabRotTracks_active_index_get(
PointerRNA *
ptr)
486 return clip->tracking.stabilization.act_rot_track;
489static void rna_tracking_stabRotTracks_active_index_set(
PointerRNA *
ptr,
int value)
492 clip->tracking.stabilization.act_rot_track = value;
495static void rna_tracking_stabRotTracks_active_index_range(
501 *
max =
max_ii(0, clip->tracking.stabilization.tot_rot_track - 1);
551 BLI_findlink(&clip->tracking.objects, clip->tracking.objectnr));
562 const int index =
BLI_findindex(&clip->tracking.objects, tracking_object);
565 clip->tracking.objectnr = index;
568 clip->tracking.objectnr = 0;
572static void rna_trackingObject_name_set(
PointerRNA *
ptr,
const char *value)
590static void rna_trackingMarker_frame_set(
PointerRNA *
ptr,
int value)
599 if (marker >= track->
markers && marker < track->markers + track->
markersnr) {
600 track_of_marker = track;
605 if (track_of_marker) {
610 if (track_of_marker) {
633static void rna_tracking_markerPattern_boundbox_get(
PointerRNA *
ptr,
float *values)
644static std::optional<std::string> rna_trackingDopesheet_path(
const PointerRNA * )
646 return "tracking.dopesheet";
688 clip, tracking, &tracking_camera_object->
tracks,
name, frame);
715 return tracking_object;
718static void rna_trackingObject_remove(
MovieTracking *tracking,
796 plane_marker.
framenr = framenr;
808 return new_plane_marker;
828 return tracking_object;
840 MovieTrackingObject *tracking_object = find_object_for_reconstruction(tracking, reconstruction);
844static void rna_trackingCameras_matrix_from_frame(
ID *
id,
853 MovieTrackingObject *tracking_object = find_object_for_reconstruction(tracking, reconstruction);
856 memcpy(matrix, mat,
sizeof(
float[4][4]));
866 "Search for markers that are perspectively deformed (homography) between frames"},
871 "Search for markers that are affine-deformed (t, r, k, and skew) between frames"},
875 "Location, Rotation & Scale",
876 "Search for markers that are translated, rotated, and scaled between frames"},
881 "Search for markers that are translated and scaled between frames"},
885 "Location & Rotation",
886 "Search for markers that are translated and rotated between frames"},
891 "Search for markers that are translated between frames"},
892 {0,
nullptr, 0,
nullptr,
nullptr},
901 "Track pattern from current frame to next frame"},
902 {0,
nullptr, 0,
nullptr,
nullptr},
911 {0,
"FASTEST", 0,
"Fastest",
"Track as fast as possible"},
916 {0,
nullptr, 0,
nullptr,
nullptr},
926 "Delete unclean segments of tracks"},
927 {0,
nullptr, 0,
nullptr,
nullptr},
940 "Limit speed of tracking to make visual feedback easier "
941 "(this does not affect the tracking quality)");
949 "Keyframe Selection",
950 "Automatically select keyframes when solving camera/object motion");
958 prop,
"Refine Focal Length",
"Refine focal length during camera solving");
964 prop,
"Refine Principal Point",
"Refine principal point during camera solving");
972 "Refine radial coefficients of distortion model during camera solving");
982 "Refine tangential coefficients of distortion model during camera solving");
992 prop,
"Distance",
"Distance between two bundles used for scene scaling");
1002 "Effect on tracks which are tracked less than the specified amount of frames");
1010 prop,
"Reprojection Error",
"Effect on tracks which have a larger re-projection error");
1026 "Use special solver to track a stable camera position, such as a tripod");
1034 prop,
"Frames Limit",
"Every tracking cycle, this number of frames are tracked");
1042 prop,
"Pattern Match",
"Track pattern from given frame when tracking marker to next frame");
1050 prop,
"Margin",
"Default distance from image boundary at which marker stops tracking");
1063 prop,
"Prepass",
"Use a brute-force translation-only initialization when tracking");
1073 "Use a Grease Pencil data-block as a mask to use only specified areas of pattern "
1082 prop,
"Normalize",
"Normalize light intensities while tracking (slower)");
1094 "Default minimum value of correlation between matched pattern and reference "
1095 "that is still treated as successful tracking");
1123 prop,
"Use Green Channel",
"Use green channel from footage for tracking");
1143 prop,
"Distance",
"Distance between two bundles used for object scaling");
1159 "Radial distortion model which fits common cameras"},
1164 "Division distortion model which "
1165 "better represents wide-angle cameras"},
1168 {0,
nullptr, 0,
nullptr,
nullptr},
1172 {
CAMERA_UNITS_PX,
"PIXELS", 0,
"px",
"Use pixels for units of focal length"},
1173 {
CAMERA_UNITS_MM,
"MILLIMETERS", 0,
"mm",
"Use millimeters for units of focal length"},
1174 {0,
nullptr, 0,
nullptr,
nullptr},
1180 srna,
"Movie tracking camera data",
"Match-moving camera data for tracking");
1204 prop,
"rna_trackingCamera_focal_mm_get",
"rna_trackingCamera_focal_mm_set",
nullptr);
1239 "rna_trackingCamera_principal_point_pixels_get",
1240 "rna_trackingCamera_principal_point_pixels_set",
1251 prop,
"K1",
"First coefficient of third order polynomial radial distortion");
1259 prop,
"K2",
"Second coefficient of third order polynomial radial distortion");
1267 prop,
"K3",
"Third coefficient of third order polynomial radial distortion");
1301 prop,
"K1",
"First coefficient of fourth order Brown-Conrady radial distortion");
1308 prop,
"K2",
"Second coefficient of fourth order Brown-Conrady radial distortion");
1315 prop,
"K3",
"Third coefficient of fourth order Brown-Conrady radial distortion");
1322 prop,
"K4",
"Fourth coefficient of fourth order Brown-Conrady radial distortion");
1329 prop,
"P1",
"First coefficient of second order Brown-Conrady tangential distortion");
1336 prop,
"P2",
"Second coefficient of second order Brown-Conrady tangential distortion");
1355 static int boundbox_dimsize[] = {2, 2};
1359 srna,
"Movie tracking marker data",
"Match-moving marker data for tracking");
1390 "Array of coordinates which represents pattern's corners in "
1391 "normalized coordinates relative to marker position");
1399 prop,
"Pattern Bounding Box",
"Pattern area bounding box in normalized coordinates");
1409 "Left-bottom corner of search area in normalized coordinates relative "
1410 "to marker position");
1420 "Right-bottom corner of search area in normalized coordinates relative "
1421 "to marker position");
1429 prop,
"Keyframed",
"Whether the position of the marker is keyframed or tracked");
1442 srna,
"Movie Tracking Markers",
"Collection of markers for movie tracking track");
1444 func =
RNA_def_function(srna,
"find_frame",
"rna_trackingMarkers_find_frame");
1452 "Frame number to find marker for",
1460 "Get marker at exact frame number rather than get estimated marker");
1461 parm =
RNA_def_pointer(func,
"marker",
"MovieTrackingMarker",
"",
"Marker for specified frame");
1464 func =
RNA_def_function(srna,
"insert_frame",
"rna_trackingMarkers_insert_frame");
1472 "Frame number to insert marker to",
1484 "Place new marker at the given frame using specified in normalized space coordinates",
1488 parm =
RNA_def_pointer(func,
"marker",
"MovieTrackingMarker",
"",
"Newly created marker");
1491 func =
RNA_def_function(srna,
"delete_frame",
"rna_trackingMarkers_delete_frame");
1499 "Frame number to delete marker from",
1515 srna,
"Movie tracking track data",
"Match-moving track data for tracking");
1533 prop,
"Frames Limit",
"Every tracking cycle, this number of frames are tracked");
1542 prop,
"Pattern Match",
"Track pattern from given frame when tracking marker to next frame");
1551 prop,
"Margin",
"Distance from image boundary at which marker stops tracking");
1568 "Minimal value of correlation between matched pattern and reference "
1569 "that is still treated as successful tracking");
1576 prop,
"Prepass",
"Use a brute-force translation only pre-track before refinement");
1585 "Use a Grease Pencil data-block as a mask to use only specified areas of pattern "
1595 prop,
"Normalize",
"Normalize light intensities while tracking (slower)");
1620 prop,
"Use Green Channel",
"Use green channel from footage for tracking");
1635 prop,
"Grayscale",
"Display what the tracking algorithm sees in the preview");
1670 prop,
"rna_trackingTrack_select_get",
"rna_trackingTrack_select_set");
1713 "Color of the track in the Movie Clip Editor and the 3D viewport after a solve");
1727 prop,
nullptr,
nullptr,
nullptr,
"rna_GPencil_datablocks_annotations_poll");
1758 srna =
RNA_def_struct(brna,
"MovieTrackingPlaneMarker",
nullptr);
1760 srna,
"Movie Tracking Plane Marker Data",
"Match-moving plane marker data for tracking");
1777 "Array of coordinates which represents UI rectangle corners in "
1778 "frame normalized coordinates");
1795 srna =
RNA_def_struct(brna,
"MovieTrackingPlaneMarkers",
nullptr);
1798 "Movie Tracking Plane Markers",
1799 "Collection of markers for movie tracking plane track");
1801 func =
RNA_def_function(srna,
"find_frame",
"rna_trackingPlaneMarkers_find_frame");
1809 "Frame number to find marker for",
1817 "Get plane marker at exact frame number rather than get estimated marker");
1819 func,
"plane_marker",
"MovieTrackingPlaneMarker",
"",
"Plane marker for specified frame");
1822 func =
RNA_def_function(srna,
"insert_frame",
"rna_trackingPlaneMarkers_insert_frame");
1830 "Frame number to insert marker to",
1835 func,
"plane_marker",
"MovieTrackingPlaneMarker",
"",
"Newly created plane marker");
1838 func =
RNA_def_function(srna,
"delete_frame",
"rna_trackingPlaneMarkers_delete_frame");
1846 "Frame number to delete plane marker from",
1862 srna,
"Movie tracking plane track data",
"Match-moving plane track data for tracking");
1892 prop,
"Auto Keyframe",
"Automatic keyframe insertion when moving plane corners");
1900 prop,
"Image",
"Image displayed in the track during editing in clip editor");
1921 "No interpolation, use nearest neighbor pixel"},
1926 "Simple interpolation between adjacent pixels"},
1928 {0,
nullptr, 0,
nullptr,
nullptr},
1931 srna =
RNA_def_struct(brna,
"MovieTrackingStabilization",
nullptr);
1934 srna,
"Movie tracking stabilization data",
"2D stabilization based on tracking markers");
1948 prop,
"Stabilize Rotation",
"Stabilize detected rotation around center of frame");
1956 prop,
"Stabilize Scale",
"Compensate any scale changes relative to center of rotation");
1962 "rna_tracking_stabTracks_begin",
1963 "rna_iterator_listbase_next",
1964 "rna_iterator_listbase_end",
1965 "rna_iterator_listbase_get",
1972 prop,
"Translation Tracks",
"Collection of tracks used for 2D stabilization (translation)");
1980 "rna_tracking_stabTracks_active_index_get",
1981 "rna_tracking_stabTracks_active_index_set",
1982 "rna_tracking_stabTracks_active_index_range");
1984 "Active Track Index",
1985 "Index of active track in translation stabilization tracks list");
1990 "rna_tracking_stabRotTracks_begin",
1991 "rna_iterator_listbase_next",
1992 "rna_iterator_listbase_end",
1993 "rna_iterator_listbase_get",
2000 prop,
"Rotation Tracks",
"Collection of tracks used for 2D stabilization (translation)");
2008 "rna_tracking_stabRotTracks_active_index_get",
2009 "rna_tracking_stabRotTracks_active_index_set",
2010 "rna_tracking_stabRotTracks_active_index_range");
2012 "Active Rotation Track Index",
2013 "Index of active track in rotation stabilization tracks list");
2022 "Reference point to anchor stabilization "
2023 "(other frames will be adjusted relative to this frame's position)");
2033 "Expected Position",
2034 "Known relative offset of original shot, will be subtracted "
2035 "(e.g. for panning shot, can be animated)");
2045 "Expected Rotation",
2046 "Rotation present on original shot, will be compensated (e.g. for deliberate tilting)");
2054 prop, 0.01f, 10.0f, 0.001f, 3);
2057 "Explicitly scale resulting frame to compensate zoom of original shot");
2065 prop,
"Autoscale",
"Automatically scale footage to cover unfilled areas when stabilizing");
2080 prop,
"Location Influence",
"Influence of stabilization algorithm on footage location");
2088 prop,
"Scale Influence",
"Influence of stabilization algorithm on footage scale");
2096 prop,
"Rotation Influence",
"Influence of stabilization algorithm on footage rotation");
2106 "Interpolation to use for sub-pixel shifts and rotations due to stabilization");
2114 prop,
"Show Tracks",
"Show UI list of tracks participating in stabilization");
2123 srna =
RNA_def_struct(brna,
"MovieReconstructedCamera",
nullptr);
2125 "Movie tracking reconstructed camera data",
2126 "Match-moving reconstructed camera data from tracker");
2154 srna =
RNA_def_struct(brna,
"MovieTrackingReconstructedCameras",
nullptr);
2158 func =
RNA_def_function(srna,
"find_frame",
"rna_trackingCameras_find_frame");
2167 "Frame number to find camera for",
2171 func,
"camera",
"MovieReconstructedCamera",
"",
"Camera for a given frame");
2174 func =
RNA_def_function(srna,
"matrix_from_frame",
"rna_trackingCameras_matrix_from_frame");
2183 "Frame number to find camera for",
2194 "Interpolated camera matrix for a given frame",
2209 srna =
RNA_def_struct(brna,
"MovieTrackingReconstruction",
nullptr);
2211 srna,
"Movie tracking reconstruction data",
"Match-moving reconstruction data from tracker");
2219 "Whether the tracking data contains valid reconstruction information");
2249 RNA_def_string(func,
"name",
nullptr, 0,
"",
"Name of new track");
2256 "Frame number to add track on",
2259 parm =
RNA_def_pointer(func,
"track",
"MovieTrackingTrack",
"",
"Newly created track");
2266 prop,
"rna_tracking_active_track_get",
"rna_tracking_active_track_set",
nullptr,
nullptr);
2270 "Active track in this tracking data object. "
2271 "Deprecated, use objects[name].tracks.active");
2281 srna =
RNA_def_struct(brna,
"MovieTrackingPlaneTracks",
nullptr);
2291 "rna_tracking_active_plane_track_get",
2292 "rna_tracking_active_plane_track_set",
2297 "Active Plane Track",
2298 "Active plane track in this tracking data object. "
2299 "Deprecated, use objects[name].plane_tracks.active");
2310 srna =
RNA_def_struct(brna,
"MovieTrackingObjectTracks",
nullptr);
2317 RNA_def_string(func,
"name",
nullptr, 0,
"",
"Name of new track");
2324 "Frame number to add tracks on",
2327 parm =
RNA_def_pointer(func,
"track",
"MovieTrackingTrack",
"",
"Newly created track");
2334 "rna_tracking_object_active_track_get",
2335 "rna_tracking_object_active_track_set",
2349 srna =
RNA_def_struct(brna,
"MovieTrackingObjectPlaneTracks",
nullptr);
2357 "rna_tracking_object_active_plane_track_get",
2358 "rna_tracking_object_active_plane_track_set",
2374 srna,
"Movie tracking object data",
"Match-moving object tracking and reconstruction data");
2394 "rna_trackingObject_tracks_begin",
2395 "rna_iterator_listbase_next",
2396 "rna_iterator_listbase_end",
2397 "rna_iterator_listbase_get",
2409 "rna_trackingObject_plane_tracks_begin",
2410 "rna_iterator_listbase_next",
2411 "rna_iterator_listbase_end",
2412 "rna_iterator_listbase_get",
2419 prop,
"Plane Tracks",
"Collection of plane tracks in this tracking data object");
2426 prop,
"rna_trackingObject_reconstruction_get",
nullptr,
nullptr,
nullptr);
2443 prop,
"Keyframe A",
"First keyframe used for reconstruction initialization");
2451 prop,
"Keyframe B",
"Second keyframe used for reconstruction initialization");
2470 parm =
RNA_def_string(func,
"name",
nullptr, 0,
"",
"Name of new object");
2472 parm =
RNA_def_pointer(func,
"object",
"MovieTrackingObject",
"",
"New motion tracking object");
2479 func,
"object",
"MovieTrackingObject",
"",
"Motion tracking object to be removed");
2487 prop,
"rna_tracking_active_object_get",
"rna_tracking_active_object_set",
nullptr,
nullptr);
2503 "Sort channels by longest tracked segment"},
2508 "Sort channels by overall amount of tracked segments"},
2513 "Sort channels by average reprojection error of tracks after solve"},
2516 {0,
nullptr, 0,
nullptr,
nullptr},
2528 prop,
"Dopesheet Sort Field",
"Method to be used to sort channels in dopesheet view");
2535 prop,
"Invert Dopesheet Sort",
"Invert sort order of dopesheet channels");
2542 prop,
"Only Show Selected",
"Only include channels relating to selected objects and data");
2550 prop,
"Display Hidden",
"Include channels from objects/bone that are not visible");
2589 "rna_trackingTracks_begin",
2590 "rna_iterator_listbase_next",
2591 "rna_iterator_listbase_end",
2592 "rna_iterator_listbase_get",
2600 "Collection of tracks in this tracking data object. "
2601 "Deprecated, use objects[name].tracks");
2607 "rna_trackingPlaneTracks_begin",
2608 "rna_iterator_listbase_next",
2609 "rna_iterator_listbase_end",
2610 "rna_iterator_listbase_get",
2618 "Collection of plane tracks in this tracking data object. "
2619 "Deprecated, use objects[name].plane_tracks");
2630 prop,
"rna_trackingReconstruction_get",
nullptr,
nullptr,
nullptr);
2636 "rna_trackingObjects_begin",
2637 "rna_iterator_listbase_next",
2638 "rna_iterator_listbase_end",
2639 "rna_iterator_listbase_get",
2653 "rna_tracking_active_object_index_get",
2654 "rna_tracking_active_object_index_set",
2655 "rna_tracking_active_object_index_range");
AnimData * BKE_animdata_from_id(const ID *id)
void BKE_animdata_fix_paths_rename(struct ID *owner_id, struct AnimData *adt, struct ID *ref_id, const char *prefix, const char *oldName, const char *newName, int oldSubscript, int newSubscript, bool verify_paths)
void BKE_movieclip_get_size(struct MovieClip *clip, const struct MovieClipUser *user, int *r_width, int *r_height)
void BKE_ntree_update(Main &bmain, std::optional< blender::Span< bNodeTree * > > modified_trees=std::nullopt, const NodeTreeUpdateExtraParams ¶ms={})
void BKE_ntree_update_tag_id_changed(Main *bmain, ID *id)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
struct MovieTrackingObject * BKE_tracking_object_get_camera(const struct MovieTracking *tracking)
void BKE_tracking_get_rna_path_prefix_for_plane_track(const struct MovieTracking *tracking, const struct MovieTrackingPlaneTrack *plane_track, char *rna_path, size_t rna_path_maxncpy)
struct MovieTrackingPlaneMarker * BKE_tracking_plane_marker_insert(struct MovieTrackingPlaneTrack *plane_track, struct MovieTrackingPlaneMarker *plane_marker)
void BKE_tracking_plane_marker_delete(struct MovieTrackingPlaneTrack *plane_track, int framenr)
struct MovieTrackingPlaneMarker * BKE_tracking_plane_marker_get_exact(struct MovieTrackingPlaneTrack *plane_track, int framenr)
void BKE_tracking_camera_principal_point_pixel_set(struct MovieClip *clip, const float principal_point_pixel[2])
#define TRACK_SELECTED(track)
void BKE_tracking_plane_track_unique_name(struct ListBase *plane_tracks_base, struct MovieTrackingPlaneTrack *plane_track)
void BKE_tracking_track_unique_name(struct ListBase *tracksbase, struct MovieTrackingTrack *track)
void BKE_tracking_get_rna_path_for_track(const struct MovieTracking *tracking, const struct MovieTrackingTrack *track, char *rna_path, size_t rna_path_maxncpy)
struct MovieTrackingMarker * BKE_tracking_marker_get(struct MovieTrackingTrack *track, int framenr)
struct MovieTrackingObject * BKE_tracking_object_get_active(const struct MovieTracking *tracking)
bool BKE_tracking_object_delete(struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object)
void BKE_tracking_dopesheet_tag_update(struct MovieTracking *tracking)
struct MovieTrackingMarker * BKE_tracking_marker_get_exact(struct MovieTrackingTrack *track, int framenr)
struct MovieTrackingTrack * BKE_tracking_track_add(struct MovieTracking *tracking, struct ListBase *tracksbase, float x, float y, int framenr, int width, int height)
struct MovieTrackingObject * BKE_tracking_find_object_for_plane_track(const struct MovieTracking *tracking, const struct MovieTrackingPlaneTrack *plane_track)
void BKE_tracking_camera_principal_point_pixel_get(struct MovieClip *clip, float r_principal_point_pixel[2])
struct MovieTrackingObject * BKE_tracking_object_add(struct MovieTracking *tracking, const char *name)
void BKE_tracking_object_unique_name(struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object)
void BKE_tracking_get_rna_path_for_plane_track(const struct MovieTracking *tracking, const struct MovieTrackingPlaneTrack *plane_track, char *rna_path, size_t rna_path_len)
void BKE_tracking_distortion_free(struct MovieDistortion *distortion)
void BKE_tracking_marker_clamp_search_size(struct MovieTrackingMarker *marker)
void BKE_tracking_get_rna_path_prefix_for_track(const struct MovieTracking *tracking, const struct MovieTrackingTrack *track, char *rna_path, size_t rna_path_maxncpy)
void BKE_tracking_marker_pattern_minmax(const struct MovieTrackingMarker *marker, float min[2], float max[2])
struct MovieTrackingPlaneMarker * BKE_tracking_plane_marker_get(struct MovieTrackingPlaneTrack *plane_track, int framenr)
struct MovieTrackingObject * BKE_tracking_find_object_for_track(const struct MovieTracking *tracking, const struct MovieTrackingTrack *track)
struct MovieTrackingMarker * BKE_tracking_marker_insert(struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker)
struct MovieReconstructedCamera * BKE_tracking_camera_get_reconstructed(struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object, int framenr)
void BKE_tracking_marker_delete(struct MovieTrackingTrack *track, int framenr)
void BKE_tracking_camera_get_reconstructed_interpolate(struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object, float framenr, float mat[4][4])
int BLI_findindex(const ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findlink(const ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
MINLINE int max_ii(int a, int b)
MINLINE void copy_v2_v2(float r[2], const float a[2])
char * STRNCPY(char(&dst)[N], const char *src)
#define STRNCPY_UTF8(dst, src)
#define BLT_I18NCONTEXT_ID_MOVIECLIP
void DEG_id_tag_update(ID *id, unsigned int flags)
#define DNA_struct_default_get(struct_name)
Object is a sort of wrapper for general info.
@ TRACKING_DOPE_SELECTED_ONLY
@ TRACKING_DOPE_SORT_INVERSE
@ TRACKING_DOPE_SHOW_HIDDEN
@ TRACKING_CLEAN_DELETE_SEGMENT
@ TRACKING_CLEAN_DELETE_TRACK
@ REFINE_TANGENTIAL_DISTORTION
@ REFINE_RADIAL_DISTORTION
@ TRACKING_SPEED_REALTIME
@ TRACK_PREVIEW_GRAYSCALE
@ 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_TOTAL
@ TRACKING_SHOW_STAB_TRACKS
@ TRACKING_STABILIZE_SCALE
@ TRACKING_STABILIZE_ROTATION
@ TRACKING_2D_STABILIZATION
@ 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
@ TRACK_ALGORITHM_FLAG_USE_NORMALIZATION
@ TRACK_ALGORITHM_FLAG_USE_BRUTE
@ TRACK_ALGORITHM_FLAG_USE_MASK
@ TRACK_MATCH_PREVIOUS_FRAME
#define RNA_TRANSLATION_PREC_DEFAULT
BMesh const char void * data
void rna_iterator_listbase_begin(CollectionPropertyIterator *iter, PointerRNA *ptr, ListBase *lb, IteratorSkipFunc skip)
PointerRNA RNA_pointer_create_with_parent(const PointerRNA &parent, StructRNA *type, void *data)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_struct_name_property(StructRNA *srna, PropertyRNA *prop)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, const int maxlen, const char *ui_name, const char *ui_description)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
void RNA_def_parameter_clear_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void RNA_def_property_string_funcs(PropertyRNA *prop, const char *get, const char *length, const char *set)
void RNA_def_property_float_default(PropertyRNA *prop, float value)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
const int rna_matrix_dimsize_4x2[]
void RNA_def_property_ui_icon(PropertyRNA *prop, int icon, int consecutive)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
PropertyRNA * RNA_def_float_matrix(StructOrFunctionRNA *cont_, const char *identifier, const int rows, const int columns, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
void RNA_def_property_collection_funcs(PropertyRNA *prop, const char *begin, const char *next, const char *end, const char *get, const char *length, const char *lookupint, const char *lookupstring, const char *assignint)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
PropertyRNA * RNA_def_float_vector(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_property_multi_array(PropertyRNA *prop, int dimension, const int length[])
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_property_string_maxlength(PropertyRNA *prop, int maxlength)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
const int rna_matrix_dimsize_4x4[]
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_function_flag(FunctionRNA *func, int flag)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, const bool default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
void RNA_def_function_output(FunctionRNA *, PropertyRNA *ret)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, const int default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
static const EnumPropertyItem pattern_match_items[]
static void rna_def_trackingTracks(BlenderRNA *brna)
static void rna_def_trackingMarker(BlenderRNA *brna)
static void rna_def_trackingTrack(BlenderRNA *brna)
static void rna_def_tracking(BlenderRNA *brna)
static void rna_def_trackingStabilization(BlenderRNA *brna)
static const EnumPropertyItem tracker_motion_model[]
static void rna_def_trackingPlaneTrack(BlenderRNA *brna)
static void rna_def_trackingSettings(BlenderRNA *brna)
static void rna_def_trackingReconstructedCameras(BlenderRNA *brna)
static void rna_def_trackingPlaneMarkers(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_trackingObjectPlaneTracks(BlenderRNA *brna)
static void rna_def_trackingPlaneTracks(BlenderRNA *brna)
static void rna_def_trackingObjectTracks(BlenderRNA *brna)
static void rna_def_trackingCamera(BlenderRNA *brna)
void RNA_def_tracking(BlenderRNA *brna)
static void rna_def_trackingMarkers(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_trackingObjects(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_trackingPlaneMarker(BlenderRNA *brna)
static void rna_def_reconstructedCamera(BlenderRNA *brna)
static void rna_def_trackingReconstruction(BlenderRNA *brna)
static void rna_def_trackingObject(BlenderRNA *brna)
static void rna_def_trackingDopesheet(BlenderRNA *brna)
struct MovieTracking tracking
float pattern_corners[4][2]
MovieTrackingPlaneTrack * active_plane_track
MovieTrackingReconstruction reconstruction
MovieTrackingTrack * active_track
MovieTrackingPlaneMarker * markers
short default_pattern_size
short default_search_size
MovieTrackingMarker * markers
MovieTrackingCamera camera
MovieTrackingSettings settings
void WM_main_add_notifier(uint type, void *reference)