Revision: 38754
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38754
Author:   nazgul
Date:     2011-07-27 09:48:19 +0000 (Wed, 27 Jul 2011)
Log Message:
-----------
Camera tracking integration
===========================

- glog should no flood into logs files now.
- Request from Francois - changes in sliding:
  * Anchor point is for sliding the whole marker.
  * Square on pattern moves pattern and search relative
    to anchor point.
  * Square on search moves search only.
- Bundles in 3d viewport are colored by track custom color.

Modified Paths:
--------------
    branches/soc-2011-tomato/extern/libmv/libmv-capi.cpp
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_editor.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c
    branches/soc-2011-tomato/source/blender/editors/space_view3d/drawobject.c
    branches/soc-2011-tomato/source/blender/editors/space_view3d/space_view3d.c

Modified: branches/soc-2011-tomato/extern/libmv/libmv-capi.cpp
===================================================================
--- branches/soc-2011-tomato/extern/libmv/libmv-capi.cpp        2011-07-27 
07:42:53 UTC (rev 38753)
+++ branches/soc-2011-tomato/extern/libmv/libmv-capi.cpp        2011-07-27 
09:48:19 UTC (rev 38754)
@@ -70,9 +70,10 @@
 void libmv_initLogging(const char *argv0)
 {
        google::InitGoogleLogging(argv0);
-       google::SetCommandLineOption("logtostderr", "0");
+       google::SetCommandLineOption("logtostderr", "1");
        google::SetCommandLineOption("v", "0");
        google::SetCommandLineOption("stderrthreshold", "7");
+       google::SetCommandLineOption("minloglevel", "7");
        V3D::optimizerVerbosenessLevel = 0;
 }
 
@@ -80,7 +81,8 @@
 {
        google::SetCommandLineOption("logtostderr", "1");
        google::SetCommandLineOption("v", "0");
-       google::SetCommandLineOption("stderrthreshold", "2");
+       google::SetCommandLineOption("stderrthreshold", "1");
+       google::SetCommandLineOption("minloglevel", "0");
        V3D::optimizerVerbosenessLevel = 1;
 }
 

Modified: 
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c   
2011-07-27 07:42:53 UTC (rev 38753)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c   
2011-07-27 09:48:19 UTC (rev 38754)
@@ -45,6 +45,7 @@
 #include "BLI_listbase.h"
 
 #include "BKE_context.h"
+#include "BKE_depsgraph.h"
 #include "BKE_screen.h"
 #include "BKE_movieclip.h"
 #include "BKE_tracking.h"
@@ -171,6 +172,10 @@
                marker->pos[0]= sc->marker_pos[0]/width;
                marker->pos[1]= sc->marker_pos[1]/height;
 
+               /* to update position of "parented" objects */
+               DAG_id_tag_update(&clip->id, 0);
+               WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
                ok= 1;
        }
        else if(event==B_MARKER_PAT_DIM) {
@@ -238,6 +243,10 @@
                track->offset[0]= sc->track_offset[0]/width;
                track->offset[1]= sc->track_offset[1]/height;
 
+               /* to update position of "parented" objects */
+               DAG_id_tag_update(&clip->id, 0);
+               WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
                ok= 1;
        }
 

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-27 07:42:53 UTC (rev 38753)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c      
2011-07-27 09:48:19 UTC (rev 38754)
@@ -198,7 +198,7 @@
                        break;
 
                if(marker->framenr==i) {
-                       copy_v2_v2(path[--a], marker->pos);
+                       add_v2_v2v2(path[--a], marker->pos, track->offset);
 
                        if(marker->framenr==sc->user.framenr)
                                curindex= a;
@@ -220,7 +220,7 @@
                        if(marker->framenr==sc->user.framenr)
                                curindex= b;
 
-                       copy_v2_v2(path[b++], marker->pos);
+                       add_v2_v2v2(path[b++], marker->pos, track->offset);
                } else
                        break;
 
@@ -498,7 +498,7 @@
        glPopMatrix();
 }
 
-static void draw_marker_slide_zones(SpaceClip *sc, MovieTrackingTrack *track, 
MovieTrackingMarker *marker, int outline, int act, int width, int height)
+static void draw_marker_slide_zones(SpaceClip *sc, MovieTrackingTrack *track, 
MovieTrackingMarker *marker, int outline, int sel, int act, int width, int 
height)
 {
        float x, y, dx, dy, patdx, patdy, searchdx, searchdy, tdx, tdy;
        int tiny= sc->flag&SC_SHOW_TINY_MARKER;
@@ -523,38 +523,25 @@
        dx= 6.0f/width/sc->zoom;
        dy= 6.0f/height/sc->zoom;
 
-       patdx= MIN2(dx, (track->pat_max[0]-track->pat_min[0])/6.f);
-       patdy= MIN2(dy, (track->pat_max[1]-track->pat_min[1])/6.f);
+       patdx= MIN2(dx*2.f/3.f, (track->pat_max[0]-track->pat_min[0])/6.f);
+       patdy= MIN2(dy*2.f/3.f, (track->pat_max[1]-track->pat_min[1])/6.f);
 
        searchdx= MIN2(dx, (track->search_max[0]-track->search_min[0])/6.f);
        searchdy= MIN2(dy, (track->search_max[1]-track->search_min[1])/6.f);
 
-       /* position square */
-       if(sc->flag&SC_SHOW_MARKER_SEARCH || sc->flag&SC_SHOW_MARKER_PATTERN) {
-               if(sc->flag&SC_SHOW_MARKER_SEARCH) {
-                       if(!outline) {
-                               if(track->search_flag&SELECT) glColor3fv(scol);
-                               else glColor3fv(col);
-                       }
+       if((sc->flag&SC_SHOW_MARKER_SEARCH) && 
((track->search_flag&SELECT)==sel || outline)) {
+               if(!outline) {
+                       if(track->search_flag&SELECT) glColor3fv(scol);
+                       else glColor3fv(col);
+               }
 
-                       x= track->search_min[0];
-                       y= track->search_max[1];
+               /* search offset square */
+               x= track->search_min[0];
+               y= track->search_max[1];
 
-                       tdx= searchdx;
-                       tdy= searchdy;
-               } else {
-                       if(!outline) {
-                               if(track->pat_flag&SELECT) glColor3fv(scol);
-                               else glColor3fv(col);
-                       }
+               tdx= searchdx;
+               tdy= searchdy;
 
-                       x= track->pat_min[0];
-                       y= track->pat_max[1];
-
-                       tdx= patdx;
-                       tdy= patdy;
-               }
-
                if(outline) {
                        tdx+= 1.0f/sc->zoom/width;
                        tdy+= 1.0f/sc->zoom/height;
@@ -566,15 +553,8 @@
                        glVertex3f(x+tdx, y-tdy, 0);
                        glVertex3f(x-tdx, y-tdy, 0);
                glEnd();
-       }
 
-       /* search resizing triangle */
-       if(sc->flag&SC_SHOW_MARKER_SEARCH) {
-               if(!outline) {
-                       if(track->search_flag&SELECT) glColor3fv(scol);
-                       else glColor3fv(col);
-               }
-
+               /* search resizing triangle */
                x= track->search_max[0];
                y= track->search_min[1];
 
@@ -582,8 +562,8 @@
                tdy= searchdy*2.f;
 
                if(outline) {
-                       tdx+= 2.0f/sc->zoom/width;
-                       tdy+= 2.0f/sc->zoom/height;
+                       tdx+= 1.0f/sc->zoom/width;
+                       tdy+= 1.0f/sc->zoom/height;
                }
 
                glBegin(GL_TRIANGLES);
@@ -593,13 +573,32 @@
                glEnd();
        }
 
-       /* pattern resizing triangle */
-       if(sc->flag&SC_SHOW_MARKER_PATTERN) {
+       if((sc->flag&SC_SHOW_MARKER_PATTERN) && ((track->pat_flag&SELECT)==sel 
|| outline)) {
                if(!outline) {
                        if(track->pat_flag&SELECT) glColor3fv(scol);
                        else glColor3fv(col);
                }
 
+               /* pattern offset square */
+               x= track->pat_min[0];
+               y= track->pat_max[1];
+
+               tdx= patdx;
+               tdy= patdy;
+
+               if(outline) {
+                       tdx+= 1.0f/sc->zoom/width;
+                       tdy+= 1.0f/sc->zoom/height;
+               }
+
+               glBegin(GL_QUADS);
+                       glVertex3f(x-tdx, y+tdy, 0);
+                       glVertex3f(x+tdx, y+tdy, 0);
+                       glVertex3f(x+tdx, y-tdy, 0);
+                       glVertex3f(x-tdx, y-tdy, 0);
+               glEnd();
+
+               /* pattern resizing triangle */
                x= track->pat_max[0];
                y= track->pat_min[1];
 
@@ -607,8 +606,8 @@
                tdy= patdy*2.f;
 
                if(outline) {
-                       tdx+= 2.0f/sc->zoom/width;
-                       tdy+= 2.0f/sc->zoom/height;
+                       tdx+= 1.0f/sc->zoom/width;
+                       tdy+= 1.0f/sc->zoom/height;
                }
 
                glBegin(GL_TRIANGLES);
@@ -772,7 +771,8 @@
                        if(MARKER_VISIBLE(sc, marker)) {
                                draw_marker_outline(sc, track, marker, width, 
height);
                                draw_marker_areas(sc, track, marker, width, 
height, 0, 0);
-                               draw_marker_slide_zones(sc, track, marker, 1, 
0, width, height);
+                               draw_marker_slide_zones(sc, track, marker, 1, 
0, 0, width, height);
+                               draw_marker_slide_zones(sc, track, marker, 0, 
0, 0, width, height);
                        }
                }
 
@@ -791,7 +791,7 @@
 
                                if(MARKER_VISIBLE(sc, marker)) {
                                        draw_marker_areas(sc, track, marker, 
width, height, 0, 1);
-                                       draw_marker_slide_zones(sc, track, 
marker, 0, 0, width, height);
+                                       draw_marker_slide_zones(sc, track, 
marker, 0, 1, 0, width, height);
                                }
                        }
                }
@@ -806,7 +806,7 @@
 
                        if(MARKER_VISIBLE(sc, marker)) {
                                draw_marker_areas(sc, sel, marker, width, 
height, 1, 1);
-                               draw_marker_slide_zones(sc, sel, marker, 0, 1, 
width, height);
+                               draw_marker_slide_zones(sc, sel, marker, 0, 1, 
1, width, height);
                        }
                }
        }

Modified: 
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_editor.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_editor.c    
2011-07-27 07:42:53 UTC (rev 38753)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_editor.c    
2011-07-27 09:48:19 UTC (rev 38754)
@@ -156,8 +156,8 @@
                        if(marker) {
                                float pos[2];
 
-                               pos[0]= marker->pos[0]*width;
-                               pos[1]= marker->pos[1]*height;
+                               pos[0]= (marker->pos[0]+track->offset[0])*width;
+                               pos[1]= 
(marker->pos[1]+track->offset[1])*height;
 
                                DO_MINMAX2(pos, min, max);
 

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-27 07:42:53 UTC (rev 38753)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c   
2011-07-27 09:48:19 UTC (rev 38754)
@@ -356,14 +356,21 @@
                copy_v2_v2(data->spos, marker->pos);
                copy_v2_v2(data->soff, track->offset);
        } else if(area==TRACK_AREA_PAT) {
-               data->min= track->pat_min;
-               data->max= track->pat_max;
+               if(action==SLIDE_ACTION_SIZE) {
+                       data->min= track->pat_min;
+                       data->max= track->pat_max;
+               } else {
+                       data->pos= marker->pos;
+                       data->offset= track->offset;
+                       copy_v2_v2(data->spos, marker->pos);
+                       copy_v2_v2(data->soff, track->offset);
+               }
        } else if(area==TRACK_AREA_SEARCH) {
                data->min= track->search_min;
                data->max= track->search_max;
        }
 
-       if(ELEM(area, TRACK_AREA_PAT, TRACK_AREA_SEARCH)) {
+       if(area==TRACK_AREA_SEARCH || (area==TRACK_AREA_PAT && 
action!=SLIDE_ACTION_OFFSET)) {
                copy_v2_v2(data->smin, data->min);
                copy_v2_v2(data->smax, data->max);
        }
@@ -482,15 +489,14 @@
                        if((marker->flag&MARKER_DISABLED)==0) {
                                if(sc->flag&SC_SHOW_MARKER_SEARCH) {
                                        if(mouse_on_corner(sc, track, marker, 
TRACK_AREA_SEARCH, co, 1, width, height))
-                                               customdata= 
create_slide_marker_data(sc, track, marker, event, TRACK_AREA_POINT, 
SLIDE_ACTION_POS, width, height);
+                                               customdata= 
create_slide_marker_data(sc, track, marker, event, TRACK_AREA_SEARCH, 
SLIDE_ACTION_OFFSET, width, height);
                                        else if(mouse_on_corner(sc, track, 
marker, TRACK_AREA_SEARCH, co, 0, width, height))
                                                customdata= 
create_slide_marker_data(sc, track, marker, event, TRACK_AREA_SEARCH, 
SLIDE_ACTION_SIZE, width, height);
                                }
 
                                if(!customdata && 
sc->flag&SC_SHOW_MARKER_PATTERN) {
-                                       if((sc->flag&SC_SHOW_MARKER_SEARCH)==0)
-                                               if(mouse_on_corner(sc, track, 
marker, TRACK_AREA_PAT, co, 1,  width, height))
-                                                       customdata= 
create_slide_marker_data(sc, track, marker, event, TRACK_AREA_POINT, 
SLIDE_ACTION_POS, width, height);
+                                       if(mouse_on_corner(sc, track, marker, 
TRACK_AREA_PAT, co, 1,  width, height))
+                                               customdata= 
create_slide_marker_data(sc, track, marker, event, TRACK_AREA_PAT, 
SLIDE_ACTION_OFFSET, width, height);
 
                                        if(!customdata && mouse_on_corner(sc, 
track, marker, TRACK_AREA_PAT, co, 0, width, height))

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to