[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38305] branches/soc-2011-tomato/source/ blender: Camera tracking integration

Sergey Sharybin g.ulairi at gmail.com
Mon Jul 11 14:38:44 CEST 2011


Revision: 38305
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38305
Author:   nazgul
Date:     2011-07-11 12:38:44 +0000 (Mon, 11 Jul 2011)
Log Message:
-----------
Camera tracking integration
===========================

- Minor spelling fixes.
- Do not draw bundles for hidden tracks in SpaceClip.
- Pressing SHift when sliding marker with mouse makes movenment more accurate.
- New default values for maerker pattern/search areas.
  This makes tracking more stable.
- Pyramid level increased to 4. This would make tracking
  of blured imaged more accurate.

Modified Paths:
--------------
    branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2011-07-11 11:17:39 UTC (rev 38304)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2011-07-11 12:38:44 UTC (rev 38305)
@@ -377,7 +377,7 @@
 	MovieTrackingTrack *track;
 
 #ifdef WITH_LIBMV
-	context->region_tracker= libmv_regionTrackerNew(100, 3, 0.2);
+	context->region_tracker= libmv_regionTrackerNew(100, 4, 0.2);
 #endif
 
 	context->settings= *settings;

Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c	2011-07-11 11:17:39 UTC (rev 38304)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c	2011-07-11 12:38:44 UTC (rev 38305)
@@ -574,7 +574,7 @@
 
 		track= tracking->tracks.first;
 		while(track) {
-			if(track->flag&TRACK_HAS_BUNDLE) {
+			if((track->flag&TRACK_HIDDEN)==0 && track->flag&TRACK_HAS_BUNDLE) {
 				marker= BKE_tracking_get_marker(track, framenr);
 
 				copy_v4_v4(vec, track->bundle_pos);

Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c	2011-07-11 11:17:39 UTC (rev 38304)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c	2011-07-11 12:38:44 UTC (rev 38305)
@@ -127,7 +127,7 @@
 	MovieTrackingTrack *track;
 	MovieTrackingMarker marker;
 	int width, height;
-	float pat[2]= {15.0f, 15.0f}, search[2]= {30.0f, 30.0f}; /* TODO: move to default setting? */
+	float pat[2]= {5.5f, 5.5f}, search[2]= {80.5f, 80.5f}; /* TODO: move to default setting? */
 
 	ED_space_clip_size(sc, &width, &height);
 
@@ -328,7 +328,7 @@
 
 /********************** mouse select operator *********************/
 
-static int mouse_on_size(float co[2], float x1, float y1, float x2, float y2, float epsx, float epsy)
+static int mouse_on_side(float co[2], float x1, float y1, float x2, float y2, float epsx, float epsy)
 {
 	if(x1>x2) SWAP(float, x1, x2);
 	if(y1>y2) SWAP(float, y1, y2);
@@ -338,10 +338,10 @@
 
 static int mouse_on_rect(float co[2], float pos[2], float min[2], float max[2], float epsx, float epsy)
 {
-	return mouse_on_size(co, pos[0]+min[0], pos[1]+min[1], pos[0]+max[0], pos[1]+min[1], epsx, epsy) ||
-	       mouse_on_size(co, pos[0]+min[0], pos[1]+min[1], pos[0]+min[0], pos[1]+max[1], epsx, epsy) ||
-	       mouse_on_size(co, pos[0]+min[0], pos[1]+max[1], pos[0]+max[0], pos[1]+max[1], epsx, epsy) ||
-	       mouse_on_size(co, pos[0]+max[0], pos[1]+min[1], pos[0]+max[0], pos[1]+max[1], epsx, epsy);
+	return mouse_on_side(co, pos[0]+min[0], pos[1]+min[1], pos[0]+max[0], pos[1]+min[1], epsx, epsy) ||
+	       mouse_on_side(co, pos[0]+min[0], pos[1]+min[1], pos[0]+min[0], pos[1]+max[1], epsx, epsy) ||
+	       mouse_on_side(co, pos[0]+min[0], pos[1]+max[1], pos[0]+max[0], pos[1]+max[1], epsx, epsy) ||
+	       mouse_on_side(co, pos[0]+max[0], pos[1]+min[1], pos[0]+max[0], pos[1]+max[1], epsx, epsy);
 }
 
 static int track_mouse_area(SpaceClip *sc, float co[2], MovieTrackingTrack *track)
@@ -1251,7 +1251,7 @@
 	float *min, *max, *pos;
 	float smin[2], smax[2], spos[2];
 
-	int keep_square;
+	int keep_square, accurate;
 } SlideMarkerData;
 
 static SlideMarkerData *create_slide_marker_data(MovieTrackingTrack *track, MovieTrackingMarker *marker, wmEvent *event, int area, int width, int height)
@@ -1374,9 +1374,15 @@
 	switch(event->type) {
 		case LEFTCTRLKEY:
 		case RIGHTCTRLKEY:
+		case LEFTSHIFTKEY:
+		case RIGHTSHIFTKEY:
 			if(data->area != TRACK_AREA_POINT)
-				data->keep_square= event->val==KM_PRESS;
+				if(ELEM(event->type, LEFTCTRLKEY, RIGHTCTRLKEY))
+					data->keep_square= event->val==KM_PRESS;
 
+			if(ELEM(event->type, LEFTSHIFTKEY, RIGHTSHIFTKEY))
+				data->accurate= event->val==KM_PRESS;
+
 			/* no break! update area size */
 
 		case MOUSEMOVE:
@@ -1386,6 +1392,11 @@
 			dx= mdelta[0]/data->width/sc->zoom;
 			dy= mdelta[1]/data->height/sc->zoom;
 
+			if(data->accurate) {
+				dx/= 5;
+				dy/= 5;
+			}
+
 			if(data->area == TRACK_AREA_POINT) {
 				data->pos[0]= data->spos[0]+dx;
 				data->pos[1]= data->spos[1]+dy;




More information about the Bf-blender-cvs mailing list