This repository has been archived by the owner on May 15, 2018. It is now read-only.
/
qSlicerTransformRecorderModule.cxx
133 lines (104 loc) · 4.97 KB
/
qSlicerTransformRecorderModule.cxx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/*==============================================================================
Program: 3D Slicer
Portions (c) Copyright Brigham and Women's Hospital (BWH) All Rights Reserved.
See COPYRIGHT.txt
or http://www.slicer.org/copyright/copyright.txt for details.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
==============================================================================*/
// Qt includes
#include <QtPlugin>
// TransformRecorder Logic includes
#include <vtkSlicerTransformRecorderLogic.h>
// TransformRecorder includes
#include "qSlicerTransformRecorderModule.h"
#include "qSlicerTransformRecorderModuleWidget.h"
#include "qSlicerTransformBufferReader.h"
// Slicer includes
#include "qSlicerNodeWriter.h"
#include "qSlicerCoreIOManager.h"
#include "qSlicerCoreApplication.h"
//-----------------------------------------------------------------------------
Q_EXPORT_PLUGIN2(qSlicerTransformRecorderModule, qSlicerTransformRecorderModule);
//-----------------------------------------------------------------------------
/// \ingroup Slicer_QtModules_TransformRecorder
class qSlicerTransformRecorderModulePrivate
{
public:
qSlicerTransformRecorderModulePrivate();
};
//-----------------------------------------------------------------------------
// qSlicerTransformRecorderModulePrivate methods
//-----------------------------------------------------------------------------
qSlicerTransformRecorderModulePrivate::qSlicerTransformRecorderModulePrivate()
{
}
//-----------------------------------------------------------------------------
// qSlicerTransformRecorderModule methods
//-----------------------------------------------------------------------------
qSlicerTransformRecorderModule::qSlicerTransformRecorderModule(QObject* _parent)
: Superclass(_parent)
, d_ptr(new qSlicerTransformRecorderModulePrivate)
{
}
//-----------------------------------------------------------------------------
QString qSlicerTransformRecorderModule::category()const
{
// return "Developer Tools";
return "";
}
//-----------------------------------------------------------------------------
QStringList qSlicerTransformRecorderModule::categories() const
{
return QStringList() << "Perk Tutor";
}
//-----------------------------------------------------------------------------
qSlicerTransformRecorderModule::~qSlicerTransformRecorderModule()
{
}
//-----------------------------------------------------------------------------
QString qSlicerTransformRecorderModule::helpText()const
{
return "The purpose of the Transform Recorder module is to record and save tool trajectories associated with needle-based interventions. For help on how to use this module visit: <a href='http://www.perktutor.org/'>PerkTutor</a>.";
}
//-----------------------------------------------------------------------------
QString qSlicerTransformRecorderModule::acknowledgementText()const
{
return "This work was was funded by Cancer Care Ontario and the Ontario Consortium for Adaptive Interventions in Radiation Oncology (OCAIRO)";
}
//-----------------------------------------------------------------------------
QStringList qSlicerTransformRecorderModule::contributors()const
{
QStringList moduleContributors;
moduleContributors << QString("Tamas Ungi (Queen's University)");
moduleContributors << QString("Matthew S. Holden (Queen's University)");
return moduleContributors;
}
//-----------------------------------------------------------------------------
QIcon qSlicerTransformRecorderModule::icon()const
{
return QIcon(":/Icons/TransformRecorder.png");
}
//-----------------------------------------------------------------------------
void qSlicerTransformRecorderModule::setup()
{
this->Superclass::setup();
qSlicerCoreApplication* app = qSlicerCoreApplication::application();
vtkSlicerTransformRecorderLogic* TransformRecorderLogic = vtkSlicerTransformRecorderLogic::SafeDownCast( this->logic() );
// Register the IO
app->coreIOManager()->registerIO( new qSlicerTransformBufferReader( TransformRecorderLogic, this ) );
app->coreIOManager()->registerIO( new qSlicerNodeWriter( "Transform Recorder", QString( "Transform Buffer" ), QStringList() << "vtkMRMLTransformBufferNode", true, this ) );
}
//-----------------------------------------------------------------------------
qSlicerAbstractModuleRepresentation * qSlicerTransformRecorderModule::createWidgetRepresentation()
{
return new qSlicerTransformRecorderModuleWidget;
}
//-----------------------------------------------------------------------------
vtkMRMLAbstractLogic* qSlicerTransformRecorderModule::createLogic()
{
return vtkSlicerTransformRecorderLogic::New();
}