Slicer  5.0
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
vtkMRMLVolumeRenderingDisplayableManager.h
Go to the documentation of this file.
1 /*==============================================================================
2 
3  Program: 3D Slicer
4 
5  Copyright (c) Kitware Inc.
6 
7  See COPYRIGHT.txt
8  or http://www.slicer.org/copyright/copyright.txt for details.
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 
16  This file was originally developed by Julien Finet, Kitware Inc.
17  and was partially funded by NIH grant 3P41RR013218-12S1
18 
19 ==============================================================================*/
20 
21 #ifndef __vtkMRMLVolumeRenderingDisplayableManager_h
22 #define __vtkMRMLVolumeRenderingDisplayableManager_h
23 
24 // VolumeRendering includes
25 #include "vtkSlicerVolumeRenderingModuleMRMLDisplayableManagerExport.h"
26 
27 // MRML DisplayableManager includes
29 
31 class vtkMRMLVolumeNode;
32 class vtkVolumeMapper;
33 class vtkVolume;
34 
35 #define VTKIS_VOLUME_PROPS 100
36 
38 class VTK_SLICER_VOLUMERENDERING_MODULE_MRMLDISPLAYABLEMANAGER_EXPORT vtkMRMLVolumeRenderingDisplayableManager
40 {
41 public:
44  void PrintSelf(ostream& os, vtkIndent indent) override;
45 
46  void OnMRMLSceneStartClose() override;
47  void OnMRMLSceneEndClose() override;
48  void OnMRMLSceneEndImport() override;
49  void OnMRMLSceneEndRestore() override;
50  void OnMRMLSceneEndBatchProcess() override;
51  void OnMRMLSceneNodeAdded(vtkMRMLNode* node) override;
52  void OnMRMLSceneNodeRemoved(vtkMRMLNode* node) override;
53  void UnobserveMRMLScene() override;
54 
56  void UpdateFromMRML() override;
57 
59  vtkVolumeMapper* GetVolumeMapper(vtkMRMLVolumeNode* volumeNode);
60  vtkVolume* GetVolumeActor(vtkMRMLVolumeNode* volumeNode);
61 
64  int Pick3D(double ras[3]) override;
65 
67  const char* GetPickedNodeID() override;
68 
69 public:
71 
72 protected:
75 
77  void Create() override;
78 
80  void ObserveGraphicalResourcesCreatedEvent();
81 
82  int ActiveInteractionModes() override;
83 
84  void ProcessMRMLNodesEvents(vtkObject * caller, unsigned long event, void * callData) override;
85 
86  void OnInteractorStyleEvent(int eventID) override;
87 
88 protected:
89  vtkSlicerVolumeRenderingLogic *VolumeRenderingLogic{nullptr};
90 
91 protected:
93  void operator=(const vtkMRMLVolumeRenderingDisplayableManager&); // Not implemented
94 
95  class vtkInternal;
96  vtkInternal* Internal;
97  friend class vtkInternal;
98 };
99 
100 #endif
virtual void OnMRMLSceneStartClose()
virtual void OnMRMLSceneEndImport()
virtual void OnMRMLSceneEndClose()
void PrintSelf(ostream &os, vtkIndent indent) override
virtual void OnMRMLSceneNodeAdded(vtkMRMLNode *)
virtual void UnobserveMRMLScene()
static vtkMRMLAbstractThreeDViewDisplayableManager * New()
virtual void OnMRMLSceneEndBatchProcess()
virtual void OnMRMLSceneNodeRemoved(vtkMRMLNode *)
void ProcessMRMLNodesEvents(vtkObject *caller, unsigned long event, void *callData) override
MRML node for representing a volume (image stack).
virtual void OnMRMLSceneEndRestore()
virtual const char * GetPickedNodeID()
Get the MRML ID of the picked node, returns empty string if no pick.
Abstract Superclass for all specific types of MRML nodes.
Definition: vtkMRMLNode.h:167
virtual void OnInteractorStyleEvent(int eventid)