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