[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38507] branches/soc-2011-tomato/source/ blender: Camera tracking integration
Sergey Sharybin
g.ulairi at gmail.com
Tue Jul 19 12:40:23 CEST 2011
Revision: 38507
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38507
Author: nazgul
Date: 2011-07-19 10:40:22 +0000 (Tue, 19 Jul 2011)
Log Message:
-----------
Camera tracking integration
===========================
- Remove set but not used variable in clip buttons.
- Set keyframe when sliding marker with mouse.
- Also set keyframe when sliding from preview widget.
Modified Paths:
--------------
branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c
branches/soc-2011-tomato/source/blender/editors/interface/interface_handlers.c
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c
branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c
branches/soc-2011-tomato/source/blender/makesdna/DNA_movieclip_types.h
Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c 2011-07-19 08:31:53 UTC (rev 38506)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/movieclip.c 2011-07-19 10:40:22 UTC (rev 38507)
@@ -453,7 +453,8 @@
scopes->track_preview= NULL;
}
- scopes->marker_pos= NULL;
+ scopes->marker= NULL;
+ scopes->track= NULL;
if(clip) {
BKE_movieclip_last_selection(clip, &sel_type, &sel);
@@ -486,14 +487,14 @@
IMB_freeImBuf(ibuf);
}
- scopes->marker_pos= marker->pos;
+ scopes->marker= marker;
+ scopes->track= track;
scopes->slide_scale[0]= track->pat_max[0]-track->pat_min[0];
scopes->slide_scale[1]= track->pat_max[1]-track->pat_min[1];
- scopes->marker_flag= &marker->flag;
}
}
-
+ scopes->framenr= user->framenr;
scopes->ok= 1;
}
Modified: branches/soc-2011-tomato/source/blender/editors/interface/interface_handlers.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/interface/interface_handlers.c 2011-07-19 08:31:53 UTC (rev 38506)
+++ branches/soc-2011-tomato/source/blender/editors/interface/interface_handlers.c 2011-07-19 10:40:22 UTC (rev 38507)
@@ -56,6 +56,7 @@
#include "BKE_idprop.h"
#include "BKE_report.h"
#include "BKE_texture.h"
+#include "BKE_tracking.h"
#include "BKE_unit.h"
#include "ED_screen.h"
@@ -4081,11 +4082,14 @@
/* resize preview widget itself */
scopes->track_preview_height = (but->y2 - but->y1) + (data->dragstarty - my);
} else {
- if(scopes->marker_pos) {
- (*scopes->marker_flag)&= ~MARKER_DISABLED;
- scopes->marker_pos[0]+= -dx*scopes->slide_scale[0] / (but->block->maxx-but->block->minx);
- scopes->marker_pos[1]+= -dy*scopes->slide_scale[1] / (but->block->maxy-but->block->miny);
+ if(scopes->marker) {
+ if(scopes->marker->framenr!=scopes->framenr)
+ scopes->marker= BKE_tracking_ensure_marker(scopes->track, scopes->framenr);
+ scopes->marker->flag&= ~MARKER_DISABLED;
+ scopes->marker->pos[0]+= -dx*scopes->slide_scale[0] / (but->block->maxx-but->block->minx);
+ scopes->marker->pos[1]+= -dy*scopes->slide_scale[1] / (but->block->maxy-but->block->miny);
+
WM_event_add_notifier(C, NC_MOVIECLIP|NA_EDITED, NULL);
}
Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c 2011-07-19 08:31:53 UTC (rev 38506)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_buttons.c 2011-07-19 10:40:22 UTC (rev 38507)
@@ -341,7 +341,6 @@
PropertyRNA *prop;
PointerRNA scopesptr;
uiBlock *block;
- uiBut *bt;
rctf rect;
MovieClipScopes *scopes;
@@ -369,5 +368,5 @@
scopes->track_preview_height= (scopes->track_preview_height<=UI_UNIT_Y)?UI_UNIT_Y:scopes->track_preview_height;
- bt= uiDefBut(block, TRACKPREVIEW, 0, "", rect.xmin, rect.ymin, rect.xmax-rect.xmin, scopes->track_preview_height, scopes, 0, 0, 0, 0, "");
+ uiDefBut(block, TRACKPREVIEW, 0, "", rect.xmin, rect.ymin, rect.xmax-rect.xmin, scopes->track_preview_height, scopes, 0, 0, 0, 0, "");
}
Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c 2011-07-19 08:31:53 UTC (rev 38506)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c 2011-07-19 10:40:22 UTC (rev 38507)
@@ -1616,10 +1616,13 @@
int lock, accurate;
} SlideMarkerData;
-static SlideMarkerData *create_slide_marker_data(MovieTrackingTrack *track, MovieTrackingMarker *marker, wmEvent *event, int area, int width, int height)
+static SlideMarkerData *create_slide_marker_data(SpaceClip *sc, MovieTrackingTrack *track,
+ MovieTrackingMarker *marker, wmEvent *event, int area, int width, int height)
{
SlideMarkerData *data= MEM_callocN(sizeof(SlideMarkerData), "slide marker data");
+ marker= BKE_tracking_ensure_marker(track, sc->user.framenr);
+
data->area= area;
data->track= track;
@@ -1705,15 +1708,15 @@
if(marker && (marker->flag&MARKER_DISABLED)==0) {
if(sc->flag&SC_SHOW_MARKER_SEARCH) {
if(mouse_on_corner(sc, track, 15.0f, co, 1, marker->pos, track->search_min, track->search_max, width, height))
- op->customdata= create_slide_marker_data(track, marker, event, TRACK_AREA_POINT, width, height);
+ op->customdata= create_slide_marker_data(sc, track, marker, event, TRACK_AREA_POINT, width, height);
if(mouse_on_corner(sc, track, 15.0f, co, 0, marker->pos, track->search_min, track->search_max, width, height))
- op->customdata= create_slide_marker_data(track, marker, event, TRACK_AREA_SEARCH, width, height);
+ op->customdata= create_slide_marker_data(sc, track, marker, event, TRACK_AREA_SEARCH, width, height);
}
if(sc->flag&SC_SHOW_MARKER_PATTERN)
if(mouse_on_corner(sc, track, 10.0f, co, 0, marker->pos, track->pat_min, track->pat_max, width, height))
- op->customdata= create_slide_marker_data(track, marker, event, TRACK_AREA_PAT, width, height);
+ op->customdata= create_slide_marker_data(sc, track, marker, event, TRACK_AREA_PAT, width, height);
if(op->customdata) {
WM_event_add_modal_handler(C, op);
Modified: branches/soc-2011-tomato/source/blender/makesdna/DNA_movieclip_types.h
===================================================================
--- branches/soc-2011-tomato/source/blender/makesdna/DNA_movieclip_types.h 2011-07-19 08:31:53 UTC (rev 38506)
+++ branches/soc-2011-tomato/source/blender/makesdna/DNA_movieclip_types.h 2011-07-19 10:40:22 UTC (rev 38507)
@@ -42,6 +42,8 @@
struct anim;
struct ImBuf;
+struct MovieTrackingTrack;
+struct MovieTrackingMarker;
typedef struct MovieClipUser {
int framenr; /* current frame number */
@@ -76,9 +78,10 @@
struct ImBuf *track_preview; /* ImBuf displayed in track preview */
float track_pos[2]; /* sub-pizel position of marker in track ImBuf */
short track_disabled; /* active track is disabled, special notifier should be drawn */
- char pad[6];
- float *marker_pos; /* original marker position. used for sliding from preview */
- int *marker_flag; /* original marker flags. used for sliding from preview */
+ char pad[2];
+ int framenr; /* frame number scopes are created for */
+ struct MovieTrackingTrack *track; /* track scopes are created for */
+ struct MovieTrackingMarker *marker; /* marker scopes are created for */
float slide_scale[2]; /* scale used for sliding from previewe area */
} MovieClipScopes;
More information about the Bf-blender-cvs
mailing list