iMSTK
Interactive Medical Simulation Toolkit
imstkAbstractVTKViewer.h
1 /*
2 ** This file is part of the Interactive Medical Simulation Toolkit (iMSTK)
3 ** iMSTK is distributed under the Apache License, Version 2.0.
4 ** See accompanying NOTICE for details.
5 */
6 
7 #pragma once
8 
9 #include "imstkViewer.h"
10 
11 #include <vtkSmartPointer.h>
12 
13 class vtkRenderWindow;
14 class vtkCallbackCommand;
15 class vtkInteractorStyle;
16 
17 namespace imstk
18 {
19 class VTKRenderer;
20 
27 class AbstractVTKViewer : public Viewer
28 {
29 public:
30  enum class VTKLoggerMode
31  {
32  SHOW,
33  MUTE,
34  WRITE
35  };
36 
37 protected:
38  AbstractVTKViewer(std::string name);
39 public:
40  ~AbstractVTKViewer() override = default;
41 
45  Renderer::Mode getRenderingMode() const override;
46 
50  vtkSmartPointer<vtkRenderWindow> getVtkRenderWindow() const { return m_vtkRenderWindow; }
51 
55  void setSize(const int width, const int height) override;
56 
60  void setWindowTitle(const std::string& title) override;
61 
66  void setUseVsync(const bool useVsync) override;
67 
72  virtual void setBackgroundColors(const Color color1, const Color color2 = Color(0.0, 0.0, 0.0),
73  const bool gradientBackground = false) override;
74 
78  void processEvents() override;
79 
83  void setVtkLoggerMode(VTKLoggerMode loggerMode);
84 
88  std::shared_ptr<VTKRenderer> getActiveVtkRenderer() const;
89 
90 protected:
91  bool initModule() override;
92 
93  void uninitModule() override;
94 
95  vtkSmartPointer<vtkRenderWindow> m_vtkRenderWindow;
96  vtkSmartPointer<vtkInteractorStyle> m_vtkInteractorStyle;
97  vtkSmartPointer<vtkCallbackCommand> exitCallback;
98  bool m_useVsync = false;
99 };
100 } // namespace imstk
Compound Geometry.
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 &#39;gradientBackground&#39; 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.
Base class for viewer that manages render window and the renderers Creates backend-specific renderers...
Definition: imstkViewer.h:43
Renderer::Mode getRenderingMode() const override
Get the current renderer mode.
Color in RGB space.
Definition: imstkColor.h:24
vtkSmartPointer< vtkRenderWindow > getVtkRenderWindow() const
Get pointer to the vtkRenderWindow rendering.
Mode
Enumerations for the render mode.
Definition: imstkRenderer.h:47
Subclasses viewer for the VTK rendering back-end.
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.