VTK
|
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 "vtkPolyDataPainter.h" 00032 00033 class vtkDataArray; 00034 class vtkPoints; 00035 class vtkUnsignedCharArray; 00036 00037 class VTK_RENDERING_EXPORT vtkPrimitivePainter : public vtkPolyDataPainter 00038 { 00039 public: 00040 vtkTypeMacro(vtkPrimitivePainter, vtkPolyDataPainter); 00041 void PrintSelf(ostream& os, vtkIndent indent); 00042 00044 00046 vtkGetMacro(SupportedPrimitive, int); 00048 00049 protected: 00050 vtkPrimitivePainter(); 00051 ~vtkPrimitivePainter(); 00052 00053 //BTX 00054 enum { 00055 VTK_PDM_NORMALS = 0x001, 00056 VTK_PDM_COLORS = 0x002, 00057 VTK_PDM_TCOORDS = 0x004, 00058 VTK_PDM_CELL_COLORS = 0x008, 00059 VTK_PDM_CELL_NORMALS = 0x010, 00060 VTK_PDM_OPAQUE_COLORS = 0x020, 00061 VTK_PDM_FIELD_COLORS = 0x040, 00062 VTK_PDM_EDGEFLAGS = 0x080, 00063 VTK_PDM_GENERIC_VERTEX_ATTRIBUTES = 0x100 00064 }; 00065 //ETX 00066 00072 virtual void PrepareForRendering(vtkRenderer*, vtkActor*); 00073 00076 virtual void ProcessInformation(vtkInformation*); 00077 00080 virtual vtkDataObject* GetOutput(); 00081 00083 00092 virtual int RenderPrimitive(unsigned long flags, vtkDataArray* n, 00093 vtkUnsignedCharArray* c, vtkDataArray* t, vtkRenderer* ren) =0; 00095 00097 00103 virtual void RenderInternal(vtkRenderer* renderer, vtkActor* actor, 00104 unsigned long typeflags, 00105 bool forceCompileOnly); 00107 00109 virtual void ReportReferences(vtkGarbageCollector *collector); 00110 00111 int SupportedPrimitive; // must be set by subclasses. 00112 vtkSetMacro(SupportedPrimitive, int); 00113 00114 int DisableScalarColor; 00115 00116 vtkPolyData* OutputData; 00117 vtkTimeStamp OutputUpdateTime; 00118 bool GenericVertexAttributes; 00119 bool MultiTextureAttributes; 00120 00121 private: 00122 vtkPrimitivePainter(const vtkPrimitivePainter&); // Not implemented. 00123 void operator=(const vtkPrimitivePainter&); // Not implemented. 00124 }; 00125 00126 #endif