Program Listing for File vtkMRMLLayerDMPipelineI.h
↰ Return to documentation for file (MRMLDM/vtkMRMLLayerDMPipelineI.h)
#pragma once
#include "vtkSlicerLayerDMModuleMRMLDisplayableManagerExport.h"
// Slicer includes
#include <vtkMRMLAbstractViewNode.h>
// VTK includes
#include <vtkCommand.h>
#include <vtkObject.h>
class vtkCamera;
class vtkMRMLAbstractViewNode;
class vtkMRMLInteractionEventData;
class vtkMRMLLayerDMPipelineI;
class vtkMRMLLayerDMPipelineManager;
class vtkMRMLNode;
class vtkMRMLScene;
class vtkMRMLLayerDMObjectEventObserver;
class vtkRenderer;
class VTK_SLICER_LAYERDM_MODULE_MRMLDISPLAYABLEMANAGER_EXPORT vtkMRMLLayerDMPipelineI : public vtkObject
{
public:
static vtkMRMLLayerDMPipelineI* New();
vtkTypeMacro(vtkMRMLLayerDMPipelineI, vtkObject);
virtual bool CanProcessInteractionEvent(vtkMRMLInteractionEventData* eventData, double& distance2);
virtual vtkCamera* GetCustomCamera() const;
virtual int GetMouseCursor() const;
virtual unsigned int GetRenderOrder() const;
virtual int GetWidgetState() const;
virtual void LoseFocus(vtkMRMLInteractionEventData* eventData);
virtual void OnDefaultCameraModified(vtkCamera* camera);
virtual void OnReferenceToDisplayNodeAdded(vtkMRMLNode* fromNode, const std::string& role);
virtual void OnReferenceToDisplayNodeRemoved(vtkMRMLNode* fromNode, const std::string& role);
virtual void OnRendererAdded(vtkRenderer* renderer);
virtual void OnRendererRemoved(vtkRenderer* renderer);
virtual bool ProcessInteractionEvent(vtkMRMLInteractionEventData* eventData);
virtual void SetDisplayNode(vtkMRMLNode* displayNode);
virtual void SetPipelineManager(vtkMRMLLayerDMPipelineManager* pipelineManager);
virtual void SetScene(vtkMRMLScene* scene);
virtual void SetViewNode(vtkMRMLAbstractViewNode* viewNode);
virtual void UpdatePipeline();
bool BlockResetDisplay(bool isBlocked);
bool BlockInteractionProcessing(bool isBlocked);
bool IsInteractionProcessingBlocked() const;
bool BlockUpdateObserver(bool isBlocked) const;
void SetFrozen(bool isFrozen);
bool IsFrozen() const;
vtkMRMLNode* GetDisplayNode() const;
vtkMRMLLayerDMPipelineI* GetNodePipeline(vtkMRMLNode* node) const;
vtkMRMLLayerDMPipelineManager* GetPipelineManager() const;
vtkRenderer* GetRenderer() const;
vtkMRMLScene* GetScene() const;
vtkMRMLAbstractViewNode* GetViewNode() const;
bool UpdateObserver(vtkObject* prevObj, vtkObject* obj, const std::vector<unsigned long>& events) const;
bool UpdateObserver(vtkObject* prevObj, vtkObject* obj, unsigned long event = vtkCommand::ModifiedEvent) const;
void RemoveObserver(vtkObject* prevObj) const;
void RequestRender() const;
void ResetDisplay();
void SetRenderer(vtkRenderer* renderer);
protected:
vtkMRMLLayerDMPipelineI();
~vtkMRMLLayerDMPipelineI() override = default;
virtual void OnUpdate(vtkObject* obj, unsigned long eventId, void* callData);
private:
vtkWeakPointer<vtkMRMLAbstractViewNode> m_viewNode;
vtkWeakPointer<vtkMRMLNode> m_displayNode;
vtkWeakPointer<vtkRenderer> m_renderer;
bool m_isResetDisplayBlocked;
bool m_isFrozen;
bool m_isInteractionProcessingBlocked;
vtkSmartPointer<vtkMRMLLayerDMObjectEventObserver> m_obs;
vtkWeakPointer<vtkMRMLLayerDMPipelineManager> m_pipelineManager;
vtkWeakPointer<vtkMRMLScene> m_scene;
};