VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkExporter.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00038 #ifndef __vtkExporter_h 00039 #define __vtkExporter_h 00040 00041 #include "vtkObject.h" 00042 class vtkRenderWindow; 00043 00044 class VTK_RENDERING_EXPORT vtkExporter : public vtkObject 00045 { 00046 public: 00047 vtkTypeMacro(vtkExporter,vtkObject); 00048 void PrintSelf(ostream& os, vtkIndent indent); 00049 00052 virtual void Write(); 00053 00055 void Update(); 00056 00058 00059 virtual void SetRenderWindow(vtkRenderWindow*); 00060 vtkGetObjectMacro(RenderWindow,vtkRenderWindow); 00062 00064 00066 void SetInput(vtkRenderWindow *renWin) {this->SetRenderWindow(renWin);}; 00067 vtkRenderWindow *GetInput() {return this->GetRenderWindow();}; 00069 00072 void SetStartWrite(void (*f)(void *), void *arg); 00073 00076 void SetEndWrite(void (*f)(void *), void *arg); 00077 00079 void SetStartWriteArgDelete(void (*f)(void *)); 00080 00082 void SetEndWriteArgDelete(void (*f)(void *)); 00083 00085 unsigned long GetMTime(); 00086 00087 protected: 00088 vtkExporter(); 00089 ~vtkExporter(); 00090 00091 vtkRenderWindow *RenderWindow; 00092 virtual void WriteData() = 0; 00093 00094 void (*StartWrite)(void *); 00095 void (*StartWriteArgDelete)(void *); 00096 void *StartWriteArg; 00097 void (*EndWrite)(void *); 00098 void (*EndWriteArgDelete)(void *); 00099 void *EndWriteArg; 00100 private: 00101 vtkExporter(const vtkExporter&); // Not implemented. 00102 void operator=(const vtkExporter&); // Not implemented. 00103 }; 00104 00105 #endif 00106 00107