#ifndef ULIBVTKVIEWER_H #define ULIBVTKVIEWER_H #include "vtkViewport.h" class vtkRenderWindow; class vtkRenderWindowInteractor; class vtkRenderer; class vtkCameraOrientationWidget; namespace uLib { namespace Vtk { struct ViewerData; class Viewer : public Viewport { public: Viewer(); virtual ~Viewer(); // Render scene virtual void Render() override; static vtkCameraOrientationWidget * MakeCameraOrientationWidget(vtkRenderWindowInteractor *interactor, vtkRenderer *renderer); void Start(); virtual vtkRenderWindow *GetRenderWindow() override; virtual vtkRenderWindowInteractor *GetInteractor() override; private: void InstallPipe(); void UninstallPipe(); void SetupGridButton(); void UpdateGridButtonPosition(); struct ViewerData *d; }; } // namespace Vtk } // namespace uLib #endif // ULIBVTKVIEWER_H