[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48113] trunk/blender/source/blender: Do not check result of BKE_tracking_marker_get -- it shall always
Sergey Sharybin
sergey.vfx at gmail.com
Wed Jun 20 12:55:02 CEST 2012
Revision: 48113
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48113
Author: nazgul
Date: 2012-06-20 10:54:56 +0000 (Wed, 20 Jun 2012)
Log Message:
-----------
Do not check result of BKE_tracking_marker_get -- it shall always
return valid marker. If not -- let blender crash, because that means
something went really bad and silencing this isn't good idea.
Also made mask parenting to tracking data aware of clip's start frame.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_movieclip.h
trunk/blender/source/blender/blenkernel/intern/mask.c
trunk/blender/source/blender/blenkernel/intern/movieclip.c
trunk/blender/source/blender/editors/mask/mask_relationships.c
trunk/blender/source/blender/editors/space_clip/clip_draw.c
Modified: trunk/blender/source/blender/blenkernel/BKE_movieclip.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_movieclip.h 2012-06-20 10:42:41 UTC (rev 48112)
+++ trunk/blender/source/blender/blenkernel/BKE_movieclip.h 2012-06-20 10:54:56 UTC (rev 48113)
@@ -63,8 +63,8 @@
void BKE_movieclip_build_proxy_frame(struct MovieClip *clip, int clip_flag, struct MovieDistortion *distortion,
int cfra, int *build_sizes, int build_count, int undistorted);
-int BKE_movieclip_remap_scene_to_clip_frame(struct MovieClip *clip, int framenr);
-int BKE_movieclip_remap_clip_to_scene_frame(struct MovieClip *clip, int framenr);
+float BKE_movieclip_remap_scene_to_clip_frame(struct MovieClip *clip, float framenr);
+float BKE_movieclip_remap_clip_to_scene_frame(struct MovieClip *clip, float framenr);
/* cacheing flags */
#define MOVIECLIP_CACHE_SKIP (1 << 0)
Modified: trunk/blender/source/blender/blenkernel/intern/mask.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mask.c 2012-06-20 10:42:41 UTC (rev 48112)
+++ trunk/blender/source/blender/blenkernel/intern/mask.c 2012-06-20 10:54:56 UTC (rev 48113)
@@ -1160,12 +1160,13 @@
if (ob) {
MovieTrackingTrack *track = BKE_tracking_track_get_named(tracking, ob, parent->sub_parent);
+ float clip_framenr = BKE_movieclip_remap_scene_to_clip_frame(clip, ctime);
MovieClipUser user = {0};
user.framenr = ctime;
if (track) {
- MovieTrackingMarker *marker = BKE_tracking_marker_get(track, ctime);
+ MovieTrackingMarker *marker = BKE_tracking_marker_get(track, clip_framenr);
float marker_pos_ofs[2];
add_v2_v2v2(marker_pos_ofs, marker->pos, track->offset);
BKE_mask_coord_from_movieclip(clip, &user, r_co, marker_pos_ofs);
Modified: trunk/blender/source/blender/blenkernel/intern/movieclip.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/movieclip.c 2012-06-20 10:42:41 UTC (rev 48112)
+++ trunk/blender/source/blender/blenkernel/intern/movieclip.c 2012-06-20 10:54:56 UTC (rev 48113)
@@ -1270,12 +1270,12 @@
clip->id.us = 0;
}
-int BKE_movieclip_remap_scene_to_clip_frame(MovieClip *clip, int framenr)
+float BKE_movieclip_remap_scene_to_clip_frame(MovieClip *clip, float framenr)
{
- return framenr - clip->start_frame + 1;
+ return framenr - (float) clip->start_frame + 1.0f;
}
-int BKE_movieclip_remap_clip_to_scene_frame(MovieClip *clip, int framenr)
+float BKE_movieclip_remap_clip_to_scene_frame(MovieClip *clip, float framenr)
{
- return framenr + clip->start_frame - 1;
+ return framenr + (float) clip->start_frame - 1.0f;
}
Modified: trunk/blender/source/blender/editors/mask/mask_relationships.c
===================================================================
--- trunk/blender/source/blender/editors/mask/mask_relationships.c 2012-06-20 10:42:41 UTC (rev 48112)
+++ trunk/blender/source/blender/editors/mask/mask_relationships.c 2012-06-20 10:54:56 UTC (rev 48113)
@@ -44,6 +44,7 @@
#include "WM_types.h"
#include "ED_screen.h"
+#include "ED_clip.h" /* frame remapping functions */
#include "ED_mask.h" /* own include */
#include "mask_intern.h" /* own include */
@@ -104,21 +105,25 @@
MovieClip *clip;
MovieTrackingTrack *track;
MovieTrackingMarker *marker;
- MovieTrackingObject *tracking;
+ MovieTrackingObject *tracking_object;
/* done */
+ int framenr;
+
float marker_pos_ofs[2];
float parmask_pos[2];
if ((NULL == (sc = CTX_wm_space_clip(C))) ||
(NULL == (clip = sc->clip)) ||
(NULL == (track = clip->tracking.act_track)) ||
- (NULL == (marker = BKE_tracking_marker_get(track, sc->user.framenr))) ||
- (NULL == (tracking = BKE_tracking_object_get_active(&clip->tracking))))
+ (NULL == (tracking_object = BKE_tracking_object_get_active(&clip->tracking))))
{
return OPERATOR_CANCELLED;
}
+ framenr = ED_space_clip_get_clip_frame_number(sc);
+ marker = BKE_tracking_marker_get(track, framenr);
+
add_v2_v2v2(marker_pos_ofs, marker->pos, track->offset);
BKE_mask_coord_from_movieclip(clip, &sc->user, parmask_pos, marker_pos_ofs);
@@ -138,7 +143,7 @@
if (MASKPOINT_ISSEL_ANY(point)) {
point->parent.id_type = ID_MC;
point->parent.id = &clip->id;
- strcpy(point->parent.parent, tracking->name);
+ strcpy(point->parent.parent, tracking_object->name);
strcpy(point->parent.sub_parent, track->name);
copy_v2_v2(point->parent.parent_orig, parmask_pos);
Modified: trunk/blender/source/blender/editors/space_clip/clip_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_draw.c 2012-06-20 10:42:41 UTC (rev 48112)
+++ trunk/blender/source/blender/editors/space_clip/clip_draw.c 2012-06-20 10:54:56 UTC (rev 48113)
@@ -1497,11 +1497,9 @@
if (track) {
int framenr = ED_space_clip_get_clip_frame_number(sc);
- /* don't get the exact marker since it may not exist for the frame */
MovieTrackingMarker *marker = BKE_tracking_marker_get(track, framenr);
- if (marker) {
- glTranslatef(marker->pos[0], marker->pos[1], 0.0f);
- }
+
+ glTranslatef(marker->pos[0], marker->pos[1], 0.0f);
}
}
More information about the Bf-blender-cvs
mailing list