Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-01-28 16:01:03 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-01-28 16:02:22 +0400
commitbe6643b5ec01c8f64a1065762c38ce8803b717c0 (patch)
treeec8ffa055277aba2b1fecc636efde0a84140fc35 /source/blender/editors/space_clip/clip_graph_draw.c
parentc2da706a36ca355509d9dc2abcffc1edc6c49fff (diff)
Followup to the previous commit
Need to take weight into account when drawing per-frame track reprojection curve and when computing per-track average error.
Diffstat (limited to 'source/blender/editors/space_clip/clip_graph_draw.c')
-rw-r--r--source/blender/editors/space_clip/clip_graph_draw.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/editors/space_clip/clip_graph_draw.c b/source/blender/editors/space_clip/clip_graph_draw.c
index 16845bb10fb..67c8bd87527 100644
--- a/source/blender/editors/space_clip/clip_graph_draw.c
+++ b/source/blender/editors/space_clip/clip_graph_draw.c
@@ -192,6 +192,7 @@ static void draw_tracks_motion_curves(View2D *v2d, SpaceClip *sc)
}
typedef struct TrackErrorCurveUserData {
+ MovieClip *clip;
MovieTracking *tracking;
MovieTrackingObject *tracking_object;
MovieTrackingTrack *active_track;
@@ -210,6 +211,7 @@ static void tracking_error_segment_point_cb(void *userdata,
TrackErrorCurveUserData *data = (TrackErrorCurveUserData *) userdata;
float reprojected_position[4], bundle_position[4], marker_position[2], delta[2];
float reprojection_error;
+ float weight = BKE_tracking_track_get_weight_for_marker(data->clip, track, marker);
if (!data->matrix_initialized || data->matrix_frame != scene_framenr) {
BKE_tracking_get_projection_matrix(data->tracking, data->tracking_object,
@@ -232,7 +234,7 @@ static void tracking_error_segment_point_cb(void *userdata,
marker_position[1] = (marker->pos[1] + track->offset[1]) * data->height * data->aspy;
sub_v2_v2v2(delta, reprojected_position, marker_position);
- reprojection_error = len_v2(delta);
+ reprojection_error = len_v2(delta) * track->weight;
glVertex2f(scene_framenr, reprojection_error);
}
@@ -273,6 +275,7 @@ static void draw_tracks_error_curves(SpaceClip *sc)
MovieTracking *tracking = &clip->tracking;
TrackErrorCurveUserData data;
+ data.clip = clip;
data.tracking = tracking;
data.tracking_object = BKE_tracking_object_get_active(tracking);
data.active_track = BKE_tracking_track_get_active(tracking);