VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/Rendering/OpenGL/vtkPrimitivePainter.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkPrimitivePainter.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 vtkPrimitivePainter_h
00029 #define vtkPrimitivePainter_h
00030 
00031 #include "vtkRenderingOpenGLModule.h" // For export macro
00032 #include "vtkPolyDataPainter.h"
00033 
00034 class vtkDataArray;
00035 class vtkPoints;
00036 class vtkUnsignedCharArray;
00037 
00038 class VTKRENDERINGOPENGL_EXPORT vtkPrimitivePainter : public vtkPolyDataPainter
00039 {
00040 public:
00041   vtkTypeMacro(vtkPrimitivePainter, vtkPolyDataPainter);
00042   void PrintSelf(ostream& os, vtkIndent indent);
00043 
00045 
00047   vtkGetMacro(SupportedPrimitive, int);
00049 
00050 protected:
00051   vtkPrimitivePainter();
00052   ~vtkPrimitivePainter();
00053 
00054   //BTX
00055   enum {
00056     VTK_PDM_NORMALS = 0x001,
00057     VTK_PDM_COLORS = 0x002,
00058     VTK_PDM_TCOORDS = 0x004,
00059     VTK_PDM_CELL_COLORS = 0x008,
00060     VTK_PDM_CELL_NORMALS = 0x010,
00061     VTK_PDM_OPAQUE_COLORS = 0x020,
00062     VTK_PDM_FIELD_COLORS = 0x040,
00063     VTK_PDM_EDGEFLAGS = 0x080,
00064     VTK_PDM_GENERIC_VERTEX_ATTRIBUTES = 0x100
00065   };
00066   //ETX
00067 
00073   virtual void PrepareForRendering(vtkRenderer*, vtkActor*);
00074 
00077   virtual void ProcessInformation(vtkInformation*);
00078 
00081   virtual vtkDataObject* GetOutput();
00082 
00084 
00093   virtual int RenderPrimitive(unsigned long flags, vtkDataArray* n,
00094     vtkUnsignedCharArray* c, vtkDataArray* t, vtkRenderer* ren) =0;
00096 
00098 
00104   virtual void RenderInternal(vtkRenderer* renderer, vtkActor* actor,
00105                               unsigned long typeflags,
00106                               bool forceCompileOnly);
00108 
00110   virtual void ReportReferences(vtkGarbageCollector *collector);
00111 
00112   int SupportedPrimitive; // must be set by subclasses.
00113   vtkSetMacro(SupportedPrimitive, int);
00114 
00115   int DisableScalarColor;
00116 
00117   vtkPolyData* OutputData;
00118   vtkTimeStamp OutputUpdateTime;
00119   bool GenericVertexAttributes;
00120   bool MultiTextureAttributes;
00121 
00122 private:
00123   vtkPrimitivePainter(const vtkPrimitivePainter&); // Not implemented.
00124   void operator=(const vtkPrimitivePainter&); // Not implemented.
00125 };
00126 
00127 #endif