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.
vtkSmartPointer< vtkValuePassHelper > ValuePassHelper
static vtkOpenGLPolyDataMapper * New()
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().
static vtkPolyData * HandleAppleBug(vtkPolyData *poly, std::vector< float > &buffData)
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
virtual std::vector< vtkTexture * > GetTextures(vtkActor *actor)
std::string VBOBuildString
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
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