forked from Slicer/SlicerGitSVNArchive
-
Notifications
You must be signed in to change notification settings - Fork 2
/
vtkMRMLSceneImportTest.cxx
95 lines (80 loc) · 2.74 KB
/
vtkMRMLSceneImportTest.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
/*==============================================================================
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
==============================================================================*/
// MRML includes
#include "vtkMRMLScalarVolumeDisplayNode.h"
#include "vtkMRMLScalarVolumeNode.h"
#include "vtkMRMLScene.h"
#include "vtkMRMLSceneViewNode.h"
// VTK includes
#include <vtkNew.h>
#include <vtkSmartPointer.h>
bool connect(const char* sceneFilePath);
bool connectTwice(const char* sceneFilePath);
bool import(const char* sceneFilePath);
bool importTwice(const char* sceneFilePath);
//---------------------------------------------------------------------------
int vtkMRMLSceneImportTest(int argc, char * argv[] )
{
if (argc < 2)
{
std::cout << "Usage: vtkMRMLSceneImportTest scene_file_path.mrml"
<< std::endl;
return EXIT_FAILURE;
}
const char* sceneFilePath = argv[1];
bool res = true;
res = connect("") && res;
res = connect(sceneFilePath) && res;
res = connectTwice(sceneFilePath) && res;
res = import("") && res;
res = import(sceneFilePath) && res;
res = importTwice(sceneFilePath) && res;
return res ? EXIT_SUCCESS : EXIT_FAILURE;
}
//---------------------------------------------------------------------------
bool connect(const char * sceneFilePath)
{
vtkNew<vtkMRMLScene> scene;
scene->SetURL(sceneFilePath);
scene->Connect();
return true;
}
//---------------------------------------------------------------------------
bool connectTwice(const char * sceneFilePath)
{
vtkNew<vtkMRMLScene> scene;
scene->SetURL(sceneFilePath);
scene->Connect();
int numberOfNodes = scene->GetNumberOfNodes();
scene->Connect();
int newNumberOfNodes = scene->GetNumberOfNodes();
return numberOfNodes == newNumberOfNodes;
}
//---------------------------------------------------------------------------
bool import(const char * sceneFilePath)
{
vtkNew<vtkMRMLScene> scene;
scene->SetURL(sceneFilePath);
scene->Import();
return true;
}
//---------------------------------------------------------------------------
bool importTwice(const char * sceneFilePath)
{
vtkNew<vtkMRMLScene> scene;
scene->SetURL(sceneFilePath);
scene->Import();
scene->Import();
return true;
}