Program Listing for File vtkMRMLLayerDMCameraSynchronizer.h
↰ Return to documentation for file (MRMLDM/vtkMRMLLayerDMCameraSynchronizer.h)
#pragma once
#include "vtkSlicerLayerDMModuleMRMLDisplayableManagerExport.h"
// VTK includes
#include <vtkObject.h>
#include <vtkSmartPointer.h>
#include <vtkWeakPointer.h>
// STL includes
#include <memory>
class vtkCamera;
class vtkRenderer;
class CameraSynchronizeStrategy;
class vtkMRMLAbstractViewNode;
class VTK_SLICER_LAYERDM_MODULE_MRMLDISPLAYABLEMANAGER_EXPORT vtkMRMLLayerDMCameraSynchronizer : public vtkObject
{
public:
static vtkMRMLLayerDMCameraSynchronizer* New();
vtkTypeMacro(vtkMRMLLayerDMCameraSynchronizer, vtkObject);
void SetViewNode(vtkMRMLAbstractViewNode* viewNode);
void SetDefaultCamera(const vtkSmartPointer<vtkCamera>& camera);
void SetRenderer(vtkRenderer* renderer);
bool BlockModified(bool isBlocked);
protected:
vtkMRMLLayerDMCameraSynchronizer();
~vtkMRMLLayerDMCameraSynchronizer() override;
private:
void UpdateStrategy();
vtkSmartPointer<vtkCamera> m_defaultCamera;
vtkWeakPointer<vtkRenderer> m_renderer;
vtkWeakPointer<vtkMRMLAbstractViewNode> m_viewNode;
std::unique_ptr<CameraSynchronizeStrategy> m_syncStrategy;
bool m_isBlocked{ false };
};