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

Moved tweak from "Cursor To Active" to "Cursor To Selection".
It's more logical due to this operator already works with midpoints.

Modified Paths:
--------------
    branches/soc-2011-tomato/source/blender/editors/space_view3d/view3d_snap.c

Modified: 
branches/soc-2011-tomato/source/blender/editors/space_view3d/view3d_snap.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_view3d/view3d_snap.c  
2011-07-20 09:16:26 UTC (rev 38529)
+++ branches/soc-2011-tomato/source/blender/editors/space_view3d/view3d_snap.c  
2011-07-20 09:27:17 UTC (rev 38530)
@@ -750,6 +750,32 @@
 
 /* **************************************************** */
 
+static void bundle_midpoint(Scene *scene, float vec[3])
+{
+       MovieTrackingTrack *track;
+       int ok= 0;
+       float min[3], max[3], mat[4][4], pos[3];
+
+       BKE_get_tracking_mat(scene, mat);
+
+       INIT_MINMAX(min, max);
+
+       track= scene->clip->tracking.tracks.first;
+       while(track) {
+               if(track->flag&TRACK_HAS_BUNDLE && TRACK_SELECTED(track)) {
+                       ok= 1;
+                       mul_v3_m4v3(pos, mat, track->bundle_pos);
+                       DO_MINMAX(pos, min, max);
+               }
+
+               track= track->next;
+       }
+
+       if(ok) {
+               interp_v3_v3v3(vec, min, max, 0.5);
+       }
+}
+
 static int snap_curs_to_sel(bContext *C, wmOperator *UNUSED(op))
 {
        Object *obedit= CTX_data_edit_object(C);
@@ -814,6 +840,15 @@
                else {
                        CTX_DATA_BEGIN(C, Object*, ob, selected_objects) {
                                VECCOPY(vec, ob->obmat[3]);
+
+                               /* special case for camera -- snap to bundles */
+                               if(obact->type==OB_CAMERA) {
+                                       /* snap to bundles should happen only 
when bundles are visible */
+                                       if(scene->clip && 
v3d->flag2&V3D_SHOW_RECONSTRUCTION) {
+                                               bundle_midpoint(scene, vec);
+                                       }
+                               }
+
                                add_v3_v3(centroid, vec);
                                DO_MINMAX(vec, min, max);
                                count++;
@@ -853,32 +888,6 @@
 
 /* ********************************************** */
 
-static void snap_to_bundle(Scene *scene, float *curs)
-{
-       MovieTrackingTrack *track;
-       int ok= 0;
-       float min[3], max[3], mat[4][4], pos[3];
-
-       BKE_get_tracking_mat(scene, mat);
-
-       INIT_MINMAX(min, max);
-
-       track= scene->clip->tracking.tracks.first;
-       while(track) {
-               if(track->flag&TRACK_HAS_BUNDLE && TRACK_SELECTED(track)) {
-                       ok= 1;
-                       mul_v3_m4v3(pos, mat, track->bundle_pos);
-                       DO_MINMAX(pos, min, max);
-               }
-
-               track= track->next;
-       }
-
-       if(ok) {
-               interp_v3_v3v3(curs, min, max, 0.5);
-       }
-}
-
 static int snap_curs_to_active(bContext *C, wmOperator *UNUSED(op))
 {
        Object *obedit= CTX_data_edit_object(C);
@@ -905,14 +914,6 @@
        else {
                if (obact) {
                        VECCOPY(curs, obact->obmat[3]);
-
-                       /* special case for camera -- snap to bundles */
-                       if(obact->type==OB_CAMERA) {
-                               /* snap to bundles should happen only when 
bundles are visible */
-                               if(scene->clip && 
v3d->flag2&V3D_SHOW_RECONSTRUCTION) {
-                                       snap_to_bundle(scene, curs);
-                               }
-                       }
                }
        }
        

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

Reply via email to