VTK  9.7.1
vtkExporter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
27 #ifndef vtkExporter_h
28 #define vtkExporter_h
29 
30 #include "vtkDeprecation.h" // For deprecation macro
31 #include "vtkIOExportModule.h" // For export macro
32 #include "vtkObject.h"
33 
34 VTK_ABI_NAMESPACE_BEGIN
35 class vtkRenderWindow;
36 class vtkRenderer;
37 
38 class VTKIOEXPORT_EXPORT vtkExporter : public vtkObject
39 {
40 public:
41  vtkTypeMacro(vtkExporter, vtkObject);
42  void PrintSelf(ostream& os, vtkIndent indent) override;
43 
49  virtual void Write();
50 
55  void Update();
56 
58 
61  virtual void SetRenderWindow(vtkRenderWindow*);
62  vtkGetObjectMacro(RenderWindow, vtkRenderWindow);
64 
66 
76  virtual void SetActiveRenderer(vtkRenderer*);
77  vtkGetObjectMacro(ActiveRenderer, vtkRenderer);
79 
81 
85  VTK_DEPRECATED_IN_9_6_0("Please use SetRenderWindow instead")
86  void SetInput(vtkRenderWindow* renWin) { this->SetRenderWindow(renWin); }
87  VTK_DEPRECATED_IN_9_6_0("Please use GetRenderWindow instead")
88  vtkRenderWindow* GetInput() { return this->GetRenderWindow(); }
90 
95  void SetStartWrite(void (*f)(void*), void* arg);
96 
101  void SetEndWrite(void (*f)(void*), void* arg);
102 
106  void SetStartWriteArgDelete(void (*f)(void*));
107 
111  void SetEndWriteArgDelete(void (*f)(void*));
112 
116  vtkMTimeType GetMTime() override;
117 
118 protected:
119  vtkExporter();
120  ~vtkExporter() override;
121 
124  virtual void WriteData() = 0;
125 
126  void (*StartWrite)(void*);
127  void (*StartWriteArgDelete)(void*);
129  void (*EndWrite)(void*);
130  void (*EndWriteArgDelete)(void*);
131  void* EndWriteArg;
132 
133 private:
134  vtkExporter(const vtkExporter&) = delete;
135  void operator=(const vtkExporter&) = delete;
136 };
137 
138 VTK_ABI_NAMESPACE_END
139 #endif
abstract class to write a scene to a file
Definition: vtkExporter.h:38
abstract base class for most VTK objects
Definition: vtkObject.h:52
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:318
void * StartWriteArg
Definition: vtkExporter.h:128
#define VTK_UNBLOCKTHREADS
abstract specification for renderers
Definition: vtkRenderer.h:63
#define VTK_DEPRECATED_IN_9_6_0(reason)
a simple class to control print indentation
Definition: vtkIndent.h:28
virtual vtkMTimeType GetMTime()
Return this object's modified time.
vtkRenderer * ActiveRenderer
Definition: vtkExporter.h:123
create a window for renderers to draw into
vtkRenderWindow * RenderWindow
Definition: vtkExporter.h:122
void * EndWriteArg
Definition: vtkExporter.h:131