VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkDefaultPainter.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 =========================================================================*/ 00032 #ifndef __vtkDefaultPainter_h 00033 #define __vtkDefaultPainter_h 00034 00035 #include "vtkPainter.h" 00036 00037 class vtkClipPlanesPainter; 00038 class vtkCoincidentTopologyResolutionPainter; 00039 class vtkCompositePainter; 00040 class vtkDisplayListPainter; 00041 class vtkLightingPainter; 00042 class vtkRepresentationPainter; 00043 class vtkScalarsToColorsPainter; 00044 00045 class VTK_RENDERING_EXPORT vtkDefaultPainter : public vtkPainter 00046 { 00047 public: 00048 static vtkDefaultPainter *New(); 00049 vtkTypeMacro(vtkDefaultPainter, vtkPainter); 00050 virtual void PrintSelf(ostream &os, vtkIndent indent); 00051 00053 00054 void SetScalarsToColorsPainter(vtkScalarsToColorsPainter*); 00055 vtkGetObjectMacro(ScalarsToColorsPainter, vtkScalarsToColorsPainter); 00057 00059 00060 void SetClipPlanesPainter(vtkClipPlanesPainter*); 00061 vtkGetObjectMacro(ClipPlanesPainter, vtkClipPlanesPainter); 00063 00065 00066 void SetDisplayListPainter(vtkDisplayListPainter*); 00067 vtkGetObjectMacro(DisplayListPainter, vtkDisplayListPainter); 00069 00071 00072 void SetCompositePainter(vtkCompositePainter*); 00073 vtkGetObjectMacro(CompositePainter, vtkCompositePainter); 00075 00077 00078 void SetCoincidentTopologyResolutionPainter( 00079 vtkCoincidentTopologyResolutionPainter*); 00080 vtkGetObjectMacro(CoincidentTopologyResolutionPainter, 00081 vtkCoincidentTopologyResolutionPainter); 00083 00085 00086 void SetLightingPainter(vtkLightingPainter*); 00087 vtkGetObjectMacro(LightingPainter, vtkLightingPainter); 00089 00091 00092 void SetRepresentationPainter(vtkRepresentationPainter*); 00093 vtkGetObjectMacro(RepresentationPainter, vtkRepresentationPainter); 00095 00097 00100 virtual void SetDelegatePainter(vtkPainter*); 00101 virtual vtkPainter* GetDelegatePainter() { return this->DefaultPainterDelegate; } 00103 00105 00110 virtual void Render(vtkRenderer* renderer, vtkActor* actor, 00111 unsigned long typeflags, bool forceCompileOnly); 00113 00118 virtual void ReleaseGraphicsResources(vtkWindow *); 00119 00123 void UpdateBounds(double bounds[6]); 00124 00125 protected: 00126 vtkDefaultPainter(); 00127 ~vtkDefaultPainter(); 00128 00130 virtual void BuildPainterChain(); 00131 00133 virtual void ReportReferences(vtkGarbageCollector *collector); 00134 00135 vtkScalarsToColorsPainter* ScalarsToColorsPainter; 00136 vtkClipPlanesPainter* ClipPlanesPainter; 00137 vtkDisplayListPainter* DisplayListPainter; 00138 vtkCompositePainter* CompositePainter; 00139 vtkCoincidentTopologyResolutionPainter* CoincidentTopologyResolutionPainter; 00140 vtkLightingPainter* LightingPainter; 00141 vtkRepresentationPainter* RepresentationPainter; 00142 vtkTimeStamp ChainBuildTime; 00143 00144 vtkPainter* DefaultPainterDelegate; 00145 void SetDefaultPainterDelegate(vtkPainter*); 00146 00147 private: 00148 vtkDefaultPainter(const vtkDefaultPainter &); // Not implemented 00149 void operator=(const vtkDefaultPainter &); // Not implemented 00150 }; 00151 00152 #endif //_vtkDefaultPainter_h 00153