.. _program_listing_file_MRMLDM_vtkMRMLLayerDMPipelineManager.h: Program Listing for File vtkMRMLLayerDMPipelineManager.h ======================================================== |exhale_lsh| :ref:`Return to documentation for file ` (``MRMLDM/vtkMRMLLayerDMPipelineManager.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "vtkSlicerLayerDMModuleMRMLDisplayableManagerExport.h" // VTK includes #include #include #include #include // STL includes #include #include class vtkCamera; class vtkMRMLAbstractViewNode; class vtkMRMLInteractionEventData; class vtkMRMLLayerDMCameraSynchronizer; class vtkMRMLLayerDMInteractionLogic; class vtkMRMLLayerDMLayerManager; class vtkMRMLLayerDMNodeReferenceObserver; class vtkMRMLLayerDMObjectEventObserver; class vtkMRMLLayerDMPipelineCreatorI; class vtkMRMLLayerDMPipelineFactory; class vtkMRMLLayerDMPipelineI; class vtkMRMLNode; class vtkMRMLScene; class vtkRenderWindow; class vtkRenderer; class VTK_SLICER_LAYERDM_MODULE_MRMLDISPLAYABLEMANAGER_EXPORT vtkMRMLLayerDMPipelineManager : public vtkObject { public: static vtkMRMLLayerDMPipelineManager* New(); vtkTypeMacro(vtkMRMLLayerDMPipelineManager, vtkObject); bool AddNode(vtkMRMLNode* node); bool CanProcessInteractionEvent(vtkMRMLInteractionEventData* eventData, double& distance2) const; bool CreatePipelineForNode(vtkMRMLNode* displayNode); vtkCamera* GetDefaultCamera() const; void ClearDisplayableNodes(); int GetMouseCursor() const; vtkSmartPointer GetNodePipeline(vtkMRMLNode* node) const; int GetNumberOfPipelines() const; vtkMRMLLayerDMPipelineI* GetNthPipeline(int iPipeline) const; void LoseFocus() const; void LoseFocus(vtkMRMLInteractionEventData* eventData) const; bool ProcessInteractionEvent(vtkMRMLInteractionEventData* eventData) const; bool RemoveNode(vtkMRMLNode* node); bool RemovePipeline(vtkMRMLNode* displayNode); void RequestRender(); void ResetCameraClippingRange() const; void SetFactory(const vtkSmartPointer& factory); void SetRenderWindow(vtkRenderWindow* renderWindow); void SetRenderer(vtkRenderer* renderer) const; void SetRequestRender(const std::function& requestRender); void SetScene(vtkMRMLScene* scene); void SetViewNode(vtkMRMLAbstractViewNode* viewNode); void UpdateAllPipelines(); void UpdateFromScene(); bool BlockRequestRender(bool isBlocked); protected: vtkMRMLLayerDMPipelineManager(); ~vtkMRMLLayerDMPipelineManager() override = default; private: void OnDefaultCameraModified(); void UpdatePipeline(const vtkSmartPointer& pipeline) const; void RemoveOutdatedPipelines(); void AddMissingPipelines(); vtkSmartPointer m_factory; vtkSmartPointer m_layerManager; vtkSmartPointer m_cameraSync; vtkSmartPointer m_interactionLogic; vtkSmartPointer m_eventObs; vtkSmartPointer m_defaultCamera; vtkSmartPointer m_nodeRefObs; vtkWeakPointer m_viewNode; vtkWeakPointer m_scene; vtkWeakPointer m_renderWindow; std::map, vtkSmartPointer> m_pipelineMap; std::function m_requestRender; bool m_isRequestRenderBlocked{ false }; };