Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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.