NDOF: make camera view/pan behavior optional
User request since adding this option in:
51975b89ed
When disabled, use the previous behavior when orbiting a camera view.
This commit is contained in:
parent
3429444905
commit
391c3848b1
|
@ -144,7 +144,7 @@ const UserDef U_default = {
|
|||
* so invert this by default, see: T67579. */
|
||||
NDOF_ROTX_INVERT_AXIS | NDOF_ROTY_INVERT_AXIS | NDOF_ROTZ_INVERT_AXIS |
|
||||
NDOF_PANX_INVERT_AXIS | NDOF_PANY_INVERT_AXIS | NDOF_PANZ_INVERT_AXIS |
|
||||
NDOF_ZOOM_INVERT),
|
||||
NDOF_ZOOM_INVERT | NDOF_CAMERA_PAN_ZOOM),
|
||||
.image_draw_method = IMAGE_DRAW_METHOD_AUTO,
|
||||
.glalphaclip = 0.004,
|
||||
.autokey_mode = (AUTOKEY_MODE_NORMAL & ~AUTOKEY_ON),
|
||||
|
|
|
@ -1718,6 +1718,7 @@ class USERPREF_PT_ndof_settings(Panel):
|
|||
if show_3dview_settings:
|
||||
col.prop(props, "ndof_show_guide")
|
||||
col.prop(props, "ndof_zoom_invert")
|
||||
col.prop(props, "ndof_lock_camera_pan_zoom")
|
||||
row = col.row(heading="Pan")
|
||||
row.prop(props, "ndof_pan_yz_swap_axis", text="Swap Y and Z Axes")
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ extern "C" {
|
|||
* version. Older Blender versions will test this and show a warning if the file
|
||||
* was written with too new a version. */
|
||||
#define BLENDER_FILE_MIN_VERSION 300
|
||||
#define BLENDER_FILE_MIN_SUBVERSION 42
|
||||
#define BLENDER_FILE_MIN_SUBVERSION 43
|
||||
|
||||
/** User readable version string. */
|
||||
const char *BKE_blender_version_string(void);
|
||||
|
|
|
@ -948,6 +948,10 @@ void blo_do_versions_userdef(UserDef *userdef)
|
|||
}
|
||||
}
|
||||
|
||||
if (!USER_VERSION_ATLEAST(300, 43)) {
|
||||
userdef->ndof_flag |= NDOF_CAMERA_PAN_ZOOM;
|
||||
}
|
||||
|
||||
/**
|
||||
* Versioning code until next subversion bump goes here.
|
||||
*
|
||||
|
|
|
@ -500,9 +500,11 @@ static int ndof_orbit_zoom_invoke(bContext *C, wmOperator *op, const wmEvent *ev
|
|||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
const int camera_retval = view3d_ndof_cameraview_pan_zoom(C, event);
|
||||
if (camera_retval != OPERATOR_PASS_THROUGH) {
|
||||
return camera_retval;
|
||||
if (U.ndof_flag & NDOF_CAMERA_PAN_ZOOM) {
|
||||
const int camera_retval = view3d_ndof_cameraview_pan_zoom(C, event);
|
||||
if (camera_retval != OPERATOR_PASS_THROUGH) {
|
||||
return camera_retval;
|
||||
}
|
||||
}
|
||||
|
||||
const Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C);
|
||||
|
@ -619,9 +621,11 @@ static int ndof_pan_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *e
|
|||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
const int camera_retval = view3d_ndof_cameraview_pan_zoom(C, event);
|
||||
if (camera_retval != OPERATOR_PASS_THROUGH) {
|
||||
return camera_retval;
|
||||
if (U.ndof_flag & NDOF_CAMERA_PAN_ZOOM) {
|
||||
const int camera_retval = view3d_ndof_cameraview_pan_zoom(C, event);
|
||||
if (camera_retval != OPERATOR_PASS_THROUGH) {
|
||||
return camera_retval;
|
||||
}
|
||||
}
|
||||
|
||||
const Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C);
|
||||
|
|
|
@ -1318,6 +1318,7 @@ typedef enum eNdof_Flag {
|
|||
NDOF_PANY_INVERT_AXIS = (1 << 13),
|
||||
NDOF_PANZ_INVERT_AXIS = (1 << 14),
|
||||
NDOF_TURNTABLE = (1 << 15),
|
||||
NDOF_CAMERA_PAN_ZOOM = (1 << 16),
|
||||
} eNdof_Flag;
|
||||
|
||||
#define NDOF_PIXELS_PER_SECOND 600.0f
|
||||
|
|
|
@ -6040,6 +6040,13 @@ static void rna_def_userdef_input(BlenderRNA *brna)
|
|||
"Helicopter Mode",
|
||||
"Device up/down directly controls the Z position of the 3D viewport");
|
||||
|
||||
prop = RNA_def_property(srna, "ndof_lock_camera_pan_zoom", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_CAMERA_PAN_ZOOM);
|
||||
RNA_def_property_ui_text(
|
||||
prop,
|
||||
"Lock Camera Pan/Zoom",
|
||||
"Pan/zoom the camera view instead of leaving the camera view when orbiting");
|
||||
|
||||
/* let Python know whether NDOF is enabled */
|
||||
prop = RNA_def_boolean(srna, "use_ndof", true, "", "");
|
||||
# else
|
||||
|
|
Loading…
Reference in New Issue