VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkWebApplication.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 =========================================================================*/ 00023 #ifndef vtkWebApplication_h 00024 #define vtkWebApplication_h 00025 00026 #include "vtkObject.h" 00027 #include "vtkWebCoreModule.h" // needed for exports 00028 00029 class vtkObjectIdMap; 00030 class vtkRenderWindow; 00031 class vtkUnsignedCharArray; 00032 class vtkWebInteractionEvent; 00033 00034 class VTKWEBCORE_EXPORT vtkWebApplication : public vtkObject 00035 { 00036 public: 00037 static vtkWebApplication* New(); 00038 vtkTypeMacro(vtkWebApplication, vtkObject); 00039 void PrintSelf(ostream& os, vtkIndent indent); 00040 00042 00043 enum 00044 { 00045 ENCODING_NONE=0, 00046 ENCODING_BASE64=1 00047 }; 00048 vtkSetClampMacro(ImageEncoding, int, ENCODING_NONE, ENCODING_BASE64); 00049 vtkGetMacro(ImageEncoding, int); 00051 00053 00054 enum 00055 { 00056 COMPRESSION_NONE=0, 00057 COMPRESSION_PNG=1, 00058 COMPRESSION_JPEG=2 00059 }; 00060 vtkSetClampMacro(ImageCompression, int, COMPRESSION_NONE, COMPRESSION_JPEG); 00061 vtkGetMacro(ImageCompression, int); 00063 00065 00066 vtkUnsignedCharArray* StillRender(vtkRenderWindow* view, int quality = 100); 00067 vtkUnsignedCharArray* InteractiveRender(vtkRenderWindow* view, int quality = 50); 00068 const char* StillRenderToString(vtkRenderWindow* view, unsigned long time = 0, int quality = 100); 00070 00074 bool GetHasImagesBeingProcessed(vtkRenderWindow*); 00075 00077 00079 bool HandleInteractionEvent( 00080 vtkRenderWindow* view, vtkWebInteractionEvent* event); 00082 00084 void InvalidateCache(vtkRenderWindow* view); 00085 00087 00088 vtkGetMacro(LastStillRenderToStringMTime, unsigned long); 00090 00094 const char* GetWebGLSceneMetaData(vtkRenderWindow* view); 00095 00098 const char* GetWebGLBinaryData(vtkRenderWindow *view, const char* id, int partIndex); 00099 00100 vtkObjectIdMap* GetObjectIdMap(); 00101 00102 //BTX 00103 protected: 00104 vtkWebApplication(); 00105 ~vtkWebApplication(); 00106 00107 int ImageEncoding; 00108 int ImageCompression; 00109 unsigned long LastStillRenderToStringMTime; 00110 00111 private: 00112 vtkWebApplication(const vtkWebApplication&); // Not implemented 00113 void operator=(const vtkWebApplication&); // Not implemented 00114 00115 class vtkInternals; 00116 vtkInternals* Internals; 00117 00118 //ETX 00119 }; 00120 00121 #endif