Slicer  4.8
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
vtkSlicerMultiVolumeRenderingLogic.h
Go to the documentation of this file.
1 /*==============================================================================
2 
3  Program: 3D Slicer
4 
5  Portions (c) Copyright Brigham and Women's Hospital (BWH) All Rights Reserved.
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 ==============================================================================*/
17 
18 // .NAME vtkSlicerMultiVolumeRenderingLogic - slicer logic class for volumes manipulation
19 // .SECTION Description
20 // This class manages the logic associated with reading, saving,
21 // and changing propertied of the volumes
22 
23 
24 #ifndef __vtkSlicerMultiVolumeRenderingLogic_h
25 #define __vtkSlicerMultiVolumeRenderingLogic_h
26 
27 // Slicer includes
28 #include "vtkSlicerModuleLogic.h"
29 
30 // STD includes
31 #include <cstdlib>
32 
33 #include "vtkSlicerMultiVolumeRenderingModuleLogicExport.h"
34 
35 // MRML includes
38 class vtkMRMLNode;
41 class vtkMRMLViewNode;
43 class vtkMRMLVolumeNode;
45 
46 // VTK includes
47 class vtkColorTransferFunction;
48 class vtkPiecewiseFunction;
49 class vtkVolumeProperty;
50 
52 
54 class VTK_SLICER_MULTIVOLUMERENDERING_MODULE_LOGIC_EXPORT vtkSlicerMultiVolumeRenderingLogic :
56 {
57 public:
58 
61  void PrintSelf(ostream& os, vtkIndent indent);
62 
63 public:
64  // Description:
65  // Find first volume rendering display node matching bg, fg, and labelmap set
67 
68  // Description:
69  // Create a new display node
70  vtkMRMLMultiVolumeRenderingDisplayNode* CreateDisplayNode();
71 
72  // Description:
73  // Find volume rendering display node reference in the volume
74  vtkMRMLMultiVolumeRenderingDisplayNode* GetDisplayNodeByID(vtkMRMLVolumeNode *volumeNode, char *displayNodeID);
75 
76 protected:
79 
80  virtual void SetMRMLSceneInternal(vtkMRMLScene * newScene);
82  virtual void RegisterNodes();
83  virtual void UpdateFromMRMLScene();
84  virtual void OnMRMLSceneNodeAdded(vtkMRMLNode* node);
85  virtual void OnMRMLSceneNodeRemoved(vtkMRMLNode* node);
86 private:
87 
89  void operator=(const vtkSlicerMultiVolumeRenderingLogic&); // Not implemented
90 
91  bool IsDisplayNodeMatch(vtkMRMLMultiVolumeRenderingDisplayNode *dnode, vtkMRMLVolumeNode *bg, vtkMRMLVolumeNode *fg, vtkMRMLVolumeNode *label);
92 };
93 
94 #endif
95 
static vtkSlicerModuleLogic * New()
The Usual vtk class functions.
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
MRML node for representing a volume display attributes.
A set of MRML Nodes that supports serialization and undo/redo.
Definition: vtkMRMLScene.h:54
virtual void OnMRMLSceneNodeAdded(vtkMRMLNode *)
virtual void OnMRMLSceneNodeRemoved(vtkMRMLNode *)
virtual void SetMRMLSceneInternal(vtkMRMLScene *newScene)
MRML node for representing a volume (image stack).
MRML node to represent a 3D view.
MRML node for representing a volume (image stack).
virtual void UpdateFromMRMLScene()
Abstract Superclass for all specific types of MRML nodes.
Definition: vtkMRMLNode.h:135
vtkMRMLVolumePropertyNode contains the transfer functions (scalar opacity, color and gradient opacity...
MRML node for representing a volume display attributes.
MRML node for representing a volume display attributes.