VTK
dox/Rendering/vtkDefaultPainter.h
Go to the documentation of this file.
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