[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38395] branches/soc-2011-tomato: Camera tracking integration
Sergey Sharybin
g.ulairi at gmail.com
Thu Jul 14 16:35:05 CEST 2011
Revision: 38395
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38395
Author: nazgul
Date: 2011-07-14 14:35:04 +0000 (Thu, 14 Jul 2011)
Log Message:
-----------
Camera tracking integration
===========================
- Tracking camera presets.
- Reset principal to image center operator.
Things to think about:
- Unified presets for tracking camera and blender camera.
- If prinipal should be a part of preset.
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_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
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-14 13:36:15 UTC (rev 38394)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_operators/presets.py 2011-07-14 14:35:04 UTC (rev 38395)
@@ -277,6 +277,28 @@
preset_subdir = "interaction"
+class AddPresetTrackingCamera(AddPresetBase, bpy.types.Operator):
+ '''Add a Tracking Camera Intrinsics Preset'''
+ bl_idname = "clip.camera_preset_add"
+ bl_label = "Add Camera Preset"
+ preset_menu = "CLIP_MT_camera_presets"
+
+ preset_defines = [
+ "camera = bpy.context.edit_movieclip.tracking.camera"
+ ]
+
+ preset_values = [
+ "camera.focal_length",
+ "camera.sensor_width",
+ "camera.units",
+ "camera.k1",
+ "camera.k2",
+ "camera.k3"
+ ]
+
+ preset_subdir = "tracking_camera"
+
+
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-14 13:36:15 UTC (rev 38394)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py 2011-07-14 14:35:04 UTC (rev 38395)
@@ -266,6 +266,11 @@
sc = context.space_data
clip = sc.clip
+ row = layout.row(align=True)
+ row.menu('CLIP_MT_camera_presets')
+ row.operator("clip.camera_preset_add", text="", icon="ZOOMIN")
+ row.operator("clip.camera_preset_add", text="", icon="ZOOMOUT").remove_active = True
+
layout.prop(clip.tracking.camera, "sensor_width")
row = layout.row(align=True)
@@ -273,10 +278,14 @@
sub.prop(clip.tracking.camera, "focal_length")
sub.prop(clip.tracking.camera, "units", text="")
- layout.label(text="Principal Point")
- layout.prop(clip.tracking.camera, "principal", text="")
+ col = layout.column()
+ col.label(text="Principal Point")
+ row = col.row()
+ row.prop(clip.tracking.camera, "principal", text="")
+ col.operator("clip.set_center_principal", text="Center")
col = layout.column(align=True)
+ col.label(text="Undistortion:")
col.prop(clip.tracking.camera, "k1")
col.prop(clip.tracking.camera, "k2")
col.prop(clip.tracking.camera, "k3")
@@ -489,5 +498,13 @@
layout.operator("clip.hide_tracks")
layout.operator("clip.hide_tracks_clear", text="Show Tracks")
+
+class CLIP_MT_camera_presets(bpy.types.Menu):
+ bl_label = "Camera Presets"
+ preset_subdir = "tracking_camera"
+ 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_intern.h
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_intern.h 2011-07-14 13:36:15 UTC (rev 38394)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_intern.h 2011-07-14 14:35:04 UTC (rev 38395)
@@ -82,6 +82,8 @@
void CLIP_OT_set_axis(struct wmOperatorType *ot);
void CLIP_OT_set_scale(struct wmOperatorType *ot);
+void CLIP_OT_set_center_principal(struct wmOperatorType *ot);
+
void CLIP_OT_slide_marker(struct wmOperatorType *ot);
/* clip_draw.c */
Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/space_clip.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/space_clip.c 2011-07-14 13:36:15 UTC (rev 38394)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/space_clip.c 2011-07-14 14:35:04 UTC (rev 38395)
@@ -218,6 +218,8 @@
WM_operatortype_append(CLIP_OT_set_axis);
WM_operatortype_append(CLIP_OT_set_scale);
+ WM_operatortype_append(CLIP_OT_set_center_principal);
+
WM_operatortype_append(CLIP_OT_clear_track_path);
WM_operatortype_append(CLIP_OT_slide_marker);
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-14 13:36:15 UTC (rev 38394)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c 2011-07-14 14:35:04 UTC (rev 38395)
@@ -1580,6 +1580,41 @@
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
+/********************** set principal center operator *********************/
+
+static int set_center_principal_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceClip *sc= CTX_wm_space_clip(C);
+ MovieClip *clip= ED_space_clip(sc);
+ int width, height;
+
+ BKE_movieclip_acquire_size(clip, &sc->user, &width, &height);
+
+ if(width==0 || height==0)
+ return OPERATOR_CANCELLED;
+
+ clip->tracking.camera.principal[0]= ((float)width)/2.0f;
+ clip->tracking.camera.principal[1]= ((float)height)/2.0f;
+
+ WM_event_add_notifier(C, NC_MOVIECLIP|NA_EDITED, clip);
+
+ return OPERATOR_FINISHED;
+}
+
+void CLIP_OT_set_center_principal(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Set Principal to Center";
+ ot->description= "Set principal point to center of footage";
+ ot->idname= "CLIP_OT_set_center_principal";
+
+ /* api callbacks */
+ ot->exec= set_center_principal_exec;
+ ot->poll= space_clip_tracking_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
/********************** slide marker opertaotr *********************/
typedef struct {
More information about the Bf-blender-cvs
mailing list