49static std::optional<std::string> rna_tracking_path(
const PointerRNA * )
54static std::optional<std::string> rna_trackingSettings_path(
const PointerRNA * )
56 return "tracking.settings";
59static void rna_tracking_defaultSettings_patternUpdate(
Main * ,
67 if (settings->default_search_size < settings->default_pattern_size) {
72static void rna_tracking_defaultSettings_searchUpdate(
Main * ,
80 if (settings->default_pattern_size > settings->default_search_size) {
85static std::optional<std::string> rna_trackingTrack_path(
const PointerRNA *
ptr)
127static int rna_tracking_active_object_index_get(
PointerRNA *
ptr)
131 return clip->tracking.objectnr;
134static void rna_tracking_active_object_index_set(
PointerRNA *
ptr,
int value)
138 clip->tracking.objectnr = value;
142static void rna_tracking_active_object_index_range(
148 *max =
max_ii(0, clip->tracking.tot_object - 1);
172 "Track '%s' is not found in the tracking object %s",
174 tracking_object->
name);
187static void rna_tracking_active_plane_track_set(
PointerRNA *
ptr,
202 "Plane track '%s' is not found in the tracking object %s",
204 tracking_object->
name);
216static void rna_tracking_object_active_track_set(
PointerRNA *
ptr,
230 "Track '%s' is not found in the tracking object %s",
232 tracking_object->
name);
244static void rna_tracking_object_active_plane_track_set(
PointerRNA *
ptr,
258 "Plane track '%s' is not found in the tracking object %s",
260 tracking_object->
name);
264static void rna_trackingTrack_name_set(
PointerRNA *
ptr,
const char *value)
271 char old_name[
sizeof(track->
name)];
278 if (adt !=
nullptr) {
279 char rna_path_prefix[
MAX_NAME * 2 + 64];
281 &clip->tracking, track, rna_path_prefix,
sizeof(rna_path_prefix));
283 &clip->id, adt,
nullptr, rna_path_prefix, old_name, track->
name, 0, 0, 1);
294static void rna_trackingTrack_select_set(
PointerRNA *
ptr,
bool value)
304 track->
flag &= ~SELECT;
310static void rna_trackingPlaneMarker_frame_set(
PointerRNA *
ptr,
int value)
319 if (plane_marker >= plane_track->
markers &&
322 plane_track_of_marker = plane_track;
327 if (plane_track_of_marker) {
332 if (plane_track_of_marker) {
334 new_plane_marker.
framenr = value;
341static std::optional<std::string> rna_trackingPlaneTrack_path(
const PointerRNA *
ptr)
348 &clip->tracking, plane_track, rna_path,
sizeof(rna_path));
352static void rna_trackingPlaneTrack_name_set(
PointerRNA *
ptr,
const char *value)
359 char old_name[
sizeof(plane_track->
name)];
366 if (adt !=
nullptr) {
369 &clip->tracking, plane_track, rna_path,
sizeof(rna_path));
371 &clip->id, adt,
nullptr, rna_path, old_name, plane_track->
name, 0, 0, 1);
375static std::optional<std::string> rna_trackingCamera_path(
const PointerRNA * )
377 return "tracking.camera";
384 float val = camera->
focal;
386 if (clip->lastsize[0]) {
387 val = val * camera->sensor_width /
float(clip->lastsize[0]);
393static void rna_trackingCamera_focal_mm_set(
PointerRNA *
ptr,
float value)
398 if (clip->lastsize[0]) {
399 value = clip->lastsize[0] * value / camera->
sensor_width;
402 if (value >= 0.0001f) {
403 camera->focal = value;
407static void rna_trackingCamera_principal_point_pixels_get(
PointerRNA *
ptr,
408 float *r_principal_point_pixels)
414static void rna_trackingCamera_principal_point_pixels_set(
PointerRNA *
ptr,
415 const float *principal_point_pixels)
421static std::optional<std::string> rna_trackingStabilization_path(
const PointerRNA * )
423 return "tracking.stabilization";
455static int rna_tracking_stabTracks_active_index_get(
PointerRNA *
ptr)
458 return clip->tracking.stabilization.act_track;
461static void rna_tracking_stabTracks_active_index_set(
PointerRNA *
ptr,
int value)
464 clip->tracking.stabilization.act_track = value;
467static void rna_tracking_stabTracks_active_index_range(
473 *max =
max_ii(0, clip->tracking.stabilization.tot_track - 1);
481 iter, &tracking_camera_object->
tracks, rna_track_2d_stabilization_rotation);
484static int rna_tracking_stabRotTracks_active_index_get(
PointerRNA *
ptr)
487 return clip->tracking.stabilization.act_rot_track;
490static void rna_tracking_stabRotTracks_active_index_set(
PointerRNA *
ptr,
int value)
493 clip->tracking.stabilization.act_rot_track = value;
496static void rna_tracking_stabRotTracks_active_index_range(
502 *max =
max_ii(0, clip->tracking.stabilization.tot_rot_track - 1);
522 if (tracking->camera.intrinsics) {
524 tracking->camera.intrinsics =
nullptr;
552 BLI_findlink(&clip->tracking.objects, clip->tracking.objectnr));
563 const int index =
BLI_findindex(&clip->tracking.objects, tracking_object);
566 clip->tracking.objectnr = index;
569 clip->tracking.objectnr = 0;
573static void rna_trackingObject_name_set(
PointerRNA *
ptr,
const char *value)
591static void rna_trackingMarker_frame_set(
PointerRNA *
ptr,
int value)
601 track_of_marker = track;
606 if (track_of_marker) {
611 if (track_of_marker) {
634static void rna_tracking_markerPattern_boundbox_get(
PointerRNA *
ptr,
float *values)
637 float min[2], max[2];
645static std::optional<std::string> rna_trackingDopesheet_path(
const PointerRNA * )
647 return "tracking.dopesheet";
673 if (name && name[0]) {
689 clip, tracking, &tracking_camera_object->
tracks, name, frame);
703 clip, &clip->tracking, &tracking_object->
tracks, name, frame);
716 return tracking_object;
719static void rna_trackingObject_remove(
MovieTracking *tracking,
752 memset(&marker, 0,
sizeof(marker));
798 memset(&plane_marker, 0,
sizeof(plane_marker));
799 plane_marker.
framenr = framenr;
811 return new_plane_marker;
831 return tracking_object;
847static void rna_trackingCameras_matrix_from_frame(
ID *
id,
859 memcpy(matrix, mat,
sizeof(
float[4][4]));
869 "Search for markers that are perspectively deformed (homography) between frames"},
874 "Search for markers that are affine-deformed (t, r, k, and skew) between frames"},
878 "Location, Rotation & Scale",
879 "Search for markers that are translated, rotated, and scaled between frames"},
884 "Search for markers that are translated and scaled between frames"},
888 "Location & Rotation",
889 "Search for markers that are translated and rotated between frames"},
894 "Search for markers that are translated between frames"},
895 {0,
nullptr, 0,
nullptr,
nullptr},
904 "Track pattern from current frame to next frame"},
905 {0,
nullptr, 0,
nullptr,
nullptr},
914 {0,
"FASTEST", 0,
"Fastest",
"Track as fast as possible"},
919 {0,
nullptr, 0,
nullptr,
nullptr},
929 "Delete unclean segments of tracks"},
930 {0,
nullptr, 0,
nullptr,
nullptr},
943 "Limit speed of tracking to make visual feedback easier "
944 "(this does not affect the tracking quality)");
952 "Keyframe Selection",
953 "Automatically select keyframes when solving camera/object motion");
961 prop,
"Refine Focal Length",
"Refine focal length during camera solving");
967 prop,
"Refine Principal Point",
"Refine principal point during camera solving");
975 "Refine radial coefficients of distortion model during camera solving");
985 "Refine tangential coefficients of distortion model during camera solving");
995 prop,
"Distance",
"Distance between two bundles used for scene scaling");
1005 "Effect on tracks which are tracked less than the specified amount of frames");
1013 prop,
"Reprojection Error",
"Effect on tracks which have a larger re-projection error");
1029 "Use special solver to track a stable camera position, such as a tripod");
1037 prop,
"Frames Limit",
"Every tracking cycle, this number of frames are tracked");
1045 prop,
"Pattern Match",
"Track pattern from given frame when tracking marker to next frame");
1053 prop,
"Margin",
"Default distance from image boundary at which marker stops tracking");
1066 prop,
"Prepass",
"Use a brute-force translation-only initialization when tracking");
1076 "Use a grease pencil data-block as a mask to use only specified areas of pattern "
1085 prop,
"Normalize",
"Normalize light intensities while tracking (slower)");
1097 "Default minimum value of correlation between matched pattern and reference "
1098 "that is still treated as successful tracking");
1126 prop,
"Use Green Channel",
"Use green channel from footage for tracking");
1146 prop,
"Distance",
"Distance between two bundles used for object scaling");
1162 "Radial distortion model which fits common cameras"},
1167 "Division distortion model which "
1168 "better represents wide-angle cameras"},
1171 {0,
nullptr, 0,
nullptr,
nullptr},
1175 {
CAMERA_UNITS_PX,
"PIXELS", 0,
"px",
"Use pixels for units of focal length"},
1176 {
CAMERA_UNITS_MM,
"MILLIMETERS", 0,
"mm",
"Use millimeters for units of focal length"},
1177 {0,
nullptr, 0,
nullptr,
nullptr},
1183 srna,
"Movie tracking camera data",
"Match-moving camera data for tracking");
1207 prop,
"rna_trackingCamera_focal_mm_get",
"rna_trackingCamera_focal_mm_set",
nullptr);
1242 "rna_trackingCamera_principal_point_pixels_get",
1243 "rna_trackingCamera_principal_point_pixels_set",
1254 prop,
"K1",
"First coefficient of third order polynomial radial distortion");
1262 prop,
"K2",
"Second coefficient of third order polynomial radial distortion");
1270 prop,
"K3",
"Third coefficient of third order polynomial radial distortion");
1304 prop,
"K1",
"First coefficient of fourth order Brown-Conrady radial distortion");
1311 prop,
"K2",
"Second coefficient of fourth order Brown-Conrady radial distortion");
1318 prop,
"K3",
"Third coefficient of fourth order Brown-Conrady radial distortion");
1325 prop,
"K4",
"Fourth coefficient of fourth order Brown-Conrady radial distortion");
1332 prop,
"P1",
"First coefficient of second order Brown-Conrady tangential distortion");
1339 prop,
"P2",
"Second coefficient of second order Brown-Conrady tangential distortion");
1358 static int boundbox_dimsize[] = {2, 2};
1362 srna,
"Movie tracking marker data",
"Match-moving marker data for tracking");
1393 "Array of coordinates which represents pattern's corners in "
1394 "normalized coordinates relative to marker position");
1402 prop,
"Pattern Bounding Box",
"Pattern area bounding box in normalized coordinates");
1412 "Left-bottom corner of search area in normalized coordinates relative "
1413 "to marker position");
1423 "Right-bottom corner of search area in normalized coordinates relative "
1424 "to marker position");
1432 prop,
"Keyframed",
"Whether the position of the marker is keyframed or tracked");
1445 srna,
"Movie Tracking Markers",
"Collection of markers for movie tracking track");
1447 func =
RNA_def_function(srna,
"find_frame",
"rna_trackingMarkers_find_frame");
1455 "Frame number to find marker for",
1463 "Get marker at exact frame number rather than get estimated marker");
1464 parm =
RNA_def_pointer(func,
"marker",
"MovieTrackingMarker",
"",
"Marker for specified frame");
1467 func =
RNA_def_function(srna,
"insert_frame",
"rna_trackingMarkers_insert_frame");
1475 "Frame number to insert marker to",
1487 "Place new marker at the given frame using specified in normalized space coordinates",
1491 parm =
RNA_def_pointer(func,
"marker",
"MovieTrackingMarker",
"",
"Newly created marker");
1494 func =
RNA_def_function(srna,
"delete_frame",
"rna_trackingMarkers_delete_frame");
1502 "Frame number to delete marker from",
1518 srna,
"Movie tracking track data",
"Match-moving track data for tracking");
1536 prop,
"Frames Limit",
"Every tracking cycle, this number of frames are tracked");
1545 prop,
"Pattern Match",
"Track pattern from given frame when tracking marker to next frame");
1554 prop,
"Margin",
"Distance from image boundary at which marker stops tracking");
1571 "Minimal value of correlation between matched pattern and reference "
1572 "that is still treated as successful tracking");
1579 prop,
"Prepass",
"Use a brute-force translation only pre-track before refinement");
1588 "Use a grease pencil data-block as a mask to use only specified areas of pattern "
1598 prop,
"Normalize",
"Normalize light intensities while tracking (Slower)");
1622 prop,
"Use Green Channel",
"Use green channel from footage for tracking");
1637 prop,
"Grayscale",
"Display what the tracking algorithm sees in the preview");
1671 prop,
"rna_trackingTrack_select_get",
"rna_trackingTrack_select_set");
1714 "Color of the track in the Movie Clip Editor and the 3D viewport after a solve");
1728 prop,
nullptr,
nullptr,
nullptr,
"rna_GPencil_datablocks_annotations_poll");
1759 srna =
RNA_def_struct(brna,
"MovieTrackingPlaneMarker",
nullptr);
1761 srna,
"Movie Tracking Plane Marker Data",
"Match-moving plane marker data for tracking");
1778 "Array of coordinates which represents UI rectangle corners in "
1779 "frame normalized coordinates");
1796 srna =
RNA_def_struct(brna,
"MovieTrackingPlaneMarkers",
nullptr);
1799 "Movie Tracking Plane Markers",
1800 "Collection of markers for movie tracking plane track");
1802 func =
RNA_def_function(srna,
"find_frame",
"rna_trackingPlaneMarkers_find_frame");
1810 "Frame number to find marker for",
1818 "Get plane marker at exact frame number rather than get estimated marker");
1820 func,
"plane_marker",
"MovieTrackingPlaneMarker",
"",
"Plane marker for specified frame");
1823 func =
RNA_def_function(srna,
"insert_frame",
"rna_trackingPlaneMarkers_insert_frame");
1831 "Frame number to insert marker to",
1836 func,
"plane_marker",
"MovieTrackingPlaneMarker",
"",
"Newly created plane marker");
1839 func =
RNA_def_function(srna,
"delete_frame",
"rna_trackingPlaneMarkers_delete_frame");
1847 "Frame number to delete plane marker from",
1863 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");
2218 prop,
"Reconstructed",
"Is tracking data contains valid reconstruction information");
2248 RNA_def_string(func,
"name",
nullptr, 0,
"",
"Name of new track");
2255 "Frame number to add track on",
2258 parm =
RNA_def_pointer(func,
"track",
"MovieTrackingTrack",
"",
"Newly created track");
2265 prop,
"rna_tracking_active_track_get",
"rna_tracking_active_track_set",
nullptr,
nullptr);
2269 "Active track in this tracking data object. "
2270 "Deprecated, use objects[name].tracks.active");
2280 srna =
RNA_def_struct(brna,
"MovieTrackingPlaneTracks",
nullptr);
2290 "rna_tracking_active_plane_track_get",
2291 "rna_tracking_active_plane_track_set",
2296 "Active Plane Track",
2297 "Active plane track in this tracking data object. "
2298 "Deprecated, use objects[name].plane_tracks.active");
2309 srna =
RNA_def_struct(brna,
"MovieTrackingObjectTracks",
nullptr);
2316 RNA_def_string(func,
"name",
nullptr, 0,
"",
"Name of new track");
2323 "Frame number to add tracks on",
2326 parm =
RNA_def_pointer(func,
"track",
"MovieTrackingTrack",
"",
"Newly created track");
2333 "rna_tracking_object_active_track_get",
2334 "rna_tracking_object_active_track_set",
2348 srna =
RNA_def_struct(brna,
"MovieTrackingObjectPlaneTracks",
nullptr);
2356 "rna_tracking_object_active_plane_track_get",
2357 "rna_tracking_object_active_plane_track_set",
2373 srna,
"Movie tracking object data",
"Match-moving object tracking and reconstruction data");
2393 "rna_trackingObject_tracks_begin",
2394 "rna_iterator_listbase_next",
2395 "rna_iterator_listbase_end",
2396 "rna_iterator_listbase_get",
2408 "rna_trackingObject_plane_tracks_begin",
2409 "rna_iterator_listbase_next",
2410 "rna_iterator_listbase_end",
2411 "rna_iterator_listbase_get",
2418 prop,
"Plane Tracks",
"Collection of plane tracks in this tracking data object");
2425 prop,
"rna_trackingObject_reconstruction_get",
nullptr,
nullptr,
nullptr);
2442 prop,
"Keyframe A",
"First keyframe used for reconstruction initialization");
2450 prop,
"Keyframe B",
"Second keyframe used for reconstruction initialization");
2469 parm =
RNA_def_string(func,
"name",
nullptr, 0,
"",
"Name of new object");
2471 parm =
RNA_def_pointer(func,
"object",
"MovieTrackingObject",
"",
"New motion tracking object");
2478 func,
"object",
"MovieTrackingObject",
"",
"Motion tracking object to be removed");
2486 prop,
"rna_tracking_active_object_get",
"rna_tracking_active_object_set",
nullptr,
nullptr);
2502 "Sort channels by longest tracked segment"},
2507 "Sort channels by overall amount of tracked segments"},
2512 "Sort channels by average reprojection error of tracks after solve"},
2515 {0,
nullptr, 0,
nullptr,
nullptr},
2527 prop,
"Dopesheet Sort Field",
"Method to be used to sort channels in dopesheet view");
2534 prop,
"Invert Dopesheet Sort",
"Invert sort order of dopesheet channels");
2541 prop,
"Only Show Selected",
"Only include channels relating to selected objects and data");
2549 prop,
"Display Hidden",
"Include channels from objects/bone that are not visible");
2588 "rna_trackingTracks_begin",
2589 "rna_iterator_listbase_next",
2590 "rna_iterator_listbase_end",
2591 "rna_iterator_listbase_get",
2599 "Collection of tracks in this tracking data object. "
2600 "Deprecated, use objects[name].tracks");
2606 "rna_trackingPlaneTracks_begin",
2607 "rna_iterator_listbase_next",
2608 "rna_iterator_listbase_end",
2609 "rna_iterator_listbase_get",
2617 "Collection of plane tracks in this tracking data object. "
2618 "Deprecated, use objects[name].plane_tracks");
2629 prop,
"rna_trackingReconstruction_get",
nullptr,
nullptr,
nullptr);
2635 "rna_trackingObjects_begin",
2636 "rna_iterator_listbase_next",
2637 "rna_iterator_listbase_end",
2638 "rna_iterator_listbase_get",
2652 "rna_tracking_active_object_index_get",
2653 "rna_tracking_active_object_index_set",
2654 "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(Main *bmain, NodeTreeUpdateExtraParams *params)
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])
#define LISTBASE_FOREACH(type, var, list)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE int max_ii(int a, int b)
MINLINE void copy_v2_v2(float r[2], const float a[2])
#define STRNCPY(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_FILTER_BICUBIC
@ TRACKING_FILTER_NEAREST
@ TRACKING_FILTER_BILINEAR
@ TRACKING_DOPE_SORT_START
@ TRACKING_DOPE_SORT_AVERAGE_ERROR
@ TRACKING_DOPE_SORT_LONGEST
@ TRACKING_DOPE_SORT_NAME
@ TRACKING_DOPE_SORT_TOTAL
@ TRACKING_SPEED_REALTIME
@ TRACKING_CLEAN_DELETE_SEGMENT
@ TRACKING_CLEAN_DELETE_TRACK
@ 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
@ TRACK_PREVIEW_GRAYSCALE
@ TRACK_ALGORITHM_FLAG_USE_NORMALIZATION
@ TRACK_ALGORITHM_FLAG_USE_BRUTE
@ TRACK_ALGORITHM_FLAG_USE_MASK
@ 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_SELECTED_ONLY
@ TRACKING_DOPE_SORT_INVERSE
@ TRACKING_DOPE_SHOW_HIDDEN
@ TRACK_MATCH_PREVIOUS_FRAME
@ REFINE_TANGENTIAL_DISTORTION
@ REFINE_RADIAL_DISTORTION
@ TRACKING_USE_KEYFRAME_SELECTION
Read Guarded memory(de)allocation.
#define RNA_POINTER_INVALIDATE(ptr)
#define RNA_TRANSLATION_PREC_DEFAULT
draw_view in_light_buf[] float
const vector< Marker > & markers
const ProjectiveReconstruction & reconstruction
void rna_iterator_listbase_begin(CollectionPropertyIterator *iter, ListBase *lb, IteratorSkipFunc skip)
PointerRNA rna_pointer_inherit_refine(const PointerRNA *ptr, StructRNA *type, void *data)
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_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
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)
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
void WM_main_add_notifier(uint type, void *reference)