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);
                        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to