[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38542] branches/soc-2011-tomato: Camera tracking integration
Sergey Sharybin
g.ulairi at gmail.com
Wed Jul 20 17:02:49 CEST 2011
Revision: 38542
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38542
Author: nazgul
Date: 2011-07-20 15:02:49 +0000 (Wed, 20 Jul 2011)
Log Message:
-----------
Camera tracking integration
===========================
Test feature: configurable marker colors in Clip Editor.
Use presets, so plenty of different color could be defined and
easily re-used.
Modified Paths:
--------------
branches/soc-2011-tomato/release/scripts/startup/bl_operators/presets.py
branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py
branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c
branches/soc-2011-tomato/source/blender/makesdna/DNA_tracking_types.h
branches/soc-2011-tomato/source/blender/makesrna/intern/rna_tracking.c
Added Paths:
-----------
branches/soc-2011-tomato/release/scripts/presets/tracking_track_color/
branches/soc-2011-tomato/release/scripts/presets/tracking_track_color/default.py
branches/soc-2011-tomato/release/scripts/presets/tracking_track_color/far_plane.py
branches/soc-2011-tomato/release/scripts/presets/tracking_track_color/near_plane.py
Added: branches/soc-2011-tomato/release/scripts/presets/tracking_track_color/default.py
===================================================================
--- branches/soc-2011-tomato/release/scripts/presets/tracking_track_color/default.py (rev 0)
+++ branches/soc-2011-tomato/release/scripts/presets/tracking_track_color/default.py 2011-07-20 15:02:49 UTC (rev 38542)
@@ -0,0 +1,5 @@
+import bpy
+track = bpy.context.edit_movieclip.tracking.active_track
+
+track.color = (0.0, 0.0, 0.0)
+track.use_custom_color = False
Added: branches/soc-2011-tomato/release/scripts/presets/tracking_track_color/far_plane.py
===================================================================
--- branches/soc-2011-tomato/release/scripts/presets/tracking_track_color/far_plane.py (rev 0)
+++ branches/soc-2011-tomato/release/scripts/presets/tracking_track_color/far_plane.py 2011-07-20 15:02:49 UTC (rev 38542)
@@ -0,0 +1,5 @@
+import bpy
+track = bpy.context.edit_movieclip.tracking.active_track
+
+track.color = (0.0, 0.0, 1.0)
+track.use_custom_color = True
Added: branches/soc-2011-tomato/release/scripts/presets/tracking_track_color/near_plane.py
===================================================================
--- branches/soc-2011-tomato/release/scripts/presets/tracking_track_color/near_plane.py (rev 0)
+++ branches/soc-2011-tomato/release/scripts/presets/tracking_track_color/near_plane.py 2011-07-20 15:02:49 UTC (rev 38542)
@@ -0,0 +1,5 @@
+import bpy
+track = bpy.context.edit_movieclip.tracking.active_track
+
+track.color = (0.0, 1.0, 0.0)
+track.use_custom_color = True
Modified: branches/soc-2011-tomato/release/scripts/startup/bl_operators/presets.py
===================================================================
--- branches/soc-2011-tomato/release/scripts/startup/bl_operators/presets.py 2011-07-20 14:56:40 UTC (rev 38541)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_operators/presets.py 2011-07-20 15:02:49 UTC (rev 38542)
@@ -318,6 +318,24 @@
preset_subdir = "tracking_camera"
+class AddPresetTrackingTrackColor(AddPresetBase, bpy.types.Operator):
+ '''Add a Clip Track Color Preset'''
+ bl_idname = "clip.track_color_preset_add"
+ bl_label = "Add Track Color Preset"
+ preset_menu = "CLIP_MT_track_color_presets"
+
+ preset_defines = [
+ "track = bpy.context.edit_movieclip.tracking.active_track"
+ ]
+
+ preset_values = [
+ "track.color",
+ "track.use_custom_color"
+ ]
+
+ preset_subdir = "tracking_track_color"
+
+
class AddPresetKeyconfig(AddPresetBase, bpy.types.Operator):
'''Add a Keyconfig Preset'''
bl_idname = "wm.keyconfig_preset_add"
Modified: branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py
===================================================================
--- branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py 2011-07-20 14:56:40 UTC (rev 38541)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py 2011-07-20 15:02:49 UTC (rev 38542)
@@ -214,6 +214,18 @@
layout.prop(act_track, "name")
layout.prop(act_track, "locked")
+ row = layout.row(align=True)
+ label = bpy.types.CLIP_MT_track_color_presets.bl_label
+ row.menu('CLIP_MT_track_color_presets', text=label)
+ row.operator("clip.track_color_preset_add", text="", icon="ZOOMIN")
+ op = row.operator("clip.track_color_preset_add", text="", icon="ZOOMOUT")
+ op.remove_active = True
+
+ row = layout.row()
+ row.prop(act_track, "use_custom_color")
+ if act_track.use_custom_color:
+ row.prop(act_track, "color", text="")
+
layout.template_track(sc, "scopes")
row = layout.row()
@@ -521,5 +533,12 @@
draw = bpy.types.Menu.draw_preset
+class CLIP_MT_track_color_presets(bpy.types.Menu):
+ bl_label = "Color Presets"
+ preset_subdir = "tracking_track_color"
+ preset_operator = "script.execute_preset"
+ draw = bpy.types.Menu.draw_preset
+
+
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
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-07-20 14:56:40 UTC (rev 38541)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c 2011-07-20 15:02:49 UTC (rev 38542)
@@ -320,12 +320,29 @@
if(!tiny) glLineWidth(1.0f);
}
+static void track_colors(MovieTrackingTrack *track, int act, float col[3], float scol[3])
+{
+ if(track->flag&TRACK_CUSTOMCOLOR) {
+ if(act) UI_GetThemeColor3fv(TH_ACT_MARKER, scol);
+ else copy_v3_v3(scol, track->color);
+
+ mul_v3_v3fl(col, track->color, 0.5f);
+ } else {
+ UI_GetThemeColor3fv(TH_MARKER, col);
+
+ if(act) UI_GetThemeColor3fv(TH_ACT_MARKER, scol);
+ else UI_GetThemeColor3fv(TH_SEL_MARKER, scol);
+ }
+}
+
static void draw_marker_areas(SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, int act, int sel)
{
- int color= act?TH_ACT_MARKER:TH_SEL_MARKER;
int tiny= sc->flag&SC_SHOW_TINY_MARKER;
int show_pat= 0;
+ float col[3], scol[3];
+ track_colors(track, act, col, scol);
+
/* marker position */
if((track->flag&SELECT)==sel && (marker->flag&MARKER_DISABLED)==0) {
if(track->flag&TRACK_LOCKED) {
@@ -333,8 +350,8 @@
else if(track->flag&SELECT) UI_ThemeColorShade(TH_LOCK_MARKER, 64);
else UI_ThemeColor(TH_LOCK_MARKER);
} else
- if(track->flag&SELECT) UI_ThemeColor(color);
- else UI_ThemeColor(TH_MARKER);
+ if(track->flag&SELECT) glColor3fv(scol);
+ else glColor3fv(col);
if(!tiny) glPointSize(2.0f);
glBegin(GL_POINTS);
@@ -364,8 +381,8 @@
else if(track->pat_flag&SELECT) UI_ThemeColorShade(TH_DIS_MARKER, 128);
else UI_ThemeColor(TH_DIS_MARKER);
} else {
- if(track->pat_flag&SELECT) UI_ThemeColor(color);
- else UI_ThemeColor(TH_MARKER);
+ if(track->pat_flag&SELECT) glColor3fv(scol);
+ else glColor3fv(col);
}
if(sc->flag&SC_SHOW_MARKER_PATTERN) {
@@ -390,8 +407,8 @@
else if(track->search_flag&SELECT) UI_ThemeColorShade(TH_DIS_MARKER, 128);
else UI_ThemeColor(TH_DIS_MARKER);
} else {
- if(track->search_flag&SELECT) UI_ThemeColor(color);
- else UI_ThemeColor(TH_MARKER);
+ if(track->search_flag&SELECT) glColor3fv(scol);
+ else glColor3fv(col);
}
if(sc->flag&SC_SHOW_MARKER_SEARCH) {
@@ -412,9 +429,9 @@
static void draw_marker_slide_zones(SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, int outline, int act, int width, int height)
{
- int color= act?TH_ACT_MARKER:TH_SEL_MARKER;
float x, y, dx, dy, tdx, tdy;
int tiny= sc->flag&SC_SHOW_TINY_MARKER;
+ float col[3], scol[3];
if((tiny && outline) || (marker->flag&MARKER_DISABLED))
return;
@@ -422,12 +439,14 @@
if(!TRACK_SELECTED(track) || track->flag&TRACK_LOCKED)
return;
+ track_colors(track, act, col, scol);
+
if(outline) {
glLineWidth(3.0f);
UI_ThemeColor(TH_MARKER_OUTLINE);
} else {
- if(track->search_flag&SELECT) UI_ThemeColor(color);
- else UI_ThemeColor(TH_MARKER);
+ if(track->search_flag&SELECT) glColor3fv(scol);
+ else glColor3fv(col);
}
glPushMatrix();
@@ -476,8 +495,8 @@
dy= 10.0f/height/sc->zoom;
if(!outline) {
- if(track->pat_flag&SELECT) UI_ThemeColor(color);
- else UI_ThemeColor(TH_MARKER);
+ if(track->pat_flag&SELECT) glColor3fv(scol);
+ else glColor3fv(col);
}
x= track->pat_max[0];
Modified: branches/soc-2011-tomato/source/blender/makesdna/DNA_tracking_types.h
===================================================================
--- branches/soc-2011-tomato/source/blender/makesdna/DNA_tracking_types.h 2011-07-20 14:56:40 UTC (rev 38541)
+++ branches/soc-2011-tomato/source/blender/makesdna/DNA_tracking_types.h 2011-07-20 15:02:49 UTC (rev 38542)
@@ -96,8 +96,8 @@
/* ** UI editing ** */
int flag, pat_flag, search_flag; /* flags (selection, ...) */
short transflag; /* transform flags */
-
- char pad3[6];
+ char pad3[2];
+ float color[3]; /* custom color for track */
} MovieTrackingTrack;
typedef struct MovieTrackingSettings {
@@ -132,6 +132,7 @@
#define TRACK_DISABLE_BLUE (1<<4)
#define TRACK_HIDDEN (1<<5)
#define TRACK_LOCKED (1<<6)
+#define TRACK_CUSTOMCOLOR (1<<7)
/* MovieTrackingSettings->speed */
#define TRACKING_SPEED_FASTEST 0
Modified: branches/soc-2011-tomato/source/blender/makesrna/intern/rna_tracking.c
===================================================================
--- branches/soc-2011-tomato/source/blender/makesrna/intern/rna_tracking.c 2011-07-20 14:56:40 UTC (rev 38541)
+++ branches/soc-2011-tomato/source/blender/makesrna/intern/rna_tracking.c 2011-07-20 15:02:49 UTC (rev 38542)
@@ -382,6 +382,19 @@
RNA_def_property_boolean_sdna(prop, NULL, "flag", TRACK_LOCKED);
RNA_def_property_ui_text(prop, "Locked", "Track is locked and all changes to it are disabled");
RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, NULL);
+
+ /* custom color */
+ prop= RNA_def_property(srna, "use_custom_color", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", TRACK_CUSTOMCOLOR);
+ RNA_def_property_ui_text(prop, "Custom Color", "Use custom color instead of theme-defined");
+ RNA_def_property_update(prop, NC_MOVIECLIP|ND_DISPLAY, NULL);
+
+ /* color */
+ prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR);
+ RNA_def_property_array(prop, 3);
+ RNA_def_property_range(prop, 0.0f, 1.0f);
+ RNA_def_property_ui_text(prop, "Color", "Color of the track in the Clip Editor");
+ RNA_def_property_update(prop, NC_ANIMATION, NULL);
}
static void rna_def_tracking(BlenderRNA *brna)
More information about the Bf-blender-cvs
mailing list