* Added 'set object as camera' operator
3D View: View -> Cameras -> Set Object as Camera (Ctrl Numpad 0)
This commit is contained in:
@@ -122,6 +122,7 @@ void VIEW3D_OT_select_lasso(struct wmOperatorType *ot);
|
||||
/* 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);
|
||||
|
||||
@@ -82,6 +82,7 @@ void view3d_operatortypes(void)
|
||||
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 @@ void view3d_keymap(wmWindowManager *wm)
|
||||
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);
|
||||
|
||||
|
||||
@@ -434,6 +434,38 @@ void VIEW3D_OT_setcameratoview(wmOperatorType *ot)
|
||||
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 */
|
||||
|
||||
Reference in New Issue
Block a user