VTK  9.3.20240328
vtkPOVExporter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright (c) 2007, Los Alamos National Security, LLC
3 // SPDX-License-Identifier: LicenseRef-BSD-3-Clause-LANL-USGov
18 #ifndef vtkPOVExporter_h
19 #define vtkPOVExporter_h
20 
21 #include "vtkExporter.h"
22 #include "vtkIOExportModule.h" // For export macro
23 
24 VTK_ABI_NAMESPACE_BEGIN
25 class vtkRenderer;
26 class vtkActor;
27 class vtkCamera;
28 class vtkLight;
29 class vtkPolyData;
30 class vtkProperty;
31 class vtkTexture;
32 class vtkPOVInternals;
33 
34 class VTKIOEXPORT_EXPORT vtkPOVExporter : public vtkExporter
35 {
36 public:
37  static vtkPOVExporter* New();
38  vtkTypeMacro(vtkPOVExporter, vtkExporter);
39  void PrintSelf(ostream& os, vtkIndent indent) override;
40 
42 
48 
49 protected:
51  ~vtkPOVExporter() override;
52 
53  void WriteData() override;
54  virtual void WriteHeader(vtkRenderer* renderer);
55  void WriteCamera(vtkCamera* camera);
56  void WriteLight(vtkLight* light);
57  void WriteProperty(vtkProperty* property);
58  void WritePolygons(vtkPolyData* polydata, bool scalar_visible);
59  void WriteTriangleStrips(vtkPolyData* strip, bool scalar_visible);
60 
61  virtual void WriteActor(vtkActor* actor);
62 
63  char* FileName;
64  FILE* FilePtr;
65 
66 private:
67  vtkPOVExporter(const vtkPOVExporter&) = delete;
68  void operator=(const vtkPOVExporter&) = delete;
69 
70  vtkPOVInternals* Internals;
71 };
72 
73 VTK_ABI_NAMESPACE_END
74 #endif
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:150
a virtual camera for 3D rendering
Definition: vtkCamera.h:150
abstract class to write a scene to a file
Definition: vtkExporter.h:37
a simple class to control print indentation
Definition: vtkIndent.h:108
a virtual light for 3D rendering
Definition: vtkLight.h:158
Export scene into povray format.
void WriteTriangleStrips(vtkPolyData *strip, bool scalar_visible)
vtkSetFilePathMacro(FileName)
The filename to save into.
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
static vtkPOVExporter * New()
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:180
represent surface properties of a geometric object
Definition: vtkProperty.h:166
abstract specification for renderers
Definition: vtkRenderer.h:171
handles properties associated with a texture map
Definition: vtkTexture.h:167