Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLCrosshairNode.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: vtkMRMLCrosshairNode.h,v $
10 Date: $Date: 2006/03/19 17:12:29 $
11 Version: $Revision: 1.3 $
12
13=========================================================================auto=*/
14
15#ifndef __vtkMRMLCrosshairNode_h
16#define __vtkMRMLCrosshairNode_h
17
18#include "vtkMRMLNode.h"
19#include "vtkMRMLSliceNode.h"
20
25class VTK_MRML_EXPORT vtkMRMLCrosshairNode : public vtkMRMLNode
26{
27 public:
30 void PrintSelf(ostream& os, vtkIndent indent) override;
31
34 enum
35 {
37 };
38
40
43 void ReadXMLAttributes( const char** atts) override;
44
47 void WriteXML(ostream& of, int indent) override;
48
52
55 const char* GetNodeTagName() override {return "Crosshair";};
56
59 vtkGetMacro (CrosshairMode, int );
60 vtkSetMacro (CrosshairMode, int );
61 static const char* GetCrosshairModeAsString(int id);
62 static int GetCrosshairModeFromString(const char* name);
63
64 vtkSetClampMacro(CrosshairThickness, int, 1, 3);
65 vtkGetMacro(CrosshairThickness, int);
69 static const char* GetCrosshairThicknessAsString(int id);
70 static int GetCrosshairThicknessFromString(const char* name);
71
72 vtkGetVector3Macro(CrosshairColor, float);
73 vtkSetVector3Macro(CrosshairColor, float);
75
78 vtkGetMacro (CrosshairBehavior, int );
79 vtkSetMacro (CrosshairBehavior, int );
80 static const char* GetCrosshairBehaviorAsString(int id);
81 static int GetCrosshairBehaviorFromString(const char* name);
83
91 void SetCursorPositionRAS(double ras[3]);
92
97 void SetCursorPositionXYZ(double xyz[3], vtkMRMLSliceNode *sliceNode);
98
101
106 bool GetCursorPositionRAS(double ras[3]);
107
113
116 vtkSetVector3Macro(CrosshairRAS, double);
117 vtkGetVector3Macro(CrosshairRAS, double);
118
121 void SetCrosshairRAS(double ras[3], int id);
122
124 vtkGetMacro(LightBoxPane, int);
125
126
129 void SetCrosshairName(const char *name) {
130 this->SetSingletonTag(name);
131 }
133 return this->GetSingletonTag();
134 }
135
137 enum
138 {
147 };
148 enum
149 {
150 Fine = 1,
154 };
156 enum
157 {
160 Normal = 1,
164 };
165
174 vtkSetMacro(FastPick3D, bool);
175 vtkGetMacro(FastPick3D, bool);
176 vtkBooleanMacro(FastPick3D, bool);
178
179protected:
184
188 float CrosshairColor[3]{1.0f, 0.8f, 0.1f}; // Light yellow
189
190 double CrosshairRAS[3]{0.0, 0.0, 0.0};
192
195 double CursorPositionRAS[3]{0.0, 0.0, 0.0};
198 double CursorPositionXYZ[3]{0.0, 0.0, 0.0};
202 vtkWeakPointer<vtkMRMLSliceNode> CursorSliceNode;
203
206 bool FastPick3D{false};
207};
208
209#endif
static vtkMRMLCrosshairNode * New()
vtkMRMLSliceNode * GetCursorPositionXYZ(double xyz[3])
void SetCursorPositionInvalid()
Invalidates the cursor position. This should be called whenever the mouse moves out of a view.
static int GetCrosshairBehaviorFromString(const char *name)
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)
static int GetCrosshairModeFromString(const char *name)
static int GetCrosshairThicknessFromString(const char *name)
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
vtkWeakPointer< vtkMRMLSliceNode > CursorSliceNode
void SetCursorPositionRAS(double ras[3])
void SetCursorPositionXYZ(double xyz[3], vtkMRMLSliceNode *sliceNode)
virtual void SetCrosshairThickness(int)
void SetCrosshairRAS(double ras[3], int id)
void SetCrosshairName(const char *name)
Name of the layout.
static const char * GetCrosshairBehaviorAsString(int id)
vtkMRMLNode * CreateNodeInstance() override
Create instance of the default node. Like New only virtual.
bool CursorPositionRASValid
Set to false if the cursor is not in a view.
void ReadXMLAttributes(const char **atts) override
Set node attributes.
static const char * GetCrosshairModeAsString(int id)
bool GetCursorPositionRAS(double ras[3])
~vtkMRMLCrosshairNode() override
vtkMRMLCrosshairNode(const vtkMRMLCrosshairNode &)
void operator=(const vtkMRMLCrosshairNode &)
vtkMRMLCopyContentMacro(vtkMRMLCrosshairNode)
static const char * GetCrosshairThicknessAsString(int id)
void PrintSelf(ostream &os, vtkIndent indent) override
virtual char * GetSingletonTag()
virtual void SetSingletonTag(const char *)
Tag that make this node a singleton in the scene.
MRML node for storing a slice through RAS space.