Slicer 5.6
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLSegmentEditorNode.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Copyright (c) Laboratory for Percutaneous Surgery (PerkLab)
6 Queen's University, Kingston, ON, Canada. All Rights Reserved.
7
8 See COPYRIGHT.txt
9 or http://www.slicer.org/copyright/copyright.txt for details.
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16
17 This file was originally developed by Csaba Pinter, PerkLab, Queen's University
18 and was supported through the Applied Cancer Research Unit program of Cancer Care
19 Ontario with funds provided by the Ontario Ministry of Health and Long-Term Care
20
21==============================================================================*/
22
23#ifndef __vtkMRMLSegmentEditorNode_h
24#define __vtkMRMLSegmentEditorNode_h
25
26// MRML includes
27#include <vtkMRMLNode.h>
29
30// Segmentations includes
31#include "vtkSlicerSegmentationsModuleMRMLExport.h"
32
34
35class vtkMRMLScene;
37
45class VTK_SLICER_SEGMENTATIONS_MODULE_MRML_EXPORT vtkMRMLSegmentEditorNode : public vtkMRMLNode
46{
47public:
48 enum
49 {
53 EffectParameterModified = 62200
54 };
55
56 enum
57 {
59 OverwriteAllSegments=0,
64 // Insert valid types above this line
65 Overwrite_Last
66 };
67
68public:
71 void PrintSelf(ostream& os, vtkIndent indent) override;
72
75
77 void ReadXMLAttributes( const char** atts) override;
78
80 void WriteXML(ostream& of, int indent) override;
81
83 void Copy(vtkMRMLNode *node) override;
84
86 const char* GetNodeTagName() override { return "SegmentEditor"; }
87
89
90 static int ConvertOverwriteModeFromString(const char* modeStr);
91 static const char* ConvertOverwriteModeToString(int mode);
93
94public:
95
97
102
104
108
110
114
116
118 vtkGetStringMacro(SelectedSegmentID);
119 vtkSetStringMacro(SelectedSegmentID);
121
123
124 vtkGetStringMacro(ActiveEffectName);
125 vtkSetStringMacro(ActiveEffectName);
127
129
134 vtkSetMacro(MaskMode, int);
135 vtkGetMacro(MaskMode, int);
137
139
142 vtkGetStringMacro(MaskSegmentID);
143 vtkSetStringMacro(MaskSegmentID);
145
147
148 vtkBooleanMacro(SourceVolumeIntensityMask, bool);
149 vtkGetMacro(SourceVolumeIntensityMask, bool);
150 vtkSetMacro(SourceVolumeIntensityMask, bool);
152
154
155 virtual void MasterVolumeIntensityMaskOn() { this->SourceVolumeIntensityMaskOn(); }
156 virtual void MasterVolumeIntensityMaskOff() { this->SourceVolumeIntensityMaskOff(); }
157 virtual void SetMasterVolumeIntensityMask(bool enable) { this->SetSourceVolumeIntensityMask(enable); }
158 virtual bool GetMasterVolumeIntensityMask() { return this->GetSourceVolumeIntensityMask(); }
160
162
166 vtkSetVector2Macro(SourceVolumeIntensityMaskRange, double);
167 vtkGetVector2Macro(SourceVolumeIntensityMaskRange, double);
169
171
172 virtual void SetMasterVolumeIntensityMaskRange(double _arg1, double _arg2)
173 {
174 vtkWarningMacro("vtkMRMLSegmentEditorNode::SetMasterVolumeIntensityMaskRange() method is deprecated, use SetSourceVolumeIntensityMaskRange method instead");
175 this->SetSourceVolumeIntensityMaskRange(_arg1, _arg2);
176 }
177 void SetMasterVolumeIntensityMaskRange(const double _arg[2])
178 {
179 vtkWarningMacro("vtkMRMLSegmentEditorNode::SetMasterVolumeIntensityMaskRange() method is deprecated, use SetSourceVolumeIntensityMaskRange method instead");
180 this->SetSourceVolumeIntensityMaskRange(_arg);
181 }
182
183 virtual double* GetMasterVolumeIntensityMaskRange() VTK_SIZEHINT(2)
184 {
185 vtkWarningMacro("vtkMRMLSegmentEditorNode::GetMasterVolumeIntensityMaskRange() method is deprecated, use GetSourceVolumeIntensityMaskRange method instead");
186 return this->GetSourceVolumeIntensityMaskRange();
187 }
188
189 VTK_WRAPEXCLUDE
190 virtual void GetMasterVolumeIntensityMaskRange(double& _arg1, double& _arg2)
191 {
192 vtkWarningMacro("vtkMRMLSegmentEditorNode::GetMasterVolumeIntensityMaskRange() method is deprecated, use GetSourceVolumeIntensityMaskRange method instead");
193 this->GetSourceVolumeIntensityMaskRange(_arg1, _arg2);
194 }
195
196 VTK_WRAPEXCLUDE
197 virtual void GetMasterVolumeIntensityMaskRange(double _arg[2])
198 {
199 vtkWarningMacro("vtkMRMLSegmentEditorNode::GetMasterVolumeIntensityMaskRange() method is deprecated, use GetSourceVolumeIntensityMaskRange method instead");
200 this->GetSourceVolumeIntensityMaskRange(_arg);
201 }
203
205
207 vtkSetMacro(OverwriteMode, int);
208 vtkGetMacro(OverwriteMode, int);
210
211protected:
216
218 char* SelectedSegmentID{nullptr};
219
221 char* ActiveEffectName{nullptr};
222
224 char* MaskSegmentID{nullptr};
225
226 int OverwriteMode{OverwriteAllSegments};
227
228 bool SourceVolumeIntensityMask{false};
229 double SourceVolumeIntensityMaskRange[2];
230};
231
232#endif
Abstract Superclass for all specific types of MRML nodes.
MRML node for representing a volume (image stack).
A set of MRML Nodes that supports serialization and undo/redo.
Parameter set node for the segment editor widget.
vtkMRMLScalarVolumeNode * GetMasterVolumeNode()
Deprecated. Use GetSourceVolumeNode/SetAndObserveSourceVolumeNode methods instead.
const char * GetNodeTagName() override
Get unique node XML tag name (like Volume, Model)
vtkMRMLSegmentEditorNode(const vtkMRMLSegmentEditorNode &)
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
virtual void SetMasterVolumeIntensityMaskRange(double _arg1, double _arg2)
Deprecated. Use Get/SetSourceVolumeIntensityMaskRange method instead.
void SetAndObserveSourceVolumeNode(vtkMRMLScalarVolumeNode *node)
virtual VTK_WRAPEXCLUDE void GetMasterVolumeIntensityMaskRange(double _arg[2])
static int ConvertOverwriteModeFromString(const char *modeStr)
Convert between constants IDs to/from string.
virtual VTK_WRAPEXCLUDE void GetMasterVolumeIntensityMaskRange(double &_arg1, double &_arg2)
@ OverwriteNone
Areas added to selected segment will not be removed from any segments. (overlap with all other segmen...
@ OverwriteVisibleSegments
Areas added to selected segment will be removed from all visible segments. (no overlap with visible,...
vtkMRMLSegmentationNode * GetSegmentationNode()
Get/set segmentation node.
virtual void MasterVolumeIntensityMaskOn()
Deprecated. Use Get/SetSourceVolumeIntensityMask method instead.
static const char * ConvertOverwriteModeToString(int mode)
void SetAndObserveSegmentationNode(vtkMRMLSegmentationNode *node)
void ReadXMLAttributes(const char **atts) override
Set node attributes from name/value pairs.
vtkMRMLNode * CreateNodeInstance() override
Create a new node of this type.
void PrintSelf(ostream &os, vtkIndent indent) override
void SetMasterVolumeIntensityMaskRange(const double _arg[2])
static vtkMRMLSegmentEditorNode * New()
virtual void SetMasterVolumeIntensityMask(bool enable)
virtual double * GetMasterVolumeIntensityMaskRange() VTK_SIZEHINT(2)
void operator=(const vtkMRMLSegmentEditorNode &)
void Copy(vtkMRMLNode *node) override
Copy the node's attributes to this object.
~vtkMRMLSegmentEditorNode() override
void SetAndObserveMasterVolumeNode(vtkMRMLScalarVolumeNode *node)
vtkMRMLScalarVolumeNode * GetSourceVolumeNode()
MRML node containing segmentations.
@ EditAllowedEverywhere
Modification is allowed everywhere.