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