forked from bartvdbraak/blender
Fix for [#20159] Orthographic camera + viewport
Patch provided by Aurel W. Thanks!
This commit is contained in:
parent
a94a2c8c72
commit
f888903eaf
@ -1628,36 +1628,43 @@ static int viewnumpad_exec(bContext *C, wmOperator *op)
|
||||
RegionView3D *rv3d= CTX_wm_region_view3d(C);
|
||||
Scene *scene= CTX_data_scene(C);
|
||||
static int perspo=RV3D_PERSP;
|
||||
int viewnum, align_active;
|
||||
int viewnum, align_active, nextperspo;
|
||||
|
||||
viewnum = RNA_enum_get(op->ptr, "type");
|
||||
align_active = RNA_boolean_get(op->ptr, "align_active");
|
||||
|
||||
|
||||
/* Use this to test if we started out with a camera */
|
||||
|
||||
if (rv3d->persp == RV3D_CAMOB) {
|
||||
nextperspo= rv3d->lpersp;
|
||||
} else {
|
||||
nextperspo= perspo;
|
||||
}
|
||||
|
||||
switch (viewnum) {
|
||||
case RV3D_VIEW_BOTTOM :
|
||||
axis_set_view(C, 0.0, -1.0, 0.0, 0.0, viewnum, perspo, align_active);
|
||||
axis_set_view(C, 0.0, -1.0, 0.0, 0.0, viewnum, nextperspo, align_active);
|
||||
break;
|
||||
|
||||
case RV3D_VIEW_BACK:
|
||||
axis_set_view(C, 0.0, 0.0, (float)-cos(M_PI/4.0), (float)-cos(M_PI/4.0), viewnum, perspo, align_active);
|
||||
axis_set_view(C, 0.0, 0.0, (float)-cos(M_PI/4.0), (float)-cos(M_PI/4.0), viewnum, nextperspo, align_active);
|
||||
break;
|
||||
|
||||
case RV3D_VIEW_LEFT:
|
||||
axis_set_view(C, 0.5, -0.5, 0.5, 0.5, viewnum, perspo, align_active);
|
||||
axis_set_view(C, 0.5, -0.5, 0.5, 0.5, viewnum, nextperspo, align_active);
|
||||
break;
|
||||
|
||||
case RV3D_VIEW_TOP:
|
||||
axis_set_view(C, 1.0, 0.0, 0.0, 0.0, viewnum, perspo, align_active);
|
||||
axis_set_view(C, 1.0, 0.0, 0.0, 0.0, viewnum, nextperspo, align_active);
|
||||
break;
|
||||
|
||||
case RV3D_VIEW_FRONT:
|
||||
axis_set_view(C, (float)cos(M_PI/4.0), (float)-sin(M_PI/4.0), 0.0, 0.0, viewnum, perspo, align_active);
|
||||
axis_set_view(C, (float)cos(M_PI/4.0), (float)-sin(M_PI/4.0), 0.0, 0.0, viewnum, nextperspo, align_active);
|
||||
break;
|
||||
|
||||
case RV3D_VIEW_RIGHT:
|
||||
axis_set_view(C, 0.5, -0.5, -0.5, -0.5, viewnum, perspo, align_active);
|
||||
axis_set_view(C, 0.5, -0.5, -0.5, -0.5, viewnum, nextperspo, align_active);
|
||||
break;
|
||||
|
||||
case RV3D_VIEW_CAMERA:
|
||||
|
Loading…
Reference in New Issue
Block a user