00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkRenderState.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 =========================================================================*/ 00028 #ifndef __vtkRenderState_h 00029 #define __vtkRenderState_h 00030 00031 #include "vtkObject.h" 00032 00033 class vtkRenderer; 00034 class vtkProp; 00035 class vtkFrameBufferObject; 00036 class vtkInformation; 00037 00038 class VTK_RENDERING_EXPORT vtkRenderState 00039 { 00040 public: 00044 vtkRenderState(vtkRenderer *renderer); 00045 00048 ~vtkRenderState(); 00049 00051 bool IsValid() const; 00052 00056 vtkRenderer *GetRenderer() const; 00057 00061 vtkFrameBufferObject *GetFrameBuffer() const; 00062 00065 void SetFrameBuffer(vtkFrameBufferObject *fbo); 00066 00068 void GetWindowSize(int size[2]) const; 00069 00071 vtkProp **GetPropArray() const; 00072 00075 int GetPropArrayCount() const; 00076 00078 00087 void SetPropArrayAndCount(vtkProp **propArray, 00088 int propArrayCount); 00090 00094 vtkInformation *GetRequiredKeys() const; 00095 00098 void SetRequiredKeys(vtkInformation *keys); 00099 00100 protected: 00103 vtkRenderer *Renderer; 00104 00108 vtkFrameBufferObject *FrameBuffer; 00109 00111 00116 vtkProp **PropArray; 00117 int PropArrayCount; 00119 00122 vtkInformation *RequiredKeys; 00123 00124 private: 00125 vtkRenderState(); // no default constructor. 00126 vtkRenderState(const vtkRenderState &); // Not implemented. 00127 void operator=(const vtkRenderState &); // Not implemented. 00128 }; 00129 00130 #endif