Program Listing for File vtkMRMLLayerDisplayableManager.h
↰ Return to documentation for file (MRMLDM/vtkMRMLLayerDisplayableManager.h)
#pragma once
#include "vtkSlicerLayerDMModuleMRMLDisplayableManagerExport.h"
// Slicer includes
#include <vtkMRMLAbstractDisplayableManager.h>
// VTK includes
#include <vtkSmartPointer.h>
class vtkImageData;
class vtkMRMLDisplayableManagerFactory;
class vtkMRMLLayerDMPipelineI;
class vtkMRMLLayerDMPipelineManager;
class vtkRenderWindow;
class VTK_SLICER_LAYERDM_MODULE_MRMLDISPLAYABLEMANAGER_EXPORT vtkMRMLLayerDisplayableManager : public vtkMRMLAbstractDisplayableManager
{
public:
static vtkMRMLLayerDisplayableManager* New();
vtkTypeMacro(vtkMRMLLayerDisplayableManager, vtkMRMLAbstractDisplayableManager);
bool CanProcessInteractionEvent(vtkMRMLInteractionEventData* eventData, double& distance2) override;
bool ProcessInteractionEvent(vtkMRMLInteractionEventData* eventData) override;
static void RegisterInDefaultViews();
static void RegisterInFactory(vtkMRMLDisplayableManagerFactory* factory);
static bool IsRegisteredInFactory(vtkMRMLDisplayableManagerFactory* factory);
vtkSmartPointer<vtkMRMLLayerDMPipelineI> GetNodePipeline(vtkMRMLNode* node) const;
static vtkSmartPointer<vtkImageData> RenderWindowBufferToImage(vtkRenderWindow* window);
static void RenderWindowBufferToImage(vtkRenderWindow* window, const vtkSmartPointer<vtkImageData>& imageData);
protected:
vtkMRMLLayerDisplayableManager();
~vtkMRMLLayerDisplayableManager() override = default;
vtkMRMLLayerDisplayableManager(const vtkMRMLLayerDisplayableManager&) = delete;
void operator=(const vtkMRMLLayerDisplayableManager&) = delete;
void Create() override;
void SetRenderer(vtkRenderer* newRenderer) override;
void OnMRMLDisplayableNodeModifiedEvent(vtkObject* caller) override;
void OnMRMLSceneStartBatchProcess() override;
void OnMRMLSceneEndBatchProcess() override;
void OnMRMLSceneNodeAdded(vtkMRMLNode* node) override;
void OnMRMLSceneNodeRemoved(vtkMRMLNode* node) override;
void UnobserveMRMLScene() override;
void UpdateFromMRML() override;
int GetMouseCursor() override;
void SetHasFocus(bool hasFocus, vtkMRMLInteractionEventData* eventData) override;
private:
vtkSmartPointer<vtkMRMLLayerDMPipelineManager> m_pipelineManager;
};