[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47618] trunk/blender/source/blender: Added sorting by average reprojection error to motion tracking dopesheet.

Sergey Sharybin sergey.vfx at gmail.com
Fri Jun 8 18:42:33 CEST 2012


Revision: 47618
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47618
Author:   nazgul
Date:     2012-06-08 16:42:24 +0000 (Fri, 08 Jun 2012)
Log Message:
-----------
Added sorting by average reprojection error to motion tracking dopesheet.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_tracking.h
    trunk/blender/source/blender/blenkernel/intern/tracking.c
    trunk/blender/source/blender/makesdna/DNA_space_types.h
    trunk/blender/source/blender/makesrna/intern/rna_space.c

Modified: trunk/blender/source/blender/blenkernel/BKE_tracking.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_tracking.h	2012-06-08 16:26:46 UTC (rev 47617)
+++ trunk/blender/source/blender/blenkernel/BKE_tracking.h	2012-06-08 16:42:24 UTC (rev 47618)
@@ -202,5 +202,6 @@
 #define TRACK_SORT_NAME		0
 #define TRACK_SORT_LONGEST	1
 #define TRACK_SORT_TOTAL	2
+#define TRACK_SORT_AVERAGE_ERROR	3
 
 #endif

Modified: trunk/blender/source/blender/blenkernel/intern/tracking.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/tracking.c	2012-06-08 16:26:46 UTC (rev 47617)
+++ trunk/blender/source/blender/blenkernel/intern/tracking.c	2012-06-08 16:42:24 UTC (rev 47618)
@@ -3115,6 +3115,17 @@
 		return 0;
 }
 
+static int channels_average_error_sort(void *a, void *b)
+{
+	MovieTrackingDopesheetChannel *channel_a = a;
+	MovieTrackingDopesheetChannel *channel_b = b;
+
+	if (channel_a->track->error > channel_b->track->error)
+		return 1;
+	else
+		return 0;
+}
+
 static int channels_alpha_inverse_sort(void *a, void *b)
 {
 	if (channels_alpha_sort(a, b))
@@ -3139,6 +3150,17 @@
 		return 1;
 }
 
+static int channels_average_error_inverse_sort(void *a, void *b)
+{
+	MovieTrackingDopesheetChannel *channel_a = a;
+	MovieTrackingDopesheetChannel *channel_b = b;
+
+	if (channel_a->track->error < channel_b->track->error)
+		return 1;
+	else
+		return 0;
+}
+
 static void channels_segments_calc(MovieTrackingDopesheetChannel *channel)
 {
 	MovieTrackingTrack *track = channel->track;
@@ -3234,6 +3256,9 @@
 		else if (sort_method == TRACK_SORT_TOTAL) {
 			BLI_sortlist(&dopesheet->channels, channels_total_track_inverse_sort);
 		}
+		else if (sort_method == TRACK_SORT_AVERAGE_ERROR) {
+			BLI_sortlist(&dopesheet->channels, channels_average_error_inverse_sort);
+		}
 	}
 	else {
 		if (sort_method == TRACK_SORT_NAME) {
@@ -3245,6 +3270,9 @@
 		else if (sort_method == TRACK_SORT_TOTAL) {
 			BLI_sortlist(&dopesheet->channels, channels_total_track_sort);
 		}
+		else if (sort_method == TRACK_SORT_AVERAGE_ERROR) {
+			BLI_sortlist(&dopesheet->channels, channels_average_error_sort);
+		}
 	}
 
 	dopesheet->sort_method = sort_method;

Modified: trunk/blender/source/blender/makesdna/DNA_space_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_space_types.h	2012-06-08 16:26:46 UTC (rev 47617)
+++ trunk/blender/source/blender/makesdna/DNA_space_types.h	2012-06-08 16:42:24 UTC (rev 47618)
@@ -1060,6 +1060,7 @@
 	SC_DOPE_SORT_NAME = 0,
 	SC_DOPE_SORT_LONGEST,
 	SC_DOPE_SORT_TOTAL,
+	SC_DOPE_SORT_AVERAGE_ERROR,
 } eSpaceClip_Dopesheet_Sort;
 
 /* SpaceClip->dope_flag */

Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_space.c	2012-06-08 16:26:46 UTC (rev 47617)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c	2012-06-08 16:42:24 UTC (rev 47618)
@@ -2999,6 +2999,7 @@
 		{SC_DOPE_SORT_NAME, "NAME", 0, "Name", "Sort channels by their names"},
 		{SC_DOPE_SORT_LONGEST, "LONGEST", 0, "Longest", "Sort channels by longest tracked segment"},
 		{SC_DOPE_SORT_TOTAL, "TOTAL", 0, "Total", "Sort channels by overall amount of tracked segments"},
+		{SC_DOPE_SORT_AVERAGE_ERROR, "AVERAGE_ERROR", 0, "Average Error", "Sort channels by average reprojection error of tracks after solve"},
 		{0, NULL, 0, NULL, NULL}
 	};
 




More information about the Bf-blender-cvs mailing list