21#ifndef vtkOpenGLPolyDataMapper_h
22#define vtkOpenGLPolyDataMapper_h
25#include "vtkRenderingOpenGL2Module.h"
74 vtkGetMacro(PopulateSelectionSettings,
int);
75 void SetPopulateSelectionSettings(
int v) { this->PopulateSelectionSettings = v; };
109 vtkSetStringMacro(PointIdArrayName);
111 vtkSetStringMacro(CellIdArrayName);
121 vtkSetStringMacro(ProcessIdArrayName);
135 vtkSetStringMacro(CompositeIdArrayName);
167 vtkSetStringMacro(VertexShaderCode);
169 vtkSetStringMacro(FragmentShaderCode);
171 vtkSetStringMacro(GeometryShaderCode);
181 std::vector<float> &buffData);
194 this->HaveAppleBugForce = 1;
199 this->HaveAppleBugForce = 2;
262 std::map<vtkShader::Type, vtkShader *> shaders,
269 std::map<vtkShader::Type, vtkShader *> shaders,
276 std::map<vtkShader::Type, vtkShader *> shaders,
285 std::map<vtkShader::Type, vtkShader *> shaders,
288 std::map<vtkShader::Type, vtkShader *> shaders,
291 std::map<vtkShader::Type, vtkShader *> shaders,
294 std::map<vtkShader::Type, vtkShader *> shaders,
297 std::map<vtkShader::Type, vtkShader *> shaders,
300 std::map<vtkShader::Type, vtkShader *> shaders,
303 std::map<vtkShader::Type, vtkShader *> shaders,
306 std::map<vtkShader::Type, vtkShader *> shaders,
309 std::map<vtkShader::Type, vtkShader *> shaders,
312 std::map<vtkShader::Type, vtkShader *> shaders,
315 std::map<vtkShader::Type, vtkShader *> shaders,
439 std::vector<unsigned char> &colors,
440 std::vector<float> &normals,
490#if GL_ES_VERSION_2_0 != 1 && GL_ES_VERSION_3_0 != 1
abstract class specifies interface to map data
represents an object (geometry & properties) in a rendered scene
object to represent cell connectivity
a simple class to control print indentation
represent and manipulate 3x3 transformation matrices
represent and manipulate 4x4 transformation matrices
virtual void Modified()
Update the modification time for this object.
std::string OriginalValue
vtkShader::Type ShaderType
bool operator<(const ReplacementSpec &v1) const
bool operator>(const ReplacementSpec &v1) const
a PolyDataMapper for the OpenGL library
void ForceHaveAppleBugOn()
std::map< const vtkOpenGLHelper *, int > LastLightComplexity
virtual void SetLightingShaderParameters(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Set the shader parameteres related to lighting, called by UpdateShader.
void AddShaderReplacement(vtkShader::Type shaderType, std::string originalValue, bool replaceFirst, std::string replacementValue, bool replaceAll)
This function enables you to apply your own substitutions to the shader creation process.
virtual void ReplaceShaderPrimID(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
virtual void GetShaderTemplate(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Create the basic shaders before replacement.
int PopulateSelectionSettings
vtkOpenGLVertexBufferObject * VBO
virtual bool GetNeedToRebuildShaders(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Does the shader source need to be recomputed.
bool DrawingTubes(vtkOpenGLHelper &cellBO, vtkActor *actor)
vtkOpenGLBufferObject * CellScalarBuffer
std::map< const vtkOpenGLHelper *, vtkTimeStamp > LightComplexityChanged
virtual void BuildIBO(vtkRenderer *ren, vtkActor *act, vtkPolyData *poly)
Build the IBO, called by BuildBufferObjects.
char * FragmentShaderCode
virtual void ReplaceShaderTCoord(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
virtual void UpdateShaders(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Make sure appropriate shaders are defined, compiled and bound.
vtkMatrix3x3 * TempMatrix3
virtual void ReplaceShaderLight(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
virtual void ReplaceShaderCoincidentOffset(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
vtkTextureObject * CellScalarTexture
virtual void SetCameraShaderParameters(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Set the shader parameteres related to the Camera, called by UpdateShader.
char * ProcessIdArrayName
vtkTimeStamp VBOBuildTime
virtual void ReplaceShaderValues(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacments on the shader templates.
virtual bool GetNeedToRebuildBufferObjects(vtkRenderer *ren, vtkActor *act)
Does the VBO/IBO need to be rebuilt.
virtual void SetPropertyShaderParameters(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Set the shader parameteres related to the property, called by UpdateShader.
virtual bool HaveWideLines(vtkRenderer *, vtkActor *)
virtual void BuildShaders(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Build the shader source code, called by UpdateShader.
static vtkPolyData * HandleAppleBug(vtkPolyData *poly, std::vector< float > &buffData)
vtkSmartPointer< vtkValuePassHelper > ValuePassHelper
void BuildCellTextures(vtkRenderer *ren, vtkActor *, vtkCellArray *prims[4], int representation)
void ClearShaderReplacement(vtkShader::Type shaderType, std::string originalValue, bool replaceFirst)
vtkTextureObject * CellNormalTexture
char * CompositeIdArrayName
virtual void SetMapperShaderParameters(vtkOpenGLHelper &cellBO, vtkRenderer *ren, vtkActor *act)
Set the shader parameters related to the mapper/input data, called by UpdateShader.
void AppendCellTextures(vtkRenderer *ren, vtkActor *, vtkCellArray *prims[4], int representation, std::vector< unsigned char > &colors, std::vector< float > &normals, vtkPolyData *pd)
bool DrawingSpheres(vtkOpenGLHelper &cellBO, vtkActor *actor)
std::vector< float > AppleBugPrimIDs
void ShallowCopy(vtkAbstractMapper *m)
Make a shallow copy of this mapper.
vtkNew< vtkInformation > LastRenderPassInfo
virtual void ReplaceShaderDepth(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
virtual void ReplaceShaderClip(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
std::string IBOBuildString
vtkOpenGLHelper * LastBoundBO
virtual bool GetIsOpaque()
Returns if the mapper does not expect to have translucent geometry.
vtkOpenGLBufferObject * CellNormalBuffer
vtkOpenGLHelper TrisEdges
void ForceHaveAppleBugOff()
Override the normal test for the apple bug.
std::map< const ReplacementSpec, ReplacementValue > UserShaderReplacements
virtual unsigned int GetNumberOfTextures(vtkActor *actor)
virtual void ReplaceShaderPositionVC(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
void SetVBOShiftScaleMethod(int m)
A convenience method for enabling/disabling the VBO's shift+scale transform.
vtkTimeStamp SelectionStateChanged
vtkOpenGLBufferObject * AppleBugPrimIDBuffer
virtual void ComputeBounds()
Called in GetBounds().
virtual void ReplaceShaderNormal(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
vtkNew< vtkTransform > VBOInverseTransform
vtkNew< vtkMatrix4x4 > VBOShiftScale
virtual void BuildBufferObjects(vtkRenderer *ren, vtkActor *act)
Build the VBO/IBO, called by UpdateBufferObjects.
virtual void ReplaceShaderRenderPass(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacments on the shader templates, called from ReplaceShaderValues.
virtual bool GetSupportsSelection()
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
vtkGenericOpenGLResourceFreeCallback * ResourceCallback
vtkPolyData * CurrentInput
std::string VBOBuildString
static vtkOpenGLPolyDataMapper * New()
bool ForceTextureCoordinates
bool GetHaveAppleBug()
Get the value of HaveAppleBug.
vtkOpenGLHelper TriStrips
vtkMTimeType GetRenderPassStageMTime(vtkActor *actor)
~vtkOpenGLPolyDataMapper()
virtual void ReplaceShaderPicking(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
void GetCoincidentParameters(vtkRenderer *ren, vtkActor *actor, float &factor, float &offset)
helper function to get the appropriate coincident params
std::string CellTextureBuildString
virtual bool HaveTCoords(vtkPolyData *poly)
vtkMatrix4x4 * TempMatrix4
char * GeometryShaderCode
virtual void ReplaceShaderColor(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
vtkOpenGLPolyDataMapper()
virtual bool HaveTextures(vtkActor *actor)
virtual void UpdateBufferObjects(vtkRenderer *ren, vtkActor *act)
Update the VBO/IBO to be current.
vtkOpenGLHelper TriStripsEdges
virtual std::vector< vtkTexture * > GetTextures(vtkActor *actor)
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
abstract specification for renderers
Type
Available shader types.
abstracts an OpenGL texture object.
record modification and/or execution time
Implementation of both rendering modes of vtkValuePass for the vtkOpenGLPolyDataMapper.
window superclass for vtkRenderWindow
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
vtkTypeUInt64 vtkMTimeType