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

Sergey Sharybin g.ulairi at gmail.com
Sat Jul 9 22:38:42 CEST 2011


Revision: 38274
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38274
Author:   nazgul
Date:     2011-07-09 20:38:41 +0000 (Sat, 09 Jul 2011)
Log Message:
-----------
Camera tracking integration
===========================

- Added option to keep area equal width and height
  when sliding it by mouse. Use "Control" button for this.
- Do now show sliding zones for disabled markers.

Modified Paths:
--------------
    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/editors/space_clip/clip_draw.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c	2011-07-09 19:59:32 UTC (rev 38273)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c	2011-07-09 20:38:41 UTC (rev 38274)
@@ -383,7 +383,7 @@
 	float x, y, dx, dy, tdx, tdy;
 	int tiny= sc->flag&SC_SHOW_TINY_MARKER;
 
-	if(!TRACK_SELECTED(track) || (tiny && outline))
+	if(!TRACK_SELECTED(track) || (tiny && outline) || (marker->flag&MARKER_DISABLED))
 		return;
 
 	if(outline) {

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-09 19:59:32 UTC (rev 38273)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c	2011-07-09 20:38:41 UTC (rev 38274)
@@ -1250,6 +1250,8 @@
 	int width, height;
 	float *min, *max, *pos;
 	float smin[2], smax[2], spos[2];
+
+	int keep_square;
 } SlideMarkerData;
 
 static SlideMarkerData *create_slide_marker_data(MovieTrackingTrack *track, MovieTrackingMarker *marker, wmEvent *event, int area, int width, int height)
@@ -1364,13 +1366,23 @@
 {
 	SpaceClip *sc= CTX_wm_space_clip(C);
 	SlideMarkerData *data= (SlideMarkerData *)op->customdata;
-	float dx, dy;
+	float dx, dy, mdelta[2];
 
 	switch(event->type) {
+		case LEFTCTRLKEY:
+		case RIGHTCTRLKEY:
+			if(data->area != TRACK_AREA_POINT)
+				data->keep_square= event->val==KM_PRESS;
+
+			/* no break! update area size */
+
 		case MOUSEMOVE:
-			dx= ((float)(event->mval[0]-data->mval[0]))/data->width/sc->zoom;
-			dy= ((float)(event->mval[1]-data->mval[1]))/data->height/sc->zoom;
+			mdelta[0]= event->mval[0]-data->mval[0];
+			mdelta[1]= event->mval[1]-data->mval[1];
 
+			dx= mdelta[0]/data->width/sc->zoom;
+			dy= mdelta[1]/data->height/sc->zoom;
+
 			if(data->area == TRACK_AREA_POINT) {
 				data->pos[0]= data->spos[0]+dx;
 				data->pos[1]= data->spos[1]+dy;
@@ -1381,6 +1393,14 @@
 				data->min[1]= data->smin[1]+dy;
 				data->max[1]= data->smax[1]-dy;
 
+				if(data->keep_square) {
+					float h= (data->max[0]-data->min[0])*data->width/data->height;
+
+					data->min[1]= data->spos[1]-h/2;
+					data->max[1]= data->spos[1]+h/2;
+				}
+
+
 				if(data->area==TRACK_AREA_SEARCH) BKE_tracking_clamp_track(data->track, CLAMP_SEARCH_DIM);
 				else BKE_tracking_clamp_track(data->track, CLAMP_PAT_DIM);
 			}




More information about the Bf-blender-cvs mailing list