ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
actorexporter.cpp
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #include "actorexporter.h"
9 
10 #include <vtkActor.h>
11 #include <vtkRenderWindow.h>
12 #include <vtkRenderer.h>
13 #include <vtkVRMLExporter.h>
14 
15 #include "vtkutils.h"
16 
17 namespace VtkUtils {
18 
19 ActorExporter::ActorExporter(vtkActor* actor, const QString& file)
20  : m_actor(actor), m_exportFile(file) {
21  setAutoDelete(true);
22 }
23 
25  if (!m_actor || m_exportFile.isEmpty()) return;
26 
27  VTK_CREATE(vtkRenderWindow, renderWindow);
28  VTK_CREATE(vtkRenderer, renderer);
29  renderer->AddActor(m_actor);
30  renderWindow->AddRenderer(renderer);
31 
32  VTK_CREATE(vtkVRMLExporter, exporter);
33  exporter->SetFileName(m_exportFile.toUtf8().data());
34  exporter->SetRenderWindow(renderWindow);
35  exporter->Write();
36 }
37 
38 } // namespace VtkUtils
ActorExporter(vtkActor *actor, const QString &file)
#define VTK_CREATE(type, name)