VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPolyDataPainter.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 =========================================================================*/ 00015 /* 00016 * Copyright 2004 Sandia Corporation. 00017 * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive 00018 * license for use of this work by or on behalf of the 00019 * U.S. Government. Redistribution and use in source and binary forms, with 00020 * or without modification, are permitted provided that this Notice and any 00021 * statement of authorship are reproduced on all copies. 00022 */ 00023 00043 #ifndef __vtkPolyDataPainter_h 00044 #define __vtkPolyDataPainter_h 00045 00046 #include "vtkRenderingCoreModule.h" // For export macro 00047 #include "vtkPainter.h" 00048 00049 class vtkInformationIntegerKey; 00050 class vtkInformationObjectBaseKey; 00051 class vtkPolyData; 00052 00053 class VTKRENDERINGCORE_EXPORT vtkPolyDataPainter : public vtkPainter 00054 { 00055 public: 00056 vtkTypeMacro(vtkPolyDataPainter, vtkPainter); 00057 virtual void PrintSelf(ostream &os, vtkIndent indent); 00058 00060 vtkPolyData* GetInputAsPolyData(); 00061 00064 vtkPolyData* GetOutputAsPolyData(); 00065 00069 static vtkInformationIntegerKey* BUILD_NORMALS(); 00070 00072 static vtkInformationIntegerKey* DISABLE_SCALAR_COLOR(); 00073 00074 // Set the mapping between vtkPointData (vtkCellData) arrays and 00075 // generic vertex attributes. 00076 static vtkInformationObjectBaseKey* DATA_ARRAY_TO_VERTEX_ATTRIBUTE(); 00077 00079 static vtkInformationObjectBaseKey* SHADER_DEVICE_ADAPTOR(); 00080 00082 00084 virtual void Render(vtkRenderer* renderer, vtkActor* actor, 00085 unsigned long typeflags, bool forceCompileOnly); 00087 00088 protected: 00089 vtkPolyDataPainter(); 00090 ~vtkPolyDataPainter(); 00091 00092 int BuildNormals; // ivar synchornized with this->Information before 00093 // RenderInternal() is called. The ivar are purposefully protected, 00094 // the only way to affecting these from outside should be using 00095 // the information object. 00096 vtkSetMacro(BuildNormals, int); 00097 00100 virtual void ProcessInformation(vtkInformation*); 00101 00102 private: 00103 vtkPolyDataPainter(const vtkPolyDataPainter &); // Not implemented. 00104 void operator=(const vtkPolyDataPainter &); // Not implemented. 00105 }; 00106 00107 #endif //_vtkPolyDataPainter_h