VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 00005 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00006 All rights reserved. 00007 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notice for more information. 00012 00013 =========================================================================*/ 00021 #ifndef vtkOpenGLSphereMapper_h 00022 #define vtkOpenGLSphereMapper_h 00023 00024 #include "vtkDomainsChemistryOpenGL2Module.h" // For export macro 00025 #include "vtkOpenGLPolyDataMapper.h" 00026 00027 class VTKDOMAINSCHEMISTRYOPENGL2_EXPORT vtkOpenGLSphereMapper : public vtkOpenGLPolyDataMapper 00028 { 00029 public: 00030 static vtkOpenGLSphereMapper* New(); 00031 vtkTypeMacro(vtkOpenGLSphereMapper, vtkOpenGLPolyDataMapper) 00032 void PrintSelf(ostream& os, vtkIndent indent); 00033 00035 00036 vtkSetStringMacro(ScaleArray); 00038 00040 virtual void Render(vtkRenderer *ren, vtkActor *act); 00041 00042 protected: 00043 vtkOpenGLSphereMapper(); 00044 ~vtkOpenGLSphereMapper(); 00045 00047 00048 virtual void GetShaderTemplate(std::string &VertexCode, 00049 std::string &fragmentCode, 00050 std::string &geometryCode, 00051 int lightComplexity, 00052 vtkRenderer *ren, vtkActor *act); 00054 00056 00057 virtual void ReplaceShaderValues(std::string &VertexCode, 00058 std::string &fragmentCode, 00059 std::string &geometryCode, 00060 int lightComplexity, 00061 vtkRenderer *ren, vtkActor *act); 00063 00065 virtual void SetCameraShaderParameters(vtkgl::CellBO &cellBO, vtkRenderer *ren, vtkActor *act); 00066 00068 virtual void SetMapperShaderParameters(vtkgl::CellBO &cellBO, vtkRenderer *ren, vtkActor *act); 00069 00070 const char *ScaleArray; 00071 00073 virtual bool GetNeedToRebuildBufferObjects(vtkRenderer *ren, vtkActor *act); 00074 00076 virtual void BuildBufferObjects(vtkRenderer *ren, vtkActor *act); 00077 00078 virtual void RenderPieceDraw(vtkRenderer *ren, vtkActor *act); 00079 00080 // used for transparency 00081 bool Invert; 00082 00083 private: 00084 vtkOpenGLSphereMapper(const vtkOpenGLSphereMapper&); // Not implemented. 00085 void operator=(const vtkOpenGLSphereMapper&); // Not implemented. 00086 }; 00087 00088 #endif