/usr/include/vtk-7.1/vtkOpenGLPolyDataMapper2D.h is in libvtk7-dev 7.1.1+dfsg1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkOpenGLPolyDataMapper2D.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkOpenGLPolyDataMapper2D
* @brief 2D PolyData support for OpenGL
*
* vtkOpenGLPolyDataMapper2D provides 2D PolyData annotation support for
* vtk under OpenGL. Normally the user should use vtkPolyDataMapper2D
* which in turn will use this class.
*
* @sa
* vtkPolyDataMapper2D
*/
#ifndef vtkOpenGLPolyDataMapper2D_h
#define vtkOpenGLPolyDataMapper2D_h
#include "vtkRenderingOpenGL2Module.h" // For export macro
#include "vtkPolyDataMapper2D.h"
#include "vtkNew.h" // used for ivars
#include "vtkOpenGLHelper.h" // used for ivars
#include <string> // For API.
#include <vector> //for ivars
class vtkActor2D;
class vtkGenericOpenGLResourceFreeCallback;
class vtkMatrix4x4;
class vtkOpenGLBufferObject;
class vtkOpenGLHelper;
class vtkOpenGLVertexBufferObject;
class vtkPoints;
class vtkRenderer;
class vtkTextureObject;
class vtkTransform;
class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLPolyDataMapper2D : public vtkPolyDataMapper2D
{
public:
vtkTypeMacro(vtkOpenGLPolyDataMapper2D, vtkPolyDataMapper2D);
static vtkOpenGLPolyDataMapper2D *New();
void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
/**
* Actually draw the poly data.
*/
void RenderOverlay(vtkViewport* viewport, vtkActor2D* actor);
/**
* Release any graphics resources that are being consumed by this mapper.
* The parameter window could be used to determine which graphic
* resources to release.
*/
void ReleaseGraphicsResources(vtkWindow *);
/// Return the mapper's vertex buffer object.
vtkGetObjectMacro(VBO,vtkOpenGLVertexBufferObject);
protected:
vtkOpenGLPolyDataMapper2D();
~vtkOpenGLPolyDataMapper2D();
vtkGenericOpenGLResourceFreeCallback *ResourceCallback;
// the following is all extra stuff to work around the
// fact that gl_PrimitiveID does not work correctly on
// Apple devices with AMD graphics hardware. See apple
// bug ID 20747550
bool HaveAppleBug;
std::vector<float> AppleBugPrimIDs;
vtkOpenGLBufferObject *AppleBugPrimIDBuffer;
/**
* Does the shader source need to be recomputed
*/
virtual bool GetNeedToRebuildShaders(
vtkOpenGLHelper &cellBO, vtkViewport *ren, vtkActor2D *act);
/**
* Build the shader source code
*/
virtual void BuildShaders(std::string &VertexCode,
std::string &fragmentCode,
std::string &geometryCode,
vtkViewport *ren, vtkActor2D *act);
/**
* Determine what shader to use and compile/link it
*/
virtual void UpdateShaders(vtkOpenGLHelper &cellBO,
vtkViewport *viewport, vtkActor2D *act);
/**
* Set the shader parameteres related to the mapper/input data, called by UpdateShader
*/
virtual void SetMapperShaderParameters(vtkOpenGLHelper &cellBO, vtkViewport *ren, vtkActor2D *act);
/**
* Set the shader parameteres related to the Camera
*/
void SetCameraShaderParameters(vtkOpenGLHelper &cellBO, vtkViewport *viewport, vtkActor2D *act);
/**
* Set the shader parameteres related to the property
*/
void SetPropertyShaderParameters(vtkOpenGLHelper &cellBO, vtkViewport *viewport, vtkActor2D *act);
/**
* Perform string replacments on the shader templates, called from
* ReplaceShaderValues
*/
virtual void ReplaceShaderPicking(
std::string & fssource,
vtkRenderer *ren, vtkActor2D *act);
/**
* Update the scene when necessary.
*/
void UpdateVBO(vtkActor2D *act, vtkViewport *viewport);
// The VBO and its layout.
vtkOpenGLVertexBufferObject *VBO;
// Structures for the various cell types we render.
vtkOpenGLHelper Points;
vtkOpenGLHelper Lines;
vtkOpenGLHelper Tris;
vtkOpenGLHelper TriStrips;
vtkOpenGLHelper *LastBoundBO;
vtkTextureObject *CellScalarTexture;
vtkOpenGLBufferObject *CellScalarBuffer;
bool HaveCellScalars;
int PrimitiveIDOffset;
vtkTimeStamp VBOUpdateTime; // When was the VBO updated?
vtkPoints *TransformedPoints;
vtkNew<vtkTransform> VBOTransformInverse;
vtkNew<vtkMatrix4x4> VBOShiftScale;
int LastPickState;
vtkTimeStamp PickStateChanged;
// do we have wide lines that require special handling
virtual bool HaveWideLines(vtkViewport *, vtkActor2D *);
private:
vtkOpenGLPolyDataMapper2D(const vtkOpenGLPolyDataMapper2D&) VTK_DELETE_FUNCTION;
void operator=(const vtkOpenGLPolyDataMapper2D&) VTK_DELETE_FUNCTION;
};
#endif
|