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 "vtkRenderingCoreModule.h" // For export macro 00032 #include "vtkPolyDataPainter.h" 00033 00034 class vtkDataArray; 00035 class vtkPoints; 00036 class vtkUnsignedCharArray; 00037 00038 class VTKRENDERINGCORE_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