Slicer 5.4
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLAnnotationLineDisplayNode.h
Go to the documentation of this file.
1// .NAME vtkMRMLAnnotationLineDisplayNode - MRML node to represent display properties for tractography.
2// .SECTION Description
3// vtkMRMLAnnotationLineDisplayNode nodes store display properties of trajectories
4// from tractography in diffusion MRI data, including color type (by bundle, by fiber,
5// or by scalar invariants), display on/off for tensor glyphs and display of
6// trajectory as a line or tube.
7//
8
9#ifndef __vtkMRMLAnnotationLineDisplayNode_h
10#define __vtkMRMLAnnotationLineDisplayNode_h
11
12#include "vtkMRML.h"
14#include "vtkSlicerAnnotationsModuleMRMLExport.h"
15
17class VTK_SLICER_ANNOTATIONS_MODULE_MRML_EXPORT vtkMRMLAnnotationLineDisplayNode : public vtkMRMLAnnotationDisplayNode
18{
19 public:
22 void PrintSelf ( ostream& os, vtkIndent indent ) override;
23
24 //--------------------------------------------------------------------------
25 // MRMLNode methods
26 //--------------------------------------------------------------------------
27
29
30 // Description:
31 // Read node attributes from XML (MRML) file
32 void ReadXMLAttributes ( const char** atts ) override;
33
34 // Description:
35 // Write this node's information to a MRML file in XML format.
36 void WriteXML ( ostream& of, int indent ) override;
37
38
39 // Description:
40 // Copy the node's attributes to this object
41 void Copy ( vtkMRMLNode *node ) override;
42
43 // Description:
44 // Get node XML tag name (like Volume, Annotation)
45 const char* GetNodeTagName() override {return "AnnotationLineDisplay";}
46
47 // Description:
48 // Finds the storage node and read the data
49 void UpdateScene(vtkMRMLScene *scene) override;
50
51 // Description:
52 // alternative method to propagate events generated in Display nodes
53 void ProcessMRMLEvents ( vtkObject * /*caller*/,
54 unsigned long /*event*/,
55 void * /*callData*/ ) override;
56
59 void SetLineThickness(double thickness);
60 vtkGetMacro(LineThickness,double);
61
63 vtkSetClampMacro(LabelPosition, double, 0.0, 1.0);
64 vtkGetMacro(LabelPosition, double);
65
67 vtkBooleanMacro(LabelVisibility, int);
68 vtkSetMacro(LabelVisibility, int);
69 vtkGetMacro(LabelVisibility, int);
70
72 vtkSetMacro(TickSpacing, double);
73 vtkGetMacro(TickSpacing, double);
74
76 vtkSetMacro(MaxTicks, int);
77 vtkGetMacro(MaxTicks, int);
78
80 inline void SliceProjectionDashedOn();
81
83 inline void SliceProjectionDashedOff();
84
86 inline void SliceProjectionColoredWhenParallelOn();
87
89 inline void SliceProjectionColoredWhenParallelOff();
90
92 inline void SliceProjectionThickerOnTopOn();
93
95 inline void SliceProjectionThickerOnTopOff();
96
99 inline void SliceProjectionUseRulerColorOn();
100
103 inline void SliceProjectionUseRulerColorOff();
104
114 {
115 ProjectionDashed = 0x02,
116 ProjectionColoredWhenParallel = 0x04,
117 ProjectionThickerOnTop = 0x08,
118 ProjectionUseRulerColor = 0x10
119 };
120
123 vtkSetMacro(UnderLineThickness, double);
124 vtkGetMacro(UnderLineThickness, double);
125
128 vtkSetMacro(OverLineThickness, double);
129 vtkGetMacro(OverLineThickness, double);
130
132 void CreateBackup() override;
134 void RestoreBackup() override;
135
136protected:
140 void operator= ( const vtkMRMLAnnotationLineDisplayNode& );
141
147
150};
151
152//----------------------------------------------------------------------------
153void vtkMRMLAnnotationLineDisplayNode
154::SliceProjectionDashedOn()
155{
156 this->SetSliceProjection( this->GetSliceProjection() |
158}
159
160//----------------------------------------------------------------------------
161void vtkMRMLAnnotationLineDisplayNode
162::SliceProjectionDashedOff()
163{
164 this->SetSliceProjection( this->GetSliceProjection() &
166}
167
168//----------------------------------------------------------------------------
169void vtkMRMLAnnotationLineDisplayNode
170::SliceProjectionColoredWhenParallelOn()
171{
172 this->SetSliceProjection( this->GetSliceProjection() |
174}
175
176//----------------------------------------------------------------------------
177void vtkMRMLAnnotationLineDisplayNode
178::SliceProjectionColoredWhenParallelOff()
179{
180 this->SetSliceProjection( this->GetSliceProjection() &
182}
183
184//----------------------------------------------------------------------------
185void vtkMRMLAnnotationLineDisplayNode
186::SliceProjectionThickerOnTopOn()
187{
188 this->SetSliceProjection( this->GetSliceProjection() |
190}
191
192//----------------------------------------------------------------------------
193void vtkMRMLAnnotationLineDisplayNode
194::SliceProjectionThickerOnTopOff()
195{
196 this->SetSliceProjection( this->GetSliceProjection() &
198}
199
200//----------------------------------------------------------------------------
201void vtkMRMLAnnotationLineDisplayNode
202::SliceProjectionUseRulerColorOn()
203{
204 this->SetSliceProjection( this->GetSliceProjection() |
206}
207
208//----------------------------------------------------------------------------
209void vtkMRMLAnnotationLineDisplayNode
210::SliceProjectionUseRulerColorOff()
211{
212 this->SetSliceProjection( this->GetSliceProjection() &
214}
215
216#endif
void WriteXML(ostream &of, int indent) override
void UpdateScene(vtkMRMLScene *scene) override
vtkMRMLAnnotationLineDisplayNode(const vtkMRMLAnnotationLineDisplayNode &)
void ReadXMLAttributes(const char **atts) override
static vtkMRMLAnnotationLineDisplayNode * New()
~vtkMRMLAnnotationLineDisplayNode() override=default
void CreateBackup() override
Create a backup of this node and attach it.
void SetLineThickness(double thickness)
void PrintSelf(ostream &os, vtkIndent indent) override
vtkMRMLNode * CreateNodeInstance() override
Create instance of the default node. Like New only virtual.
void Copy(vtkMRMLNode *node) override
Copy node contents from another node of the same type. Does not copy node ID and Scene....
void RestoreBackup() override
Restore an attached backup of this node.
void ProcessMRMLEvents(vtkObject *, unsigned long, void *) override
Propagate events generated in mrml.
Abstract Superclass for all specific types of MRML nodes.
A set of MRML Nodes that supports serialization and undo/redo.