[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23648] trunk/blender/source/blender/ editors/space_view3d: * Added 'set object as camera' operator

Matt Ebb matt at mke3.net
Tue Oct 6 04:45:44 CEST 2009


Revision: 23648
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23648
Author:   broken
Date:     2009-10-06 04:45:42 +0200 (Tue, 06 Oct 2009)

Log Message:
-----------
* Added 'set object as camera' operator
3D View: View -> Cameras -> Set Object as Camera  (Ctrl Numpad 0)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
    trunk/blender/source/blender/editors/space_view3d/view3d_ops.c
    trunk/blender/source/blender/editors/space_view3d/view3d_view.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2009-10-06 01:58:22 UTC (rev 23647)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_intern.h	2009-10-06 02:45:42 UTC (rev 23648)
@@ -122,6 +122,7 @@
 /* view3d_view.c */
 void VIEW3D_OT_smoothview(struct wmOperatorType *ot);
 void VIEW3D_OT_setcameratoview(struct wmOperatorType *ot);
+void VIEW3D_OT_setobjectascamera(struct wmOperatorType *ot);
 void VIEW3D_OT_localview(struct wmOperatorType *ot);
 void VIEW3D_OT_game_start(struct wmOperatorType *ot);
 void VIEW3D_OT_fly(struct wmOperatorType *ot);

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_ops.c	2009-10-06 01:58:22 UTC (rev 23647)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_ops.c	2009-10-06 02:45:42 UTC (rev 23648)
@@ -82,6 +82,7 @@
 	WM_operatortype_append(VIEW3D_OT_cursor3d);
 	WM_operatortype_append(VIEW3D_OT_select_lasso);
 	WM_operatortype_append(VIEW3D_OT_setcameratoview);
+	WM_operatortype_append(VIEW3D_OT_setobjectascamera);
 	WM_operatortype_append(VIEW3D_OT_drawtype);
 	WM_operatortype_append(VIEW3D_OT_localview);
 	WM_operatortype_append(VIEW3D_OT_game_start);
@@ -216,6 +217,7 @@
 	WM_keymap_add_item(keymap, "VIEW3D_OT_render_border", BKEY, KM_PRESS, KM_SHIFT, 0);
 	
 	WM_keymap_add_item(keymap, "VIEW3D_OT_camera_to_view", PAD0, KM_PRESS, KM_ALT|KM_CTRL, 0);
+	WM_keymap_add_item(keymap, "VIEW3D_OT_object_as_camera", PAD0, KM_PRESS, KM_CTRL, 0);
 	
 	WM_keymap_add_item(keymap, "VIEW3D_OT_snap_menu", SKEY, KM_PRESS, KM_SHIFT, 0);
 

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_view.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_view.c	2009-10-06 01:58:22 UTC (rev 23647)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_view.c	2009-10-06 02:45:42 UTC (rev 23648)
@@ -434,6 +434,38 @@
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 }
 
+static int view3d_setobjectascamera_exec(bContext *C, wmOperator *op)
+{
+	View3D *v3d = CTX_wm_view3d(C);
+	RegionView3D *rv3d= CTX_wm_region_view3d(C);
+	Scene *scene= CTX_data_scene(C);
+	
+	if(BASACT) {
+		rv3d->persp= V3D_CAMOB;
+		v3d->camera= OBACT;
+		smooth_view(C, NULL, v3d->camera, rv3d->ofs, rv3d->viewquat, &rv3d->dist, &v3d->lens);
+	}
+	
+	WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, CTX_data_scene(C));
+	
+	return OPERATOR_FINISHED;
+}
+
+void VIEW3D_OT_setobjectascamera(wmOperatorType *ot)
+{
+	
+	/* identifiers */
+	ot->name= "Set Active Object as Camera";
+	ot->description= "Set the active object as the active camera for this view or scene.";
+	ot->idname= "VIEW3D_OT_object_as_camera";
+	
+	/* api callbacks */
+	ot->exec= view3d_setobjectascamera_exec;	
+	ot->poll= ED_operator_view3d_active;
+	
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
 /* ********************************** */
 
 /* create intersection coordinates in view Z direction at mouse coordinates */





More information about the Bf-blender-cvs mailing list