10
10
#include < limits>
11
11
// tsd
12
12
#include " ../tsd_ui.h"
13
+ #include " tsd/view/ManipulatorToAnari.hpp"
13
14
14
15
namespace tsd_viewer {
15
16
16
- Viewport::Viewport (AppCore *core, tsd::manipulators::Orbit *m, const char *name)
17
+ Viewport::Viewport (
18
+ AppCore *core, tsd::manipulators::Manipulator *m, const char *name)
17
19
: Window(core, name)
18
20
{
19
21
setManipulator (m);
@@ -69,7 +71,7 @@ void Viewport::buildUI()
69
71
m_anariPass->setEnableIDs (m_core->objectIsSelected ());
70
72
}
71
73
72
- void Viewport::setManipulator (tsd::manipulators::Orbit *m)
74
+ void Viewport::setManipulator (tsd::manipulators::Manipulator *m)
73
75
{
74
76
m_arcball = m ? m : &m_localArcball;
75
77
}
@@ -276,7 +278,7 @@ void Viewport::loadSettings(tsd::serialization::DataNode &root)
276
278
camera[" azel" ].getValue (ANARI_FLOAT32_VEC2, &azel);
277
279
camera[" up" ].getValue (ANARI_INT32, &axis);
278
280
279
- m_arcball->setAxis (tsd::manipulators::OrbitAxis (axis));
281
+ m_arcball->setAxis (tsd::manipulators::UpAxis (axis));
280
282
m_arcball->setConfig (at, distance, azel);
281
283
}
282
284
@@ -524,9 +526,8 @@ void Viewport::updateCamera(bool force)
524
526
525
527
// perspective camera //
526
528
527
- anari::setParameter (m_device, m_perspCamera, " position" , m_arcball->eye ());
528
- anari::setParameter (m_device, m_perspCamera, " direction" , m_arcball->dir ());
529
- anari::setParameter (m_device, m_perspCamera, " up" , m_arcball->up ());
529
+ tsd::manipulators::updateCameraParametersPerspective (
530
+ m_device, m_perspCamera, *m_arcball);
530
531
anari::setParameter (m_device,
531
532
m_perspCamera,
532
533
" aspect" ,
@@ -542,12 +543,8 @@ void Viewport::updateCamera(bool force)
542
543
// orthographic camera //
543
544
544
545
if (m_orthoCamera) {
545
- anari::setParameter (
546
- m_device, m_orthoCamera, " position" , m_arcball->eye_FixedDistance ());
547
- anari::setParameter (m_device, m_orthoCamera, " direction" , m_arcball->dir ());
548
- anari::setParameter (m_device, m_orthoCamera, " up" , m_arcball->up ());
549
- anari::setParameter (
550
- m_device, m_orthoCamera, " height" , m_arcball->distance () * 0 .75f );
546
+ tsd::manipulators::updateCameraParametersOrthographic (
547
+ m_device, m_orthoCamera, *m_arcball);
551
548
anari::setParameter (m_device,
552
549
m_orthoCamera,
553
550
" aspect" ,
@@ -558,9 +555,10 @@ void Viewport::updateCamera(bool force)
558
555
// omnidirectional camera //
559
556
560
557
if (m_omniCamera) {
561
- anari::setParameter (m_device, m_omniCamera, " position" , m_arcball->eye ());
562
- anari::setParameter (m_device, m_omniCamera, " direction" , m_arcball->dir ());
563
- anari::setParameter (m_device, m_omniCamera, " up" , m_arcball->up ());
558
+ tsd::manipulators::updateCameraParametersPerspective ( // also works for omni
559
+ m_device,
560
+ m_omniCamera,
561
+ *m_arcball);
564
562
anari::commitParameters (m_device, m_omniCamera);
565
563
}
566
564
@@ -713,8 +711,7 @@ void Viewport::ui_menubar()
713
711
}
714
712
715
713
if (ImGui::Combo (" up" , &m_arcballUp, " +x\0 +y\0 +z\0 -x\0 -y\0 -z\0\0 " )) {
716
- m_arcball->setAxis (
717
- static_cast <tsd::manipulators::OrbitAxis>(m_arcballUp));
714
+ m_arcball->setAxis (static_cast <tsd::manipulators::UpAxis>(m_arcballUp));
718
715
resetView ();
719
716
}
720
717
0 commit comments