mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-05-11 05:29:10 +08:00
#3791 - Linear zoom for 3DConnexion devices
This commit is contained in:
parent
a6a9ab9dc7
commit
1d337b0e24
@ -134,9 +134,9 @@ bool Mouse3DController::State::apply(const Mouse3DController::Params ¶ms, Ca
|
|||||||
const Vec3d& translation = input_queue_item.vector;
|
const Vec3d& translation = input_queue_item.vector;
|
||||||
double zoom_factor = camera.min_zoom() / camera.get_zoom();
|
double zoom_factor = camera.min_zoom() / camera.get_zoom();
|
||||||
camera.set_target(camera.get_target() + zoom_factor * params.translation.scale * (translation.x() * camera.get_dir_right() + translation.z() * camera.get_dir_up()));
|
camera.set_target(camera.get_target() + zoom_factor * params.translation.scale * (translation.x() * camera.get_dir_right() + translation.z() * camera.get_dir_up()));
|
||||||
if (translation.y() != 0.0)
|
if (translation.y() != 0.0)
|
||||||
camera.update_zoom(params.zoom.scale * translation.y() / std::abs(translation.y()));
|
camera.update_zoom(params.zoom.scale * translation.y());
|
||||||
} else if (input_queue_item.is_rotation()) {
|
} else if (input_queue_item.is_rotation()) {
|
||||||
Vec3d rot = params.rotation.scale * input_queue_item.vector * (PI / 180.);
|
Vec3d rot = params.rotation.scale * input_queue_item.vector * (PI / 180.);
|
||||||
camera.rotate_local_around_target(Vec3d(rot.x(), - rot.z(), rot.y()));
|
camera.rotate_local_around_target(Vec3d(rot.x(), - rot.z(), rot.y()));
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user