Slicer 5.4
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLMarkupsLineNode.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Portions (c) Copyright Brigham and Women's Hospital (BWH) All Rights Reserved.
6
7 See COPYRIGHT.txt
8 or http://www.slicer.org/copyright/copyright.txt for details.
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15
16==============================================================================*/
17
18#ifndef __vtkMRMLMarkupsLineNode_h
19#define __vtkMRMLMarkupsLineNode_h
20
21// MRML includes
23
24// Markups includes
25#include "vtkSlicerMarkupsModuleMRMLExport.h"
27#include "vtkMRMLMarkupsNode.h"
28
36class VTK_SLICER_MARKUPS_MODULE_MRML_EXPORT vtkMRMLMarkupsLineNode : public vtkMRMLMarkupsNode
37{
38public:
42 void PrintSelf(ostream& os, vtkIndent indent) override;
43
44 const char* GetIcon() override {return ":/Icons/MarkupsLine.png";}
45 const char* GetAddIcon() override {return ":/Icons/MarkupsLineMouseModePlace.png";}
46 const char* GetPlaceAddIcon() override {return ":/Icons/MarkupsLineMouseModePlaceAdd.png";}
47
48 //--------------------------------------------------------------------------
49 // MRMLNode methods
50 //--------------------------------------------------------------------------
51
54 const char* GetNodeTagName() override {return "MarkupsLine";}
55
57 const char* GetMarkupType() override {return "Line";};
58
59 // Get markup type GUI display name
60 const char* GetTypeDisplayName() override {return "Line";};
61
63 const char* GetDefaultNodeNamePrefix() override {return "L";};
64
66 void ReadXMLAttributes( const char** atts) override;
67
69 void WriteXML(ostream& of, int indent) override;
70
74
76 virtual double GetLineLengthWorld();
77
79
82 bool GetLineStartPosition(double position[3]);
83 bool GetLineEndPosition(double position[3]);
84 bool GetLineStartPositionWorld(double position[3]);
85 bool GetLineEndPositionWorld(double position[3]);
87
89
91 vtkVector3d GetLineStartPosition();
92 vtkVector3d GetLineEndPosition();
96
98
100 void SetLineStartPosition(double position[3]);
101 void SetLineEndPosition(double position[3]);
102 void SetLineStartPositionWorld(double position[3]);
103 void SetLineEndPositionWorld(double position[3]);
105
106 // Deprecated methods
107
109
114 bool GetPosition1(double position[3]);
115 bool GetPosition2(double position[3]);
117
119
124 double* GetPosition1();
125 double* GetPosition2();
127
129
134 bool GetPositionWorldCoordinates1(double position[3]);
135 bool GetPositionWorldCoordinates2(double position[3]);
137
139
144 bool SetPosition1(double newControl[3]);
145 bool SetPosition2(double newControl[3]);
146 bool SetPosition1(double nC1, double nC2, double nC3);
147 bool SetPosition2(double nC1, double nC2, double nC3);
149
151
156 bool SetPositionWorldCoordinates1(double newControl[3]);
157 bool SetPositionWorldCoordinates2(double newControl[3]);
159
160protected:
165
168};
169
170#endif
MRML node to represent a line markup Line Markups nodes contain two control points....
void ReadXMLAttributes(const char **atts) override
Read node attributes from XML file.
bool GetLineStartPosition(double position[3])
bool SetPosition2(double newControl[3])
const char * GetMarkupType() override
Get markup type internal name.
bool GetPosition2(double position[3])
void UpdateInteractionHandleToWorldMatrix() override
Calculates the handle to world matrix based on the current control points.
const char * GetTypeDisplayName() override
bool GetPositionWorldCoordinates2(double position[3])
vtkMRMLNode * CreateNodeInstance() override
MRMLNode methods.
void SetLineStartPosition(double position[3])
bool SetPosition1(double nC1, double nC2, double nC3)
static vtkMRMLMarkupsLineNode * New()
vtkVector3d GetLineStartPosition()
bool GetLineEndPositionWorld(double position[3])
vtkVector3d GetLineStartPositionWorld()
bool SetPosition1(double newControl[3])
void SetLineEndPosition(double position[3])
vtkMRMLMarkupsLineNode(const vtkMRMLMarkupsLineNode &)
const char * GetPlaceAddIcon() override
vtkVector3d GetLineEndPositionWorld()
virtual double GetLineLengthWorld()
Return line length (distance between the two line endpoints) in world coordinate system.
vtkVector3d GetLineEndPosition()
~vtkMRMLMarkupsLineNode() override
void SetLineStartPositionWorld(double position[3])
const char * GetDefaultNodeNamePrefix() override
Get markup short name.
bool GetLineStartPositionWorld(double position[3])
void PrintSelf(ostream &os, vtkIndent indent) override
Print out the node information to the output stream.
bool GetPosition1(double position[3])
bool SetPosition2(double nC1, double nC2, double nC3)
vtkMRMLCopyContentDefaultMacro(vtkMRMLMarkupsLineNode)
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
bool GetPositionWorldCoordinates1(double position[3])
const char * GetIcon() override
void SetLineEndPositionWorld(double position[3])
bool SetPositionWorldCoordinates1(double newControl[3])
bool GetLineEndPosition(double position[3])
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)
bool SetPositionWorldCoordinates2(double newControl[3])
void operator=(const vtkMRMLMarkupsLineNode &)
const char * GetAddIcon() override
Abstract Superclass for all specific types of MRML nodes.