Slicer 5.6
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLSliceLayerLogic.h
Go to the documentation of this file.
1/*=auto=========================================================================
2
3 Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved.
4
5 See COPYRIGHT.txt
6 or http://www.slicer.org/copyright/copyright.txt for details.
7
8 Program: 3D Slicer
9 Module: $RCSfile: vtkMRMLSliceLayerLogic.h,v $
10 Date: $Date$
11 Version: $Revision$
12
13=========================================================================auto=*/
14
19//
27//
29//
30
31#ifndef __vtkMRMLSliceLayerLogic_h
32#define __vtkMRMLSliceLayerLogic_h
33
34// MRMLLogic includes
36
37// MRML includes
38#include "vtkMRMLVolumeNode.h"
39#include "vtkMRMLSliceNode.h"
44
45// VTK includes
46#include <vtkImageLogic.h>
47#include <vtkImageExtractComponents.h>
48#include <vtkVersion.h>
49
50class vtkAssignAttribute;
51class vtkImageReslice;
52class vtkGeneralTransform;
53
54// STL includes
55//#include <cstdlib>
56
58class vtkTransform;
59
60class VTK_MRML_LOGIC_EXPORT vtkMRMLSliceLayerLogic
62{
63public:
64
68 void PrintSelf(ostream& os, vtkIndent indent) override;
69
72 vtkGetObjectMacro (VolumeNode, vtkMRMLVolumeNode);
73 void SetVolumeNode (vtkMRMLVolumeNode *VolumeNode);
74
79 vtkGetObjectMacro (VolumeDisplayNode, vtkMRMLVolumeDisplayNode);
80 vtkGetObjectMacro (VolumeDisplayNodeUVW, vtkMRMLVolumeDisplayNode);
81
84 vtkGetObjectMacro (SliceNode, vtkMRMLSliceNode);
85 void SetSliceNode (vtkMRMLSliceNode *SliceNode);
86
89 vtkGetObjectMacro (Reslice, vtkImageReslice);
90 vtkGetObjectMacro (ResliceUVW, vtkImageReslice);
91
95 vtkGetMacro (IsLabelLayer, int);
96 vtkSetMacro (IsLabelLayer, int);
97 vtkBooleanMacro (IsLabelLayer, int);
98
101 vtkGetObjectMacro (LabelOutline, vtkImageLabelOutline);
102
105 vtkImageData *GetImageData();
106 vtkAlgorithmOutput *GetImageDataConnection();
107
110 vtkImageData *GetImageDataUVW();
111 vtkAlgorithmOutput *GetImageDataConnectionUVW();
112
114
119
121
122
127
130 vtkGetObjectMacro (XYToIJKTransform, vtkGeneralTransform);
131
135 vtkGetMacro(InterpolationMode, int);
136 vtkSetMacro(InterpolationMode, int);
137
138protected:
143
144 // Initialize listening to MRML events
145 void SetMRMLSceneInternal(vtkMRMLScene * newScene) override;
146
150 void ProcessMRMLSceneEvents(vtkObject* caller,
151 unsigned long event,
152 void* callData) override;
153 void ProcessMRMLNodesEvents(vtkObject* caller,
154 unsigned long event,
155 void* callData) override;
157 void OnMRMLNodeModified(vtkMRMLNode* node) override;
158 vtkAlgorithmOutput* GetSliceImageDataConnection();
159 vtkAlgorithmOutput* GetSliceImageDataConnectionUVW();
160
161 // Copy VolumeDisplayNodeObserved into VolumeDisplayNode
163
171
174 vtkImageReslice *Reslice;
175 vtkImageReslice *ResliceUVW;
178
182
184 vtkGeneralTransform *XYToIJKTransform;
185 vtkGeneralTransform *UVWToIJKTransform;
186
188
190
192};
193
194#endif
195
Display labelmap outlines.
Superclass for MRML logic classes.
Abstract Superclass for all specific types of MRML nodes.
A set of MRML Nodes that supports serialization and undo/redo.
vtkAssignAttribute * AssignAttributeTensorsToScalars
vtkMRMLVolumeNode * VolumeNode
the MRML Nodes that define this Logic's parameters
vtkAlgorithmOutput * GetImageDataConnectionUVW()
vtkMRMLVolumeDisplayNode * VolumeDisplayNodeUVW
void SetMRMLSceneInternal(vtkMRMLScene *newScene) override
~vtkMRMLSliceLayerLogic() override
static vtkMRMLSliceLayerLogic * New()
The Usual vtk class functions.
void PrintSelf(ostream &os, vtkIndent indent) override
vtkAlgorithmOutput * GetSliceImageDataConnection()
vtkImageReslice * Reslice
the VTK class instances that implement this Logic's operations
void operator=(const vtkMRMLSliceLayerLogic &)
void SetSliceNode(vtkMRMLSliceNode *SliceNode)
vtkAssignAttribute * AssignAttributeScalarsToTensors
void SetVolumeNode(vtkMRMLVolumeNode *VolumeNode)
void ProcessMRMLSceneEvents(vtkObject *caller, unsigned long event, void *callData) override
vtkImageData * GetImageData()
Get the output of the pipeline for this layer.
vtkAlgorithmOutput * GetImageDataConnection()
vtkMRMLSliceLayerLogic(const vtkMRMLSliceLayerLogic &)
void ProcessMRMLNodesEvents(vtkObject *caller, unsigned long event, void *callData) override
vtkImageLabelOutline * LabelOutline
vtkAssignAttribute * AssignAttributeScalarsToTensorsUVW
vtkImageLabelOutline * LabelOutlineUVW
vtkGeneralTransform * XYToIJKTransform
TODO: make this a vtkAbstractTransform for non-linear.
vtkMRMLVolumeDisplayNode * VolumeDisplayNode
vtkGeneralTransform * UVWToIJKTransform
vtkAlgorithmOutput * GetSliceImageDataConnectionUVW()
void OnMRMLNodeModified(vtkMRMLNode *node) override
vtkImageData * GetImageDataUVW()
Get the output of the texture UVW pipeline for this layer.
vtkMRMLVolumeDisplayNode * VolumeDisplayNodeObserved
MRML node for storing a slice through RAS space.
MRML node for representing a volume display attributes.
MRML node for representing a volume (image stack).