Skip to content
Snippets Groups Projects
Commit f1a8342d authored by Alexis Girault's avatar Alexis Girault
Browse files

ENH: Allow debug rendering while simulation runs

Addresses suggestions made here:
alexis-girault/iMSTK@a63f98b5 (comment 212643)

>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8
It would be great to have the option of using pan-zoom-rotate
when simulation is running for certain applications. I keep
pressing 'S' and 'E' in succession to see if everything is good
for an example i was working on. It need not be a default run
mode option.
>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8>8

* Rename VTKRenderer::setup into VTKRenderer::setMode
* Add VTKRenderer::getMode
* Add VTKViewer::getRenderingMode wrapping the one above
* Consider Rendering Mode in Mouse event callbacks instead of
simulation status
* Allow to switch to Debug rendering and back with the `d` key
parent 2094e396
No related branches found
No related tags found
No related merge requests found
......@@ -99,7 +99,7 @@ VTKRenderer::VTKRenderer(std::shared_ptr<Scene> scene)
m_vtkRenderer->RemoveCuller(culler);
}
this->setup(Mode::SIMULATION);
this->setMode(Mode::SIMULATION);
}
......@@ -110,7 +110,7 @@ VTKRenderer::getVtkRenderer() const
}
void
VTKRenderer::setup(Mode mode)
VTKRenderer::setMode(Mode mode)
{
if( mode == Mode::EMPTY && m_currentMode != Mode::EMPTY )
{
......@@ -162,6 +162,12 @@ VTKRenderer::setup(Mode mode)
m_currentMode = mode;
}
const VTKRenderer::Mode&
VTKRenderer::getMode()
{
return m_currentMode;
}
void
VTKRenderer::updateSceneCamera(std::shared_ptr<Camera> imstkCam)
{
......
......@@ -67,9 +67,11 @@ public:
~VTKRenderer() = default;
///
/// \brief
/// \brief Set/Get the rendering mode which defined the
/// visibility of the renderer actors and the default camera
///
void setup(Mode mode);
void setMode(Mode mode);
const Mode& getMode();
///
/// \brief
......
......@@ -159,6 +159,18 @@ VTKInteractorStyle::OnChar()
m_simManager->runSimulation();
}
}
// switch rendering mode
else if (key == 'd' || key == 'D')
{
if (m_simManager->getViewer()->getRenderingMode() != VTKRenderer::Mode::SIMULATION)
{
m_simManager->getViewer()->setRenderingMode(VTKRenderer::Mode::SIMULATION);
}
else
{
m_simManager->getViewer()->setRenderingMode(VTKRenderer::Mode::DEBUG);
}
}
// quit viewer
else if (key == '\u001B')
{
......@@ -185,7 +197,7 @@ VTKInteractorStyle::OnMouseMove()
}
// Default behavior : ignore mouse if simulation active
if (m_simManager->getStatus() != SimulationStatus::INACTIVE)
if (m_simManager->getViewer()->getRenderingMode() != VTKRenderer::Mode::DEBUG)
{
return;
}
......@@ -206,7 +218,7 @@ VTKInteractorStyle::OnLeftButtonDown()
}
// Default behavior : ignore mouse if simulation active
if (m_simManager->getStatus() != SimulationStatus::INACTIVE)
if (m_simManager->getViewer()->getRenderingMode() != VTKRenderer::Mode::DEBUG)
{
return;
}
......@@ -227,7 +239,7 @@ VTKInteractorStyle::OnLeftButtonUp()
}
// Default behavior : ignore mouse if simulation active
if (m_simManager->getStatus() != SimulationStatus::INACTIVE)
if (m_simManager->getViewer()->getRenderingMode() != VTKRenderer::Mode::DEBUG)
{
return;
}
......@@ -248,7 +260,7 @@ VTKInteractorStyle::OnMiddleButtonDown()
}
// Default behavior : ignore mouse if simulation active
if (m_simManager->getStatus() != SimulationStatus::INACTIVE)
if (m_simManager->getViewer()->getRenderingMode() != VTKRenderer::Mode::DEBUG)
{
return;
}
......@@ -269,7 +281,7 @@ VTKInteractorStyle::OnMiddleButtonUp()
}
// Default behavior : ignore mouse if simulation active
if (m_simManager->getStatus() != SimulationStatus::INACTIVE)
if (m_simManager->getViewer()->getRenderingMode() != VTKRenderer::Mode::DEBUG)
{
return;
}
......@@ -290,7 +302,7 @@ VTKInteractorStyle::OnRightButtonDown()
}
// Default behavior : ignore mouse if simulation active
if (m_simManager->getStatus() != SimulationStatus::INACTIVE)
if (m_simManager->getViewer()->getRenderingMode() != VTKRenderer::Mode::DEBUG)
{
return;
}
......@@ -311,7 +323,7 @@ VTKInteractorStyle::OnRightButtonUp()
}
// Default behavior : ignore mouse if simulation active
if (m_simManager->getStatus() != SimulationStatus::INACTIVE)
if (m_simManager->getViewer()->getRenderingMode() != VTKRenderer::Mode::DEBUG)
{
return;
}
......@@ -332,7 +344,7 @@ VTKInteractorStyle::OnMouseWheelForward()
}
// Default behavior : ignore mouse if simulation active
if (m_simManager->getStatus() != SimulationStatus::INACTIVE)
if (m_simManager->getViewer()->getRenderingMode() != VTKRenderer::Mode::DEBUG)
{
return;
}
......@@ -353,7 +365,7 @@ VTKInteractorStyle::OnMouseWheelBackward()
}
// Default behavior : ignore mouse if simulation active
if (m_simManager->getStatus() != SimulationStatus::INACTIVE)
if (m_simManager->getViewer()->getRenderingMode() != VTKRenderer::Mode::DEBUG)
{
return;
}
......
......@@ -90,7 +90,7 @@ VTKViewer::setRenderingMode(VTKRenderer::Mode mode)
}
// Setup renderer
this->getCurrentRenderer()->setup(mode);
this->getCurrentRenderer()->setMode(mode);
if( !m_running )
{
return;
......@@ -102,7 +102,6 @@ VTKViewer::setRenderingMode(VTKRenderer::Mode mode)
// Setup render window
if (mode == VTKRenderer::Mode::SIMULATION)
{
m_interactorStyle->HighlightProp(nullptr);
m_vtkRenderWindow->HideCursor();
//m_vtkRenderWindow->BordersOff();
//m_vtkRenderWindow->FullScreenOn(1);
......@@ -115,6 +114,12 @@ VTKViewer::setRenderingMode(VTKRenderer::Mode mode)
}
}
const VTKRenderer::Mode&
VTKViewer::getRenderingMode()
{
return this->getCurrentRenderer()->getMode();
}
void
VTKViewer::startRenderingLoop()
{
......
......@@ -83,6 +83,11 @@ public:
///
void setRenderingMode(VTKRenderer::Mode mode);
///
/// \brief Get the current renderer mode
///
const VTKRenderer::Mode& getRenderingMode();
///
/// \brief Start rendering
///
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment