-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathqSlicerLinearObjectRegistrationIO.cxx
90 lines (69 loc) · 3.06 KB
/
qSlicerLinearObjectRegistrationIO.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
/*==============================================================================
Program: 3D Slicer
Copyright (c) Kitware Inc.
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.
This file was originally developed by Julien Finet, Kitware Inc.
and was partially funded by NIH grant 3P41RR013218-12S1
==============================================================================*/
// Qt includes
// SlicerQt includes
#include "qSlicerLinearObjectRegistrationIO.h"
// MRML includes
#include "vtkMRMLScene.h"
#include "vtkMRMLLinearObjectCollectionNode.h"
// VTK includes
#include <vtkSmartPointer.h>
#include "vtkXMLDataParser.h"
//-----------------------------------------------------------------------------
class qSlicerLinearObjectRegistrationIOPrivate
{
public:
bool notUsed;
};
//-----------------------------------------------------------------------------
qSlicerLinearObjectRegistrationIO::qSlicerLinearObjectRegistrationIO( QObject* _parent )
: Superclass(_parent)
, d_ptr(new qSlicerLinearObjectRegistrationIOPrivate)
{
}
//-----------------------------------------------------------------------------
qSlicerLinearObjectRegistrationIO::~qSlicerLinearObjectRegistrationIO()
{
}
//-----------------------------------------------------------------------------
QString qSlicerLinearObjectRegistrationIO::description() const
{
return "Linear Object Collection";
}
//-----------------------------------------------------------------------------
qSlicerIO::IOFileType qSlicerLinearObjectRegistrationIO::fileType() const
{
return QString("Linear Object Collection");
}
//-----------------------------------------------------------------------------
QStringList qSlicerLinearObjectRegistrationIO::extensions() const
{
return QStringList() << "Linear Object Collection (*.xml)";
}
//-----------------------------------------------------------------------------
bool qSlicerLinearObjectRegistrationIO::load(const IOProperties& properties)
{
Q_D(qSlicerLinearObjectRegistrationIO);
Q_ASSERT( properties.contains("fileName") );
QString fileName = properties["fileName"].toString();
vtkSmartPointer< vtkMRMLLinearObjectCollectionNode > importCollectionNode;
importCollectionNode.TakeReference( vtkMRMLLinearObjectCollectionNode::SafeDownCast( this->mrmlScene()->CreateNodeByClass( "vtkMRMLLinearObjectCollectionNode" ) ) );
importCollectionNode->SetScene( this->mrmlScene() );
this->mrmlScene()->AddNode( importCollectionNode );
vtkSmartPointer< vtkXMLDataParser > parser = vtkSmartPointer< vtkXMLDataParser >::New();
parser->SetFileName( fileName.toStdString().c_str() );
parser->Parse();
importCollectionNode->FromXMLElement( parser->GetRootElement() );
return true; // TODO: Check to see read was successful first
}