Am 29.01.2019 um 12:07 schrieb Volker Enderlein:
Hi all,
I implemented a custom camera controller (implementing the
ExaminerViewer camera handling from OpenInventor) and don't know how
to select the linearSpeed and the lookSpeed values dependent on the
size of the scene as my scenegraph can be changed at runtime. I came
up with a solution but it is not working as expected.
auto heightAngle = theCamera->fieldOfView() / 180.0f *
static_cast<float>(M_PI);
auto focalDist = theCamera->viewVector().length();
auto height = 2.0f * focalDist * std::tan(heightAngle / 2.0f);
height = height < 1.0f ? 1.0f : height;
auto width = height / theCamera->aspectRatio();
// NDC (left, right, bottom, top) (-1, 1, -1, 1)
// MagnificationFactor: max(height, width)/linearSpeed()
auto linearSpeedMagnificationFactor = std::max(height,
width)/linearSpeed();
Are there any examples/experiences implementing custom camera
controllers?
Thanks in advance,
Cheers, Volker
Nevermind, I figured out how to do pixel exact displacement without
using the linearSpeed or lookSpeed.
Cheers, Volker
--
_______________________________________________
Interest mailing list
[email protected]
https://lists.qt-project.org/listinfo/interest