1 /*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkImporter.cxx
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14 =========================================================================*/
15 #include "vtkImporter.h"
16 #include "vtkRendererCollection.h"
17 #include "vtkRenderWindow.h"
18
19
20 vtkCxxSetObjectMacro(vtkImporter,RenderWindow,vtkRenderWindow);
21
vtkImporter()22 vtkImporter::vtkImporter ()
23 {
24 this->Renderer = nullptr;
25 this->RenderWindow = nullptr;
26 }
27
~vtkImporter()28 vtkImporter::~vtkImporter ()
29 {
30 this->SetRenderWindow(nullptr);
31
32 if (this->Renderer)
33 {
34 this->Renderer->UnRegister( nullptr );
35 this->Renderer = nullptr;
36 }
37
38 }
39
ReadData()40 void vtkImporter::ReadData()
41 {
42 // this->Import actors, cameras, lights and properties
43 this->ImportActors (this->Renderer);
44 this->ImportCameras (this->Renderer);
45 this->ImportLights (this->Renderer);
46 this->ImportProperties (this->Renderer);
47 }
48
Read()49 void vtkImporter::Read ()
50 {
51 vtkRenderer *renderer;
52
53 // if there is no render window, create one
54 if (this->RenderWindow == nullptr)
55 {
56 vtkDebugMacro( <<"Creating a RenderWindow\n");
57 this->RenderWindow = vtkRenderWindow::New ();
58 }
59
60 // Get the first renderer in the render window
61 renderer = this->RenderWindow->GetRenderers()->GetFirstRenderer();
62 if (renderer == nullptr)
63 {
64 vtkDebugMacro( <<"Creating a Renderer\n");
65 this->Renderer = vtkRenderer::New ();
66 renderer = this->Renderer;
67 this->RenderWindow->AddRenderer (renderer);
68 }
69 else
70 {
71 if (this->Renderer)
72 {
73 this->Renderer->UnRegister(nullptr);
74 }
75 this->Renderer = renderer;
76 this->Renderer->Register( this );
77 }
78
79 if (this->ImportBegin ())
80 {
81 this->ReadData();
82 this->ImportEnd();
83 }
84 }
85
PrintSelf(ostream & os,vtkIndent indent)86 void vtkImporter::PrintSelf(ostream& os, vtkIndent indent)
87 {
88 this->Superclass::PrintSelf(os,indent);
89
90 os << indent << "Render Window: ";
91 if ( this->RenderWindow )
92 {
93 os << this->RenderWindow << "\n";
94 }
95 else
96 {
97 os << "(none)\n";
98 }
99
100 os << indent << "Renderer: ";
101 if ( this->Renderer )
102 {
103 os << this->Renderer << "\n";
104 }
105 else
106 {
107 os << "(none)\n";
108 }
109
110 }
111
112
113
114
115
116
117