VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/Domains/ChemistryOpenGL2/vtkOpenGLSphereMapper.h
Go to the documentation of this file.
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