[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47695] trunk/blender/source/blender/ editors/space_clip: Fixed curves and dopeseet views of motion tracking data not taking clip's
Sergey Sharybin
sergey.vfx at gmail.com
Sun Jun 10 19:09:36 CEST 2012
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))
{
More information about the Bf-blender-cvs
mailing list