7 #include "imstkAbstractVTKViewer.h"     8 #include "imstkLogger.h"     9 #include "imstkScene.h"    10 #include "imstkVTKInteractorStyle.h"    11 #include "imstkVTKRenderer.h"    13 #include <vtkCallbackCommand.h>    14 #include <vtkFileOutputWindow.h>    15 #include <vtkOpenGLRenderWindow.h>    16 #include <vtkRenderer.h>    17 #include <vtkRenderWindow.h>    18 #include <vtkRenderWindowInteractor.h>    24     vtkObject* vtkNotUsed(sender), 
unsigned long eventId,
    25     void* clientData, 
void* vtkNotUsed(callData))
    27     AbstractVTKViewer* viewer = 
static_cast<AbstractVTKViewer*
>(clientData);
    29         && eventId == vtkCommand::ExitEvent)
    32         viewer->postEvent(Event(Module::end()));
    36 AbstractVTKViewer::AbstractVTKViewer(std::string name) : 
Viewer(name)
    49     if (m_vtkRenderWindow != NULL)
    51         m_vtkRenderWindow->SetSize(width, height);
    58     m_useVsync = useVsync;
    59     if (
auto glRenWin = vtkOpenGLRenderWindow::SafeDownCast(m_vtkRenderWindow))
    61         glRenWin->SetSwapControl(static_cast<int>(useVsync));
    68     m_config->m_windowName = title;
    69     if (m_vtkRenderWindow)
    71         m_vtkRenderWindow->SetWindowName(title.c_str());
    80         LOG(WARNING) << 
"Must set active scene before setting background color";
    83     this->
getActiveRenderer()->updateBackground(Vec3d(color1.r, color1.g, color1.b), Vec3d(color2.r, color2.g, color2.b), gradientBackground);
    89     m_vtkRenderWindow->GetInteractor()->ProcessEvents();
    95     if (loggerMode == VTKLoggerMode::SHOW)
    97         vtkObject::GlobalWarningDisplayOn();
    99     else if (loggerMode == VTKLoggerMode::MUTE)
   101         vtkObject::GlobalWarningDisplayOff();
   103     else if (loggerMode == VTKLoggerMode::WRITE)
   105         vtkObject::GlobalWarningDisplayOn();
   108         vtkNew<vtkFileOutputWindow> fileOutputWindow;
   109         fileOutputWindow->SetFileName(
"vtkOutput.log");
   110         vtkOutputWindow::SetInstance(fileOutputWindow);
   115 AbstractVTKViewer::initModule()
   117     exitCallback = vtkSmartPointer<vtkCallbackCommand>::New();
   118     exitCallback->SetCallback(exitCallbackFunc);
   119     exitCallback->SetClientData(
this);
   120     m_vtkRenderWindow->GetInteractor()->AddObserver(vtkCommand::ExitEvent, exitCallback);
   125 AbstractVTKViewer::uninitModule()
   127     auto iren = m_vtkRenderWindow->GetInteractor();
   130     iren->TerminateApp();
   131     iren->ProcessEvents();
   132     m_vtkRenderWindow->Finalize();
   135 std::shared_ptr<VTKRenderer>
 
void processEvents() override
Processes VTK events, includes OS events. 
 
virtual void setBackgroundColors(const Color color1, const Color color2=Color(0.0, 0.0, 0.0), const bool gradientBackground=false) override
Set the coloring of the screen background If 'gradientBackground' is false or not supplied color1 wil...
 
void setUseVsync(const bool useVsync) override
Set whether to vertical sync. Sync framerate to the refresh of the monitor. 
 
std::shared_ptr< Scene > getActiveScene() const
Get scene currently being rendered. 
 
Renderer::Mode getRenderingMode() const override
Get the current renderer mode. 
 
std::shared_ptr< Renderer > getActiveRenderer() const
Retrieve the renderer associated with the current scene. 
 
Base class for viewer that manages render window and the renderers /// Creates backend-specific rende...
 
Mode
Enumerations for the render mode. 
 
void setVtkLoggerMode(VTKLoggerMode loggerMode)
Set the logger mode. 
 
void setSize(const int width, const int height) override
Set the render window size. 
 
std::shared_ptr< VTKRenderer > getActiveVtkRenderer() const
Retrieve the renderer associated with the current scene. 
 
void setWindowTitle(const std::string &title) override
Set the render window title.