Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2011-11-15 16:20:58 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2011-11-15 16:20:58 +0400
commit3d724d8df55d56731e49e73c4fead32deef661e3 (patch)
tree87bb31c4cab28fdf06d18412b7d44dcccb05414d /source
parent355710f414195c1f956a3c98057f6fa7d6a1ab57 (diff)
Camera tracking: made some options more easy to understand
- Changed some names so now people who aren't really familiar with motion tracking can understand what they exactly means - Also cleaned up and rephraded some descriptions - Changed behavior of operator which creates empty for 2d tracks: now it operates on all selected tracks rather than active track only - Added checkbox to enable/disable rotation stabilization
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/tracking.c5
-rw-r--r--source/blender/editors/space_clip/clip_buttons.c31
-rw-r--r--source/blender/editors/space_clip/clip_ops.c2
-rw-r--r--source/blender/editors/space_clip/tracking_ops.c8
-rw-r--r--source/blender/makesdna/DNA_tracking_types.h1
-rw-r--r--source/blender/makesrna/intern/rna_movieclip.c16
-rw-r--r--source/blender/makesrna/intern/rna_space.c10
-rw-r--r--source/blender/makesrna/intern/rna_tracking.c72
8 files changed, 106 insertions, 39 deletions
diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c
index d582ad7c4d8..59fdf403f0f 100644
--- a/source/blender/blenkernel/intern/tracking.c
+++ b/source/blender/blenkernel/intern/tracking.c
@@ -1874,7 +1874,7 @@ static void calculate_stabdata(MovieTracking *tracking, int framenr, float width
mul_v2_fl(loc, stab->locinf);
- if(stab->rot_track && stab->rotinf) {
+ if((stab->flag&TRACKING_STABILIZE_ROTATION) && stab->rot_track && stab->rotinf) {
MovieTrackingMarker *marker;
float a[2], b[2];
float x0= (float)width/2.0f, y0= (float)height/2.0f;
@@ -1916,7 +1916,8 @@ static float stabilization_auto_scale_factor(MovieTracking *tracking, int width,
track= tracking->tracks.first;
while(track) {
- if(track->flag&TRACK_USE_2D_STAB || track==stab->rot_track) {
+ if(track->flag&TRACK_USE_2D_STAB ||
+ ((stab->flag&TRACKING_STABILIZE_ROTATION) && track==stab->rot_track)) {
if(track->markersnr) {
sfra= MIN2(sfra, track->markers[0].framenr);
efra= MAX2(efra, track->markers[track->markersnr-1].framenr);
diff --git a/source/blender/editors/space_clip/clip_buttons.c b/source/blender/editors/space_clip/clip_buttons.c
index 149aa9106b0..43eb45b17a7 100644
--- a/source/blender/editors/space_clip/clip_buttons.c
+++ b/source/blender/editors/space_clip/clip_buttons.c
@@ -320,6 +320,7 @@ void uiTemplateMarker(uiLayout *layout, PointerRNA *ptr, const char *propname, P
MovieTrackingTrack *track;
MovieTrackingMarker *marker;
MarkerUpdateCb *cb;
+ const char *tip;
if(!ptr->data)
return;
@@ -353,7 +354,12 @@ void uiTemplateMarker(uiLayout *layout, PointerRNA *ptr, const char *propname, P
if(compact) {
block= uiLayoutGetBlock(layout);
- bt= uiDefIconButBitI(block, TOGN, MARKER_DISABLED, 0, ICON_RESTRICT_VIEW_OFF, 0, 0, 20, 20, &cb->marker_flag, 0, 0, 1, 0, "Marker is disabled for current frame.");
+ if(cb->marker_flag&MARKER_DISABLED)
+ tip= "Marker is disabled at current frame";
+ else
+ tip= "Marker is enabled at current frame";
+
+ bt= uiDefIconButBitI(block, TOGN, MARKER_DISABLED, 0, ICON_RESTRICT_VIEW_OFF, 0, 0, 20, 20, &cb->marker_flag, 0, 0, 1, 0, tip);
uiButSetNFunc(bt, marker_update_cb, cb, NULL);
} else {
int width, height, step, digits;
@@ -394,8 +400,13 @@ void uiTemplateMarker(uiLayout *layout, PointerRNA *ptr, const char *propname, P
uiBlockSetHandleFunc(block, marker_block_handler, cb);
uiBlockSetNFunc(block, marker_update_cb, cb, NULL);
+ if(cb->marker_flag&MARKER_DISABLED)
+ tip= "Marker is disabled at current frame";
+ else
+ tip= "Marker is enabled at current frame";
+
uiDefButBitI(block, OPTIONN, MARKER_DISABLED, B_MARKER_FLAG, "Enabled", 10, 190, 145, 19, &cb->marker_flag,
- 0, 0, 0, 0, "Marker is disabled for current frame.");
+ 0, 0, 0, 0, tip);
col= uiLayoutColumn(layout, 1);
uiLayoutSetActive(col, (cb->marker_flag&MARKER_DISABLED)==0);
@@ -405,21 +416,21 @@ void uiTemplateMarker(uiLayout *layout, PointerRNA *ptr, const char *propname, P
uiDefBut(block, LABEL, 0, "Position:", 0, 190, 300, 19, NULL, 0, 0, 0, 0, "");
uiDefButF(block, NUM, B_MARKER_POS, "X:", 10, 171, 145, 19, &cb->marker_pos[0],
- -10*width, 10.0*width, step, digits, "X-position of marker at frame in screen coordinates.");
+ -10*width, 10.0*width, step, digits, "X-position of marker at frame in screen coordinates");
uiDefButF(block, NUM, B_MARKER_POS, "Y:", 165, 171, 145, 19, &cb->marker_pos[1],
- -10*height, 10.0*height, step, digits, "Y-position of marker at frame in screen coordinates.");
+ -10*height, 10.0*height, step, digits, "Y-position of marker at frame in screen coordinates");
uiDefBut(block, LABEL, 0, "Offset:", 0, 152, 300, 19, NULL, 0, 0, 0, 0, "");
uiDefButF(block, NUM, B_MARKER_OFFSET, "X:", 10, 133, 145, 19, &cb->track_offset[0],
- -10*width, 10.0*width, step, digits, "X-offset to parenting point.");
+ -10*width, 10.0*width, step, digits, "X-offset to parenting point");
uiDefButF(block, NUM, B_MARKER_OFFSET, "Y:", 165, 133, 145, 19, &cb->track_offset[1],
- -10*height, 10.0*height, step, digits, "Y-offset to parenting point.");
+ -10*height, 10.0*height, step, digits, "Y-offset to parenting point");
uiDefBut(block, LABEL, 0, "Pattern Area:", 0, 114, 300, 19, NULL, 0, 0, 0, 0, "");
uiDefButF(block, NUM, B_MARKER_PAT_DIM, "Width:", 10, 95, 300, 19, &cb->track_pat[0], 3.0f,
- 10.0*width, step, digits, "Width of marker's pattern in screen soordinates.");
+ 10.0*width, step, digits, "Width of marker's pattern in screen coordinates");
uiDefButF(block, NUM, B_MARKER_PAT_DIM, "Height:", 10, 76, 300, 19, &cb->track_pat[1], 3.0f,
- 10.0*height, step, digits, "Height of marker's pattern in screen soordinates.");
+ 10.0*height, step, digits, "Height of marker's pattern in screen coordinates");
uiDefBut(block, LABEL, 0, "Search Area:", 0, 57, 300, 19, NULL, 0, 0, 0, 0, "");
uiDefButF(block, NUM, B_MARKER_SEARCH_POS, "X:", 10, 38, 145, 19, &cb->track_search_pos[0],
@@ -427,9 +438,9 @@ void uiTemplateMarker(uiLayout *layout, PointerRNA *ptr, const char *propname, P
uiDefButF(block, NUM, B_MARKER_SEARCH_POS, "Y:", 165, 38, 145, 19, &cb->track_search_pos[1],
-height, height, step, digits, "X-position of search at frame relative to marker's position");
uiDefButF(block, NUM, B_MARKER_SEARCH_DIM, "Width:", 10, 19, 300, 19, &cb->track_search[0], 3.0f,
- 10.0*width, step, digits, "Width of marker's search in screen soordinates.");
+ 10.0*width, step, digits, "Width of marker's search in screen soordinates");
uiDefButF(block, NUM, B_MARKER_SEARCH_DIM, "Height:", 10, 0, 300, 19, &cb->track_search[1], 3.0f,
- 10.0*height, step, digits, "Height of marker's search in screen soordinates.");
+ 10.0*height, step, digits, "Height of marker's search in screen soordinates");
uiBlockEndAlign(block);
}
diff --git a/source/blender/editors/space_clip/clip_ops.c b/source/blender/editors/space_clip/clip_ops.c
index d713303ca8b..c4a858797e5 100644
--- a/source/blender/editors/space_clip/clip_ops.c
+++ b/source/blender/editors/space_clip/clip_ops.c
@@ -929,7 +929,7 @@ void CLIP_OT_rebuild_proxy(wmOperatorType *ot)
/* identifiers */
ot->name= "Rebuild Proxy and Timecode Indices";
ot->idname= "CLIP_OT_rebuild_proxy";
- ot->description="Rebuild all selected proxies and timecode indeces using the job system";
+ ot->description= "Rebuild all selected proxies and timecode indeces in the background";
/* api callbacks */
ot->exec= sequencer_rebuild_proxy_exec;
diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c
index 1b08a9aee4c..1dd5611c4b7 100644
--- a/source/blender/editors/space_clip/tracking_ops.c
+++ b/source/blender/editors/space_clip/tracking_ops.c
@@ -1653,7 +1653,7 @@ void CLIP_OT_clear_track_path(wmOperatorType *ot)
/* identifiers */
ot->name= "Clear Track Path";
- ot->description= "Clear path of selected tracks";
+ ot->description= "Clear tracks after/before current position or cleat the whole track";
ot->idname= "CLIP_OT_clear_track_path";
/* api callbacks */
@@ -2119,7 +2119,7 @@ void CLIP_OT_set_center_principal(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Set Principal to Center";
- ot->description= "Set principal point to center of footage";
+ ot->description= "Set optical center to center of footage";
ot->idname= "CLIP_OT_set_center_principal";
/* api callbacks */
@@ -2285,7 +2285,7 @@ void CLIP_OT_detect_features(wmOperatorType *ot)
/* identifiers */
ot->name= "Detect Features";
- ot->description= "Automatically detect features to track";
+ ot->description= "Automatically detect features and place markers to track";
ot->idname= "CLIP_OT_detect_features";
/* api callbacks */
@@ -2910,7 +2910,7 @@ void CLIP_OT_clean_tracks(wmOperatorType *ot)
/* identifiers */
ot->name= "Clean Tracks";
- ot->description= "Clean tracks";
+ ot->description= "Clean tracks with low trackness or high error";
ot->idname= "CLIP_OT_clean_tracks";
/* api callbacks */
diff --git a/source/blender/makesdna/DNA_tracking_types.h b/source/blender/makesdna/DNA_tracking_types.h
index e1aff048626..cbac3721ac3 100644
--- a/source/blender/makesdna/DNA_tracking_types.h
+++ b/source/blender/makesdna/DNA_tracking_types.h
@@ -217,6 +217,7 @@ enum {
/* MovieTrackingStrabilization->flag */
#define TRACKING_2D_STABILIZATION (1<<0)
#define TRACKING_AUTOSCALE (1<<1)
+#define TRACKING_STABILIZE_ROTATION (1<<2)
/* MovieTrackingReconstruction->flag */
#define TRACKING_RECONSTRUCTED (1<<0)
diff --git a/source/blender/makesrna/intern/rna_movieclip.c b/source/blender/makesrna/intern/rna_movieclip.c
index 91e082cdeae..acb70e9fde2 100644
--- a/source/blender/makesrna/intern/rna_movieclip.c
+++ b/source/blender/makesrna/intern/rna_movieclip.c
@@ -87,19 +87,19 @@ static void rna_def_movieclip_proxy(BlenderRNA *brna)
/* build proxy sized */
prop= RNA_def_property(srna, "build_25", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "build_size_flag", IMB_PROXY_25);
- RNA_def_property_ui_text(prop, "25%", "Build 25% proxy resolution");
+ RNA_def_property_ui_text(prop, "25%", "Build proxy resolution 25% of the original footage dimension");
prop= RNA_def_property(srna, "build_50", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "build_size_flag", IMB_PROXY_50);
- RNA_def_property_ui_text(prop, "50%", "Build 50% proxy resolution");
+ RNA_def_property_ui_text(prop, "50%", "Build proxy resolution 50% of the original footage dimension");
prop= RNA_def_property(srna, "build_75", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "build_size_flag", IMB_PROXY_75);
- RNA_def_property_ui_text(prop, "75%", "Build 75% proxy resolution");
+ RNA_def_property_ui_text(prop, "75%", "Build proxy resolution 75% of the original footage dimension");
prop= RNA_def_property(srna, "build_100", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "build_size_flag", IMB_PROXY_100);
- RNA_def_property_ui_text(prop, "100%", "Build 100% proxy resolution");
+ RNA_def_property_ui_text(prop, "100%", "Build proxy resolution 100% of the original footage dimension");
prop= RNA_def_property(srna, "build_undistorted", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "build_flag", MCLIP_PROXY_BUILD_UNDISTORT);
@@ -121,7 +121,7 @@ static void rna_def_movieclip_proxy(BlenderRNA *brna)
/* quality of proxied image */
prop= RNA_def_property(srna, "quality", PROP_INT, PROP_UNSIGNED);
RNA_def_property_int_sdna(prop, NULL, "quality");
- RNA_def_property_ui_text(prop, "Quality", "JPEG Quality of proxies to build");
+ RNA_def_property_ui_text(prop, "Quality", "JPEG of proxy images");
RNA_def_property_ui_range(prop, 1, 100, 1, 0);
prop= RNA_def_property(srna, "timecode", PROP_ENUM, PROP_NONE);
@@ -169,7 +169,7 @@ static void rna_def_moviecliUser(BlenderRNA *brna)
/* render undistorted */
prop= RNA_def_property(srna, "use_render_undistorted", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "render_flag", MCLIP_PROXY_RENDER_UNDISTORT);
- RNA_def_property_ui_text(prop, "Render Undistorted", "Draw preview using undistorted proxy");
+ RNA_def_property_ui_text(prop, "Render Undistorted", "Render preview using undistorted proxy");
RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, NULL);
}
@@ -198,7 +198,7 @@ static void rna_def_movieclip(BlenderRNA *brna)
prop= RNA_def_property(srna, "filepath", PROP_STRING, PROP_FILEPATH);
RNA_def_property_string_sdna(prop, NULL, "name");
- RNA_def_property_ui_text(prop, "File Path", "Filename of the text file");
+ RNA_def_property_ui_text(prop, "File Path", "Filename of the movie or sequence file");
RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, "rna_MovieClip_reload_update");
prop= RNA_def_property(srna, "tracking", PROP_POINTER, PROP_NONE);
@@ -234,7 +234,7 @@ static void rna_def_movieclip(BlenderRNA *brna)
/* custom proxy directory */
prop= RNA_def_property(srna, "use_proxy_custom_directory", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", MCLIP_USE_PROXY_CUSTOM_DIR);
- RNA_def_property_ui_text(prop, "Proxy Custom Directory", "Use a custom directory to store data");
+ RNA_def_property_ui_text(prop, "Proxy Custom Directory", "Create proxy images in a custom directory (default is movie location)");
RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, "rna_MovieClip_reload_update");
/* grease pencil */
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index d2505fc9775..8fb232332d5 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -1593,12 +1593,12 @@ static void rna_def_space_view3d(BlenderRNA *brna)
prop= RNA_def_property(srna, "show_camera_path", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_SHOW_CAMERAPATH);
- RNA_def_property_ui_text(prop, "Show Camera Path", "Show reconstructed path of camera");
+ RNA_def_property_ui_text(prop, "Show Camera Path", "Show reconstructed camera path");
RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
prop= RNA_def_property(srna, "show_tracks_name", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_SHOW_BUNDLENAME);
- RNA_def_property_ui_text(prop, "Show Tracks Name", "Show names for tracks objects");
+ RNA_def_property_ui_text(prop, "Show Track Names", "Show names for tracks objects");
RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
/* region */
@@ -2893,7 +2893,7 @@ static void rna_def_space_clip(BlenderRNA *brna)
/* show tiny markers */
prop= RNA_def_property(srna, "show_tiny_markers", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_ui_text(prop, "Show Tiny Markers", "Show markers tiny");
+ RNA_def_property_ui_text(prop, "Show Tiny Markers", "Show markers in a more compact manner");
RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_TINY_MARKER);
RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
@@ -2960,13 +2960,13 @@ static void rna_def_space_clip(BlenderRNA *brna)
/* show graph_frames */
prop= RNA_def_property(srna, "show_graph_frames", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_GRAPH_FRAMES);
- RNA_def_property_ui_text(prop, "Show Frames", "Show curves for frames in graph editor");
+ RNA_def_property_ui_text(prop, "Show Frames", "Show curve for per-frame average error (camera motion should be solved first)");
RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
/* show graph_tracks */
prop= RNA_def_property(srna, "show_graph_tracks", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", SC_SHOW_GRAPH_TRACKS);
- RNA_def_property_ui_text(prop, "Show Tracks", "Show curves for tracks in graph editor");
+ RNA_def_property_ui_text(prop, "Show Tracks", "Display the speed curves (in \"x\" direction red, in \"y\" direction green) for the selected tracks");
RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CLIP, NULL);
}
diff --git a/source/blender/makesrna/intern/rna_tracking.c b/source/blender/makesrna/intern/rna_tracking.c
index 4de39811d0b..368359925c4 100644
--- a/source/blender/makesrna/intern/rna_tracking.c
+++ b/source/blender/makesrna/intern/rna_tracking.c
@@ -39,6 +39,7 @@
#include "rna_internal.h"
#include "DNA_movieclip_types.h"
+#include "DNA_object_types.h" /* SELECT */
#include "DNA_scene_types.h"
#include "WM_types.h"
@@ -94,6 +95,29 @@ void rna_trackingTrack_name_set(PointerRNA *ptr, const char *value)
BKE_track_unique_name(&clip->tracking, track);
}
+static int rna_trackingTrack_select_get(PointerRNA *ptr)
+{
+ MovieTrackingTrack *track= (MovieTrackingTrack *)ptr->data;
+
+ return TRACK_SELECTED(track);
+}
+
+static void rna_trackingTrack_select_set(PointerRNA *ptr, int value)
+{
+ MovieTrackingTrack *track= (MovieTrackingTrack *)ptr->data;
+
+ if(value) {
+ track->flag|= SELECT;
+ track->pat_flag|= SELECT;
+ track->search_flag|= SELECT;
+ }
+ else {
+ track->flag&= ~SELECT;
+ track->pat_flag&= ~SELECT;
+ track->search_flag&= ~SELECT;
+ }
+}
+
static void rna_tracking_trackerPattern_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
{
MovieTrackingTrack *track= (MovieTrackingTrack *)ptr->data;
@@ -253,14 +277,14 @@ static void rna_def_trackingSettings(BlenderRNA *brna)
prop= RNA_def_property(srna, "speed", PROP_ENUM, PROP_NONE);
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_enum_items(prop, speed_items);
- RNA_def_property_ui_text(prop, "Speed", "Speed to make tracking with");
+ RNA_def_property_ui_text(prop, "Speed", "Limit speed of tracking to make visual feedback easier (this does not affect the tracking quality)");
/* limit frames */
prop= RNA_def_property(srna, "frames_limit", PROP_INT, PROP_NONE);
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_int_sdna(prop, NULL, "frames_limit");
RNA_def_property_range(prop, 0, SHRT_MAX);
- RNA_def_property_ui_text(prop, "Frames Limit", "Amount of frames to be tracked during single tracking operation");
+ RNA_def_property_ui_text(prop, "Frames Limit", "Every tracking cycle, this amount of frames are tracked");
/* adjust frames */
prop= RNA_def_property(srna, "frames_adjust", PROP_INT, PROP_NONE);
@@ -274,7 +298,7 @@ static void rna_def_trackingSettings(BlenderRNA *brna)
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_int_sdna(prop, NULL, "margin");
RNA_def_property_range(prop, 0, 300);
- RNA_def_property_ui_text(prop, "Margin", "Margin for markers from image boundary");
+ RNA_def_property_ui_text(prop, "Margin", "Distance from image boudary at which marker stops tracking");
/* keyframe_a */
prop= RNA_def_property(srna, "keyframe_a", PROP_INT, PROP_NONE);
@@ -398,7 +422,7 @@ static void rna_def_trackingCamera(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "pixel_aspect");
RNA_def_property_range(prop, 0.1f, 5000.0f);
RNA_def_property_ui_range(prop, 0.1f, 5000.0f, 1, 2);
- RNA_def_property_ui_text(prop, "Pixel Aspect", "Pixel aspect ratio");
+ RNA_def_property_ui_text(prop, "Pixel Aspect Ratio", "Pixel aspect ratio");
RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, "rna_tracking_flushUpdate");
}
@@ -441,8 +465,8 @@ static void rna_def_trackingTrack(BlenderRNA *brna)
PropertyRNA *parm;
static EnumPropertyItem tracker_items[] = {
- {TRACKER_SAD, "SAD", 0, "SAD", "Sum of Absolute Differences tracker"},
- {TRACKER_KLT, "KLT", 0, "KLT", "Kanade–Lucas–Tomasi tracker"},
+ {TRACKER_KLT, "KLT", 0, "KLT", "Kanade–Lucas–Tomasi tracker which works with most of video clips, a bit slower than SAD"},
+ {TRACKER_SAD, "SAD", 0, "SAD", "Sum of Absolute Differences tracker which can be used when MLT tracker fails"},
{0, NULL, 0, NULL, NULL}};
rna_def_trackingMarker(brna);
@@ -501,7 +525,7 @@ static void rna_def_trackingTrack(BlenderRNA *brna)
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_int_sdna(prop, NULL, "pyramid_levels");
RNA_def_property_range(prop, 1, 16);
- RNA_def_property_ui_text(prop, "Pyramid levels", "Number of pyramid levels for KLT tracking");
+ RNA_def_property_ui_text(prop, "Pyramid levels", "Number of pyramid levels (increase on blurry footage)");
RNA_def_property_update(prop, NC_MOVIECLIP|NA_EDITED, "rna_tracking_trackerPyramid_update");
/* minmal correlation - only used for SAD tracker */
@@ -557,6 +581,30 @@ static void rna_def_trackingTrack(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Hide", "Track is hidden");
RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, NULL);
+ /* select */
+ prop= RNA_def_property(srna, "select", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_funcs(prop, "rna_trackingTrack_select_get", "rna_trackingTrack_select_set");
+ RNA_def_property_ui_text(prop, "Select", "Track is selected");
+ RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, NULL);
+
+ /* select_anchor */
+ prop= RNA_def_property(srna, "select_anchor", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", SELECT);
+ RNA_def_property_ui_text(prop, "Select Anchor", "Track's anchor point is selected");
+ RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, NULL);
+
+ /* select_pattern */
+ prop= RNA_def_property(srna, "select_pattern", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "pat_flag", SELECT);
+ RNA_def_property_ui_text(prop, "Select Pattern", "Track's pattern area is selected");
+ RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, NULL);
+
+ /* select_search */
+ prop= RNA_def_property(srna, "select_search", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "search_flag", SELECT);
+ RNA_def_property_ui_text(prop, "Select Search", "Track's search area is selected");
+ RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, NULL);
+
/* locked */
prop= RNA_def_property(srna, "lock", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", TRACK_LOCKED);
@@ -573,7 +621,7 @@ static void rna_def_trackingTrack(BlenderRNA *brna)
prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR);
RNA_def_property_array(prop, 3);
RNA_def_property_range(prop, 0.0f, 1.0f);
- RNA_def_property_ui_text(prop, "Color", "Color of the track in the Clip Editor");
+ RNA_def_property_ui_text(prop, "Color", "Color of the track in the Movie Track Editor and the 3D viewport after a solve");
RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, NULL);
/* average error */
@@ -636,7 +684,7 @@ static void rna_def_trackingStabilization(BlenderRNA *brna)
prop= RNA_def_property(srna, "scale_max", PROP_FLOAT, PROP_FACTOR);
RNA_def_property_float_sdna(prop, NULL, "maxscale");
RNA_def_property_range(prop, 0.0f, 10.0f);
- RNA_def_property_ui_text(prop, "Miximal Scale", "Maximal value for scale factor");
+ RNA_def_property_ui_text(prop, "Maximal Scale", "Limits the amount of automatic scaling");
RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, "rna_tracking_flushUpdate");
/* influence_location */
@@ -653,6 +701,12 @@ static void rna_def_trackingStabilization(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Scale Influence", "Influence of stabilization algorithm on footage scale");
RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, "rna_tracking_flushUpdate");
+ /* use_stabilize_rotation */
+ prop= RNA_def_property(srna, "use_stabilize_rotation", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", TRACKING_STABILIZE_ROTATION);
+ RNA_def_property_ui_text(prop, "Stabilize Rotation", "Stabilize horizon line on the shot");
+ RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, "rna_tracking_flushUpdate");
+
/* influence_rotation */
prop= RNA_def_property(srna, "influence_rotation", PROP_FLOAT, PROP_FACTOR);
RNA_def_property_float_sdna(prop, NULL, "rotinf");