00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00039 #ifndef __vtkStandardPolyDataPainter_h
00040 #define __vtkStandardPolyDataPainter_h
00041 
00042 #include "vtkPolyDataPainter.h"
00043 
00044 class vtkCellArray;
00045 class vtkDataArray;
00046 class vtkPointData;
00047 class vtkPoints;
00048 class vtkShaderDeviceAdapter;
00049 class vtkGLSLShaderDeviceAdapter2;
00050 
00051 class VTK_RENDERING_EXPORT vtkStandardPolyDataPainter : public vtkPolyDataPainter
00052 {
00053 public:
00054   vtkTypeMacro(vtkStandardPolyDataPainter, vtkPolyDataPainter);
00055   virtual void PrintSelf(ostream &os, vtkIndent indent);
00056   static vtkStandardPolyDataPainter *New();
00057 
00058   void AddMultiTextureCoordsArray(vtkDataArray * array);
00059 
00060 protected:
00061   vtkStandardPolyDataPainter();
00062   ~vtkStandardPolyDataPainter();
00063   
00065 
00067   virtual void RenderInternal(vtkRenderer* renderer, vtkActor* actor,
00068                               unsigned long typeflags, bool forceCompileOnly);
00070 
00071   void DrawCells(int mode, vtkCellArray *connectivity,
00072                  vtkIdType startCellId, 
00073                  vtkShaderDeviceAdapter *shaderDevice,
00074                  vtkGLSLShaderDeviceAdapter2 *shaderDevice2,
00075                  vtkRenderer *renderer, 
00076                  int buildnormals, int interpolation);
00077 
00080   virtual void ProcessInformation(vtkInformation*);
00081 
00082   void UpdateGenericAttributesCache(vtkShaderDeviceAdapter *shaderDevice,
00083                                     vtkGLSLShaderDeviceAdapter2 *shaderDevice2);
00084 
00085   vtkIdType TotalCells;
00086 private:
00087   vtkStandardPolyDataPainter(const vtkStandardPolyDataPainter&); 
00088   void operator=(const vtkStandardPolyDataPainter&); 
00089 
00090   class vtkInternal;
00091   vtkInternal* Internal;
00092 
00093 };
00094 
00095 #endif //__vtkStandardPolyDataPainter_h