Revision: 47695
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47695
Author:   nazgul
Date:     2012-06-10 17:09:35 +0000 (Sun, 10 Jun 2012)
Log Message:
-----------
Fixed curves and dopeseet views of motion tracking data not taking clip's
start frame into account.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_clip/clip_dopesheet_draw.c
    trunk/blender/source/blender/editors/space_clip/clip_graph_draw.c
    trunk/blender/source/blender/editors/space_clip/clip_graph_ops.c
    trunk/blender/source/blender/editors/space_clip/clip_intern.h
    trunk/blender/source/blender/editors/space_clip/clip_utils.c

Modified: trunk/blender/source/blender/editors/space_clip/clip_dopesheet_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_dopesheet_draw.c       
2012-06-10 17:06:26 UTC (rev 47694)
+++ trunk/blender/source/blender/editors/space_clip/clip_dopesheet_draw.c       
2012-06-10 17:09:35 UTC (rev 47695)
@@ -200,8 +200,8 @@
 
                                /* tracked segments */
                                for (i = 0; i < channel->tot_segment; i++) {
-                                       int start_frame = channel->segments[2 * 
i];
-                                       int end_frame = channel->segments[2 * i 
+ 1];
+                                       int start_frame = 
BKE_movieclip_remap_clip_to_scene_frame(clip, channel->segments[2 * i]);
+                                       int end_frame = 
BKE_movieclip_remap_clip_to_scene_frame(clip, channel->segments[2 * i + 1]);
 
                                        if (sel)
                                                glColor4fv(selected_strip);
@@ -224,9 +224,12 @@
                                while (i < track->markersnr) {
                                        MovieTrackingMarker *marker = 
&track->markers[i];
 
-                                       if ((marker->flag & (MARKER_DISABLED | 
MARKER_TRACKED)) == 0)
-                                               
draw_keyframe_shape(marker->framenr, y, xscale, yscale, sel, alpha);
+                                       if ((marker->flag & (MARKER_DISABLED | 
MARKER_TRACKED)) == 0) {
+                                               int framenr = 
BKE_movieclip_remap_clip_to_scene_frame(clip, marker->framenr);
 
+                                               draw_keyframe_shape(framenr, y, 
xscale, yscale, sel, alpha);
+                                       }
+
                                        i++;
                                }
                        }

Modified: trunk/blender/source/blender/editors/space_clip/clip_graph_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_graph_draw.c   
2012-06-10 17:06:26 UTC (rev 47694)
+++ trunk/blender/source/blender/editors/space_clip/clip_graph_draw.c   
2012-06-10 17:09:35 UTC (rev 47695)
@@ -88,9 +88,9 @@
 }
 
 static void tracking_segment_point_cb(void *UNUSED(userdata), 
MovieTrackingTrack *UNUSED(track),
-                       MovieTrackingMarker *marker, int UNUSED(coord), float 
val)
+                       MovieTrackingMarker *UNUSED(marker), int UNUSED(coord), 
int scene_framenr, float val)
 {
-       glVertex2f(marker->framenr, val);
+       glVertex2f(scene_framenr, val);
 }
 
 void tracking_segment_start_cb(void *userdata, MovieTrackingTrack *track, int 
coord)
@@ -123,7 +123,7 @@
 }
 
 static void tracking_segment_knot_cb(void *userdata, MovieTrackingTrack *track,
-                       MovieTrackingMarker *marker, int coord, float val)
+                       MovieTrackingMarker *marker, int coord, int 
scene_framenr, float val)
 {
        struct { MovieTrackingTrack *act_track; int sel; float xscale, yscale, 
hsize; } *data = userdata;
        int sel = 0, sel_flag;
@@ -140,7 +140,7 @@
                else
                        UI_ThemeColor(TH_HANDLE_VERTEX);
 
-               draw_curve_knot(marker->framenr, val, data->xscale, 
data->yscale, data->hsize);
+               draw_curve_knot(scene_framenr, val, data->xscale, data->yscale, 
data->hsize);
        }
 }
 

Modified: trunk/blender/source/blender/editors/space_clip/clip_graph_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_graph_ops.c    
2012-06-10 17:06:26 UTC (rev 47694)
+++ trunk/blender/source/blender/editors/space_clip/clip_graph_ops.c    
2012-06-10 17:09:35 UTC (rev 47695)
@@ -109,10 +109,11 @@
 } MouseSelectUserData;
 
 static void find_nearest_tracking_segment_cb(void *userdata, 
MovieTrackingTrack *track,
-                                             MovieTrackingMarker *marker, int 
coord, float val)
+                                             MovieTrackingMarker 
*UNUSED(marker),
+                                             int coord, int scene_framenr, 
float val)
 {
        MouseSelectUserData *data = userdata;
-       float co[2] = {marker->framenr, val};
+       float co[2] = {scene_framenr, val};
 
        if (data->has_prev) {
                float d = dist_to_line_segment_v2(data->mouse_co, 
data->prev_co, co);
@@ -137,14 +138,14 @@
 }
 
 static void find_nearest_tracking_knot_cb(void *userdata, MovieTrackingTrack 
*track,
-                                          MovieTrackingMarker *marker, int 
coord, float val)
+                                          MovieTrackingMarker *marker, int 
coord, int scene_framenr, float val)
 {
        MouseSelectUserData *data = userdata;
-       float dx = marker->framenr - data->mouse_co[0], dy = val - 
data->mouse_co[1];
+       float dx = scene_framenr - data->mouse_co[0], dy = val - 
data->mouse_co[1];
        float d = dx * dx + dy * dy;
 
        if (data->marker == NULL || d < data->min_dist) {
-               float co[2] = {marker->framenr, val};
+               float co[2] = {scene_framenr, val};
 
                data->track = track;
                data->marker = marker;
@@ -308,11 +309,11 @@
 } BorderSelectuserData;
 
 static void border_select_cb(void *userdata, MovieTrackingTrack *UNUSED(track),
-                             MovieTrackingMarker *marker, int coord, float val)
+                             MovieTrackingMarker *marker, int coord, int 
scene_framenr, float val)
 {
        BorderSelectuserData *data = (BorderSelectuserData *) userdata;
 
-       if (BLI_in_rctf(&data->rect, marker->framenr, val)) {
+       if (BLI_in_rctf(&data->rect, scene_framenr, val)) {
                int flag = 0;
 
                if (coord == 0)
@@ -532,7 +533,7 @@
 } ViewAllUserData;
 
 static void view_all_cb(void *userdata, MovieTrackingTrack *UNUSED(track), 
MovieTrackingMarker *UNUSED(marker),
-                        int UNUSED(coord), float val)
+                        int UNUSED(coord), int UNUSED(scene_framenr), float 
val)
 {
        ViewAllUserData *data = (ViewAllUserData *) userdata;
 

Modified: trunk/blender/source/blender/editors/space_clip/clip_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_intern.h       
2012-06-10 17:06:26 UTC (rev 47694)
+++ trunk/blender/source/blender/editors/space_clip/clip_intern.h       
2012-06-10 17:09:35 UTC (rev 47695)
@@ -110,12 +110,12 @@
 
 /* clip_utils.c */
 void clip_graph_tracking_values_iterate_track(struct SpaceClip *sc, struct 
MovieTrackingTrack *track, void *userdata,
-                       void (*func) (void *userdata, struct MovieTrackingTrack 
*track, struct MovieTrackingMarker *marker, int coord, float val),
+                       void (*func) (void *userdata, struct MovieTrackingTrack 
*track, struct MovieTrackingMarker *marker, int coord, int scene_framenr, float 
val),
                        void (*segment_start) (void *userdata, struct 
MovieTrackingTrack *track, int coord),
                        void (*segment_end) (void *userdata));
 
 void clip_graph_tracking_values_iterate(struct SpaceClip *sc, void *userdata,
-                       void (*func) (void *userdata, struct MovieTrackingTrack 
*track, struct MovieTrackingMarker *marker, int coord, float val),
+                       void (*func) (void *userdata, struct MovieTrackingTrack 
*track, struct MovieTrackingMarker *marker, int coord, int scene_framenr, float 
val),
                        void (*segment_start) (void *userdata, struct 
MovieTrackingTrack *track, int coord),
                        void (*segment_end) (void *userdata));
 

Modified: trunk/blender/source/blender/editors/space_clip/clip_utils.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_utils.c        
2012-06-10 17:06:26 UTC (rev 47694)
+++ trunk/blender/source/blender/editors/space_clip/clip_utils.c        
2012-06-10 17:09:35 UTC (rev 47695)
@@ -64,7 +64,7 @@
 #include "clip_intern.h"       // own include
 
 void clip_graph_tracking_values_iterate_track(SpaceClip *sc, 
MovieTrackingTrack *track, void *userdata,
-                       void (*func) (void *userdata, MovieTrackingTrack 
*track, MovieTrackingMarker *marker, int coord, float val),
+                       void (*func) (void *userdata, MovieTrackingTrack 
*track, MovieTrackingMarker *marker, int coord, int scene_framenr, float val),
                        void (*segment_start) (void *userdata, 
MovieTrackingTrack *track, int coord),
                        void (*segment_end) (void *userdata))
 {
@@ -104,9 +104,12 @@
                        val = (marker->pos[coord] - prevval) * ((coord == 0) ? 
(width) : (height));
                        val /= marker->framenr - prevfra;
 
-                       if (func)
-                               func(userdata, track, marker, coord, val);
+                       if (func) {
+                               int scene_framenr = 
BKE_movieclip_remap_clip_to_scene_frame(clip, marker->framenr);
 
+                               func(userdata, track, marker, coord, 
scene_framenr, val);
+                       }
+
                        prevval = marker->pos[coord];
                        prevfra = marker->framenr;
                }
@@ -119,7 +122,7 @@
 }
 
 void clip_graph_tracking_values_iterate(SpaceClip *sc, void *userdata,
-                       void (*func) (void *userdata, MovieTrackingTrack 
*track, MovieTrackingMarker *marker, int coord, float val),
+                       void (*func) (void *userdata, MovieTrackingTrack 
*track, MovieTrackingMarker *marker, int coord, int scene_framenr, float val),
                        void (*segment_start) (void *userdata, 
MovieTrackingTrack *track, int coord),
                        void (*segment_end) (void *userdata))
 {

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

Reply via email to