[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