[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41414] branches/soc-2011-tomato/source/ blender: Camera tracking integration
Sergey Sharybin
g.ulairi at gmail.com
Mon Oct 31 15:01:40 CET 2011
Revision: 41414
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41414
Author: nazgul
Date: 2011-10-31 14:01:40 +0000 (Mon, 31 Oct 2011)
Log Message:
-----------
Camera tracking integration
===========================
- Changed 3D viewport reconstruction settings to more usable defaults
- Some code clean-up
- Option to place markers for detected features across the whole frame,
inside grease pencil areas or outside of grease pencil areas.
Modified Paths:
--------------
branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_graph_draw.c
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_intern.h
branches/soc-2011-tomato/source/blender/editors/space_clip/space_clip.c
branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c
branches/soc-2011-tomato/source/blender/editors/space_view3d/space_view3d.c
Modified: branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h 2011-10-31 13:18:14 UTC (rev 41413)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h 2011-10-31 14:01:40 UTC (rev 41414)
@@ -87,10 +87,12 @@
void BKE_tracking_invert_intrinsics(struct MovieTracking *tracking, float co[2], float nco[2]);
void BKE_tracking_detect_fast(struct MovieTracking *tracking, struct ImBuf *imbuf,
- int framenr, int margin, int min_trackness, int min_distance, struct bGPDlayer *layer);
+ int framenr, int margin, int min_trackness, int min_distance, struct bGPDlayer *layer,
+ int place_outside_layer);
void BKE_tracking_detect_moravec(struct MovieTracking *tracking, struct ImBuf *imbuf,
- int framenr, int margin, int count, int min_distance, struct bGPDlayer *layer);
+ int framenr, int margin, int count, int min_distance, struct bGPDlayer *layer,
+ int place_outside_layer);
struct MovieTrackingTrack *BKE_tracking_indexed_bundle(struct MovieTracking *tracking, int bundlenr);
Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c 2011-10-31 13:18:14 UTC (rev 41413)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c 2011-10-31 14:01:40 UTC (rev 41414)
@@ -1609,7 +1609,7 @@
}
static void retrieve_libmv_features(MovieTracking *tracking, struct libmv_Features *features,
- int framenr, int width, int height, bGPDlayer *layer)
+ int framenr, int width, int height, bGPDlayer *layer, int place_outside_layer)
{
#ifdef WITH_LIBMV
int a;
@@ -1627,7 +1627,7 @@
yu= y/height;
if(layer)
- ok= point_in_layer(layer, xu, yu);
+ ok= point_in_layer(layer, xu, yu)!=place_outside_layer;
if(ok) {
track= BKE_tracking_add_track(tracking, xu, yu, framenr, width, height);
@@ -1640,7 +1640,8 @@
}
void BKE_tracking_detect_fast(MovieTracking *tracking, ImBuf *ibuf,
- int framenr, int margin, int min_trackness, int min_distance, bGPDlayer *layer)
+ int framenr, int margin, int min_trackness, int min_distance, bGPDlayer *layer,
+ int place_outside_layer)
{
#ifdef WITH_LIBMV
struct libmv_Features *features;
@@ -1650,14 +1651,14 @@
MEM_freeN(pixels);
- retrieve_libmv_features(tracking, features, framenr, ibuf->x, ibuf->y, layer);
+ retrieve_libmv_features(tracking, features, framenr, ibuf->x, ibuf->y, layer, place_outside_layer);
libmv_destroyFeatures(features);
#endif
}
void BKE_tracking_detect_moravec(MovieTracking *tracking, ImBuf *ibuf,
- int framenr, int margin, int count, int min_distance, bGPDlayer *layer)
+ int framenr, int margin, int count, int min_distance, bGPDlayer *layer, int place_outside_layer)
{
#ifdef WITH_LIBMV
struct libmv_Features *features;
@@ -1667,7 +1668,7 @@
MEM_freeN(pixels);
- retrieve_libmv_features(tracking, features, framenr, ibuf->x, ibuf->y, layer);
+ retrieve_libmv_features(tracking, features, framenr, ibuf->x, ibuf->y, layer, place_outside_layer);
libmv_destroyFeatures(features);
#endif
Modified: branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c 2011-10-31 13:18:14 UTC (rev 41413)
+++ branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c 2011-10-31 14:01:40 UTC (rev 41414)
@@ -12343,12 +12343,12 @@
if(sl->spacetype==SPACE_VIEW3D) {
View3D *v3d= (View3D *)sl;
if(v3d->bundle_size==0.0f) {
- v3d->bundle_size= 0.1f;
+ v3d->bundle_size= 0.2f;
v3d->flag2 |= V3D_SHOW_RECONSTRUCTION;
}
if(v3d->bundle_drawtype==0)
- v3d->bundle_drawtype= OB_EMPTY_SPHERE;
+ v3d->bundle_drawtype= OB_PLAINAXES;
}
else if(sl->spacetype==SPACE_CLIP) {
SpaceClip *sc= (SpaceClip *)sl;
Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c 2011-10-31 13:18:14 UTC (rev 41413)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c 2011-10-31 14:01:40 UTC (rev 41414)
@@ -71,15 +71,32 @@
/*********************** main area drawing *************************/
-static void draw_movieclip_cache(SpaceClip *sc, ARegion *ar, MovieClip *clip, Scene *scene)
+void clip_draw_curfra_label(SpaceClip *sc, float x, float y)
{
- float x;
- int *points, totseg, i, a;
- float sfra= SFRA, efra= EFRA, framelen= ar->winx/(efra-sfra+1), fontsize, fontwidth;
uiStyle *style= UI_GetStyle();
int fontid= style->widget.uifont_id;
char str[32];
+ float fontsize, fontwidth;
+ /* frame number */
+ BLF_size(fontid, 11.0f, U.dpi);
+ BLI_snprintf(str, sizeof(str), "%d", sc->user.framenr);
+ fontsize= BLF_height(fontid, str);
+ fontwidth= BLF_width(fontid, str);
+
+ glRecti(x, y, x+fontwidth+6, y+fontsize+4);
+
+ UI_ThemeColor(TH_TEXT);
+ BLF_position(fontid, x+2.0f, y+2.0f, 0.0f);
+ BLF_draw(fontid, str, strlen(str));
+}
+
+static void draw_movieclip_cache(SpaceClip *sc, ARegion *ar, MovieClip *clip, Scene *scene)
+{
+ float x;
+ int *points, totseg, i, a;
+ float sfra= SFRA, efra= EFRA, framelen= ar->winx/(efra-sfra+1);
+
glEnable(GL_BLEND);
/* cache background */
@@ -169,17 +186,7 @@
UI_ThemeColor(TH_CFRAME);
glRecti(x, 0, x+framelen, 8);
- /* frame number */
- BLF_size(fontid, 11.0f, U.dpi);
- BLI_snprintf(str, sizeof(str), "%d", sc->user.framenr);
- fontsize= BLF_height(fontid, str);
- fontwidth= BLF_width(fontid, str);
-
- glRecti(x, 8, x+fontwidth+6, 12+fontsize);
-
- UI_ThemeColor(TH_TEXT);
- BLF_position(fontid, x+2.0f, 10.0f, 0.0f);
- BLF_draw(fontid, str, strlen(str));
+ clip_draw_curfra_label(sc, x, 8.0f);
}
static void draw_movieclip_notes(SpaceClip *sc, ARegion *ar)
@@ -1240,7 +1247,7 @@
glPopMatrix();
}
-void draw_clip_main(SpaceClip *sc, ARegion *ar, Scene *scene)
+void clip_draw_main(SpaceClip *sc, ARegion *ar, Scene *scene)
{
MovieClip *clip= ED_space_clip(sc);
ImBuf *ibuf;
@@ -1288,7 +1295,7 @@
}
/* draw grease pencil */
-void draw_clip_grease_pencil(bContext *C, int onlyv2d)
+void clip_draw_grease_pencil(bContext *C, int onlyv2d)
{
SpaceClip *sc= CTX_wm_space_clip(C);
MovieClip *clip= ED_space_clip(sc);
Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/clip_graph_draw.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_graph_draw.c 2011-10-31 13:18:14 UTC (rev 41413)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_graph_draw.c 2011-10-31 14:01:40 UTC (rev 41414)
@@ -89,11 +89,7 @@
static void draw_graph_cfra(SpaceClip *sc, ARegion *ar, Scene *scene)
{
View2D *v2d= &ar->v2d;
- uiStyle *style= UI_GetStyle();
- int fontid= style->widget.uifont_id, fontsize;
- float xscale, yscale, x, y;
- char str[32];
- short slen;
+ float xscale, yscale;
float vec[2];
/* Draw a light green line to indicate current frame */
@@ -118,24 +114,8 @@
UI_view2d_getscale(v2d, &xscale, &yscale);
glScalef(1.0f/xscale, 1.0f, 1.0f);
- BLI_snprintf(str, sizeof(str), " %d", sc->user.framenr);
- BLF_size(fontid, 11.0f, U.dpi);
- slen= BLF_width(fontid, str);
- fontsize= BLF_height(fontid, str);
+ clip_draw_curfra_label(sc, (float)sc->user.framenr * xscale, 18);
- /* get starting coordinates for drawing */
- x= (float)sc->user.framenr * xscale;
- y= 18;
-
- /* draw green box around/behind text */
- UI_ThemeColorShade(TH_CFRAME, 0);
- glRectf(x, y, x+slen, y+fontsize+4);
-
- /* draw current frame number - black text */
- UI_ThemeColor(TH_TEXT);
- BLF_position(fontid, x-5, y+2, 0.0f);
- BLF_draw(fontid, str, strlen(str));
-
/* restore view transform */
glScalef(xscale, 1.0, 1.0);
}
@@ -193,7 +173,7 @@
}
}
-static void draw_clip_tracks_curves(View2D *v2d, SpaceClip *sc)
+static void draw_tracks_curves(View2D *v2d, SpaceClip *sc)
{
MovieClip *clip= ED_space_clip(sc);
MovieTracking *tracking= &clip->tracking;
@@ -222,7 +202,7 @@
clip_graph_tracking_values_iterate(sc, &userdata, tracking_segment_knot_cb, NULL, NULL);
}
-static void draw_clip_frame_curves(SpaceClip *sc)
+static void draw_frame_curves(SpaceClip *sc)
{
MovieClip *clip= ED_space_clip(sc);
MovieTracking *tracking= &clip->tracking;
@@ -253,7 +233,7 @@
glEnd();
}
-void draw_clip_graph(SpaceClip *sc, ARegion *ar, Scene *scene)
+void clip_draw_graph(SpaceClip *sc, ARegion *ar, Scene *scene)
{
View2D *v2d= &ar->v2d;
View2DGrid *grid;
@@ -265,10 +245,10 @@
UI_view2d_grid_free(grid);
if(sc->flag&SC_SHOW_GRAPH_TRACKS)
- draw_clip_tracks_curves(v2d, sc);
+ draw_tracks_curves(v2d, sc);
if(sc->flag&SC_SHOW_GRAPH_FRAMES)
- draw_clip_frame_curves(sc);
+ draw_frame_curves(sc);
/* current frame */
draw_graph_cfra(sc, ar, scene);
Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/clip_intern.h
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_intern.h 2011-10-31 13:18:14 UTC (rev 41413)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_intern.h 2011-10-31 14:01:40 UTC (rev 41414)
@@ -47,11 +47,12 @@
void ED_clip_buttons_register(struct ARegionType *art);
/* clip_draw.c */
-void draw_clip_main(struct SpaceClip *sc, struct ARegion *ar, struct Scene *scene);
-void draw_clip_grease_pencil(struct bContext *C, int onlyv2d);
+void clip_draw_main(struct SpaceClip *sc, struct ARegion *ar, struct Scene *scene);
+void clip_draw_grease_pencil(struct bContext *C, int onlyv2d);
+void clip_draw_curfra_label(struct SpaceClip *sc, float x, float y);
/* clip_graph_draw.c */
-void draw_clip_graph(struct SpaceClip *sc, struct ARegion *ar, struct Scene *scene);
+void clip_draw_graph(struct SpaceClip *sc, struct ARegion *ar, struct Scene *scene);
/* clip_graph_ops.c */
void CLIP_OT_graph_select(struct wmOperatorType *ot);
@@ -61,7 +62,6 @@
/* clip_ops.c */
void CLIP_OT_open(struct wmOperatorType *ot);
void CLIP_OT_reload(struct wmOperatorType *ot);
-// void CLIP_OT_unlink(struct wmOperatorType *ot);
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list