VTK  9.1.0
vtkPOVExporter.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkPOVExporter.h
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/*=========================================================================
16
17 Program: VTK/ParaView Los Alamos National Laboratory Modules (PVLANL)
18 Module: vtkPOVExporter.h
19
20Copyright (c) 2007, Los Alamos National Security, LLC
21
22All rights reserved.
23
24Copyright 2007. Los Alamos National Security, LLC.
25This software was produced under U.S. Government contract DE-AC52-06NA25396
26for Los Alamos National Laboratory (LANL), which is operated by
27Los Alamos National Security, LLC for the U.S. Department of Energy.
28The U.S. Government has rights to use, reproduce, and distribute this software.
29NEITHER THE GOVERNMENT NOR LOS ALAMOS NATIONAL SECURITY, LLC MAKES ANY WARRANTY,
30EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE.
31If software is modified to produce derivative works, such modified software
32should be clearly marked, so as not to confuse it with the version available
33from LANL.
34
35Additionally, redistribution and use in source and binary forms, with or
36without modification, are permitted provided that the following conditions
37are met:
38- Redistributions of source code must retain the above copyright notice,
39 this list of conditions and the following disclaimer.
40- Redistributions in binary form must reproduce the above copyright notice,
41 this list of conditions and the following disclaimer in the documentation
42 and/or other materials provided with the distribution.
43- Neither the name of Los Alamos National Security, LLC, Los Alamos National
44 Laboratory, LANL, the U.S. Government, nor the names of its contributors
45 may be used to endorse or promote products derived from this software
46 without specific prior written permission.
47
48THIS SOFTWARE IS PROVIDED BY LOS ALAMOS NATIONAL SECURITY, LLC AND CONTRIBUTORS
49"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
50THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
51ARE DISCLAIMED. IN NO EVENT SHALL LOS ALAMOS NATIONAL SECURITY, LLC OR
52CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
53EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
54PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
55OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
56WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
57OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
58ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
59
60=========================================================================*/
61
76#ifndef vtkPOVExporter_h
77#define vtkPOVExporter_h
78
79#include "vtkExporter.h"
80#include "vtkIOExportModule.h" // For export macro
81
82class vtkRenderer;
83class vtkActor;
84class vtkCamera;
85class vtkLight;
86class vtkPolyData;
87class vtkProperty;
88class vtkTexture;
89class vtkPOVInternals;
90
91class VTKIOEXPORT_EXPORT vtkPOVExporter : public vtkExporter
92{
93public:
96 void PrintSelf(ostream& os, vtkIndent indent) override;
97
99
105
106protected:
108 ~vtkPOVExporter() override;
109
110 void WriteData() override;
111 virtual void WriteHeader(vtkRenderer* renderer);
112 void WriteCamera(vtkCamera* camera);
113 void WriteLight(vtkLight* light);
114 void WriteProperty(vtkProperty* property);
115 void WritePolygons(vtkPolyData* polydata, bool scalar_visible);
116 void WriteTriangleStrips(vtkPolyData* strip, bool scalar_visible);
117
118 virtual void WriteActor(vtkActor* actor);
119
120 char* FileName;
121 FILE* FilePtr;
122
123private:
124 vtkPOVExporter(const vtkPOVExporter&) = delete;
125 void operator=(const vtkPOVExporter&) = delete;
126
127 vtkPOVInternals* Internals;
128};
129
130#endif
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:155
a virtual camera for 3D rendering
Definition: vtkCamera.h:155
abstract class to write a scene to a file
Definition: vtkExporter.h:48
a simple class to control print indentation
Definition: vtkIndent.h:113
a virtual light for 3D rendering
Definition: vtkLight.h:166
Export scene into povray format.
void WriteTriangleStrips(vtkPolyData *strip, bool scalar_visible)
vtkSetFilePathMacro(FileName)
The filename to save into.
static vtkPOVExporter * New()
void WriteLight(vtkLight *light)
void WritePolygons(vtkPolyData *polydata, bool scalar_visible)
virtual void WriteActor(vtkActor *actor)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void WriteProperty(vtkProperty *property)
~vtkPOVExporter() override
void WriteData() override
void WriteCamera(vtkCamera *camera)
virtual void WriteHeader(vtkRenderer *renderer)
vtkGetFilePathMacro(FileName)
The filename to save into.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:195
represent surface properties of a geometric object
Definition: vtkProperty.h:171
abstract specification for renderers
Definition: vtkRenderer.h:182
handles properties associated with a texture map
Definition: vtkTexture.h:175