.. _program_listing_file_MRMLDM_vtkMRMLLayerDMInteractionLogic.h: Program Listing for File vtkMRMLLayerDMInteractionLogic.h ========================================================= |exhale_lsh| :ref:`Return to documentation for file ` (``MRMLDM/vtkMRMLLayerDMInteractionLogic.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "vtkSlicerLayerDMModuleMRMLDisplayableManagerExport.h" // VTK includes #include #include #include // STL includes #include class vtkMRMLLayerDMPipelineI; class vtkMRMLInteractionEventData; class vtkMRMLAbstractViewNode; class VTK_SLICER_LAYERDM_MODULE_MRMLDISPLAYABLEMANAGER_EXPORT vtkMRMLLayerDMInteractionLogic : public vtkObject { public: static vtkMRMLLayerDMInteractionLogic* New(); vtkTypeMacro(vtkMRMLLayerDMInteractionLogic, vtkObject); void AddPipeline(const vtkSmartPointer& pipeline); bool CanProcessInteractionEvent(vtkMRMLInteractionEventData* eventData, double& distance2); std::vector> GetCanProcessPipelines() const; vtkMRMLLayerDMPipelineI* GetLastFocusedPipeline() const; void LoseFocus(vtkMRMLInteractionEventData* eventData); void LoseFocus(); bool ProcessInteractionEvent(vtkMRMLInteractionEventData* eventData); void RemovePipeline(const vtkSmartPointer& pipeline); void SetViewNode(vtkMRMLAbstractViewNode* viewNode); protected: vtkMRMLLayerDMInteractionLogic(); ~vtkMRMLLayerDMInteractionLogic() override = default; private: static int MinWidgetState(); std::tuple PrioritizeCanProcessPipelines(vtkMRMLInteractionEventData* eventData); void LosePreviousFocusInCannotProcess(vtkMRMLInteractionEventData* eventData); std::vector> m_pipelines; vtkSmartPointer m_prevFocusedPipeline; std::vector> m_canProcess; vtkWeakPointer m_viewNode; };