Go to the documentation of this file.
24 #ifndef vtkOpenGLPolyDataMapper_h
25 #define vtkOpenGLPolyDataMapper_h
28 #include "vtkRenderingOpenGL2Module.h"
58 void PrintSelf(ostream& os,
vtkIndent indent) override;
79 void ReleaseGraphicsResources(
vtkWindow *) override;
81 vtkGetMacro(PopulateSelectionSettings,
int);
82 void SetPopulateSelectionSettings(
int v) { this->PopulateSelectionSettings = v; };
116 vtkSetStringMacro(PointIdArrayName);
117 vtkGetStringMacro(PointIdArrayName);
118 vtkSetStringMacro(CellIdArrayName);
119 vtkGetStringMacro(CellIdArrayName);
128 vtkSetStringMacro(ProcessIdArrayName);
129 vtkGetStringMacro(ProcessIdArrayName);
142 vtkSetStringMacro(CompositeIdArrayName);
143 vtkGetStringMacro(CompositeIdArrayName);
176 vtkSetStringMacro(VertexShaderCode);
177 vtkGetStringMacro(VertexShaderCode);
178 vtkSetStringMacro(FragmentShaderCode);
179 vtkGetStringMacro(FragmentShaderCode);
180 vtkSetStringMacro(GeometryShaderCode);
181 vtkGetStringMacro(GeometryShaderCode);
190 std::vector<float> &buffData);
203 this->HaveAppleBugForce = 1;
208 this->HaveAppleBugForce = 2;
248 std::vector<vtkIdType> &cellCellMap,
266 const char* vertexAttributeName,
267 const char* dataArrayName,
268 int fieldAssociation,
269 int componentno = -1)
override;
278 const char* dataArrayName,
int fieldAssociation,
int componentno = -1)
override;
295 std::vector<unsigned int> &pixeloffsets,
305 const char* vertexAttributeName,
306 const char* dataArrayName,
307 const char *texturename,
308 int fieldAssociation,
353 std::map<vtkShader::Type, vtkShader *> shaders,
360 std::map<vtkShader::Type, vtkShader *> shaders,
367 std::map<vtkShader::Type, vtkShader *> shaders,
376 std::map<vtkShader::Type, vtkShader *> shaders,
379 std::map<vtkShader::Type, vtkShader *> shaders,
382 std::map<vtkShader::Type, vtkShader *> shaders,
385 std::map<vtkShader::Type, vtkShader *> shaders,
388 std::map<vtkShader::Type, vtkShader *> shaders,
391 std::map<vtkShader::Type, vtkShader *> shaders,
394 std::map<vtkShader::Type, vtkShader *> shaders,
397 std::map<vtkShader::Type, vtkShader *> shaders,
400 std::map<vtkShader::Type, vtkShader *> shaders,
403 std::map<vtkShader::Type, vtkShader *> shaders,
406 std::map<vtkShader::Type, vtkShader *> shaders,
528 std::vector<unsigned char> &colors,
529 std::vector<float> &normals,
545 std::map<const vtkShader::ReplacementSpec, vtkShader::ReplacementValue>
map vtkPolyData to graphics primitives
represent and manipulate 3D points
virtual void BuildBufferObjects(vtkRenderer *ren, vtkActor *act)
Build the VBO/IBO, called by UpdateBufferObjects.
bool GetHaveAppleBug()
Get the value of HaveAppleBug.
virtual std::vector< std::pair< vtkTexture *, std::string > > GetTextures(vtkActor *actor)
char * CompositeIdArrayName
bool ForceTextureCoordinates
static void MakeCellCellMap(std::vector< vtkIdType > &cellCellMap, bool HaveAppleBug, vtkPolyData *poly, vtkCellArray **prims, int representation, vtkPoints *points)
Get access to the map of glprim to vtkcell ids.
vtkStateStorage TempState
int GetOpenGLMode(int representation, int primType)
virtual void BuildCellTextures(vtkRenderer *ren, vtkActor *, vtkCellArray *prims[4], int representation)
Class to make storing and comparing state quick and easy.
bool DrawingSpheres(vtkOpenGLHelper &cellBO, vtkActor *actor)
virtual void ReplaceShaderRenderPass(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act, bool prePass)
Perform string replacements on the shader templates, called from ReplaceShaderValues.
virtual void ReplaceShaderValues(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
Perform string replacements on the shader templates.
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)
std::string CellMapsBuildString
void RemoveAllVertexAttributeMappings() override
Remove all vertex attributes.
virtual void BuildIBO(vtkRenderer *ren, vtkActor *act, vtkPolyData *poly)
Build the IBO, called by BuildBufferObjects.
virtual void UpdateMaximumPointCellIds(vtkRenderer *ren, vtkActor *actor)
record modification and/or execution time
void SetVBOShiftScaleMethod(int m)
A convenience method for enabling/disabling the VBO's shift+scale transform.
std::vector< vtkIdType > CellCellMap
std::map< const vtkOpenGLHelper *, int > LastLightCount
vtkStateStorage VBOBuildState
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 RemoveVertexAttributeMapping(const char *vertexAttributeName) override
Remove a vertex attribute mapping.
vtkStateStorage IBOBuildState
std::map< std::string, ExtraAttributeValue > ExtraAttributes
virtual void ReplaceShaderPositionVC(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
@ PrimitiveTriStripsEdges
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
~vtkOpenGLPolyDataMapper() override
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.
void MapDataArrayToVertexAttribute(const char *vertexAttributeName, const char *dataArrayName, int fieldAssociation, int componentno=-1) override
Select a data array from the point/cell data and map it to a generic vertex attribute.
window superclass for vtkRenderWindow
virtual bool HaveTextures(vtkActor *actor)
std::string GetTextureCoordinateName(const char *tname)
virtual void ReplaceShaderClip(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
void ClearAllShaderReplacements(vtkShader::Type shaderType)
vtkTextureObject * CellNormalTexture
Asynchronously measures GPU execution time for a single event.
vtkOpenGLHelper * LastBoundBO
handles properties associated with a texture map
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)
virtual void UpdateBufferObjects(vtkRenderer *ren, vtkActor *act)
Update the VBO/IBO to be current.
vtkTimeStamp VBOBuildTime
manage vertex buffer objects shared within a mapper
void ClearShaderReplacement(vtkShader::Type shaderType, const std::string &originalValue, bool replaceFirst)
vtkPolyData * CurrentInput
char * GeometryShaderCode
vtkOpenGLBufferObject * CellNormalBuffer
bool GetIsOpaque() override
Returns if the mapper does not expect to have translucent geometry.
int GetPointPickingPrimitiveSize(int primType)
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
std::map< const vtkShader::ReplacementSpec, vtkShader::ReplacementValue > UserShaderReplacements
virtual void ReplaceShaderDepth(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
bool DrawingEdgesOrVertices
std::vector< vtkIdType > PointCellMap
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
bool GetSupportsSelection() override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
virtual void ReplaceShaderTCoord(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
static vtkPolyData * HandleAppleBug(vtkPolyData *poly, std::vector< float > &buffData)
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()
abstract superclass for all actors, volumes and annotations
void ShallowCopy(vtkAbstractMapper *m) override
Make a shallow copy of this mapper.
void MapDataArrayToMultiTextureAttribute(const char *tname, const char *dataArrayName, int fieldAssociation, int componentno=-1) override
vtkMatrix4x4 * TempMatrix4
void ClearAllShaderReplacements()
vtkOpenGLVertexBufferObjectGroup * VBOs
void UpdateCellMaps(bool HaveAppleBug, vtkPolyData *poly, vtkCellArray **prims, int representation, vtkPoints *points)
void AddShaderReplacement(vtkShader::Type shaderType, const std::string &originalValue, bool replaceFirst, const std::string &replacementValue, bool replaceAll)
This function enables you to apply your own substitutions to the shader creation process.
void ForceHaveAppleBugOn()
vtkOpenGLRenderTimer * TimerQuery
vtkOpenGLTexture * InternalColorTexture
abstract specification for renderers
void ProcessSelectorPixelBuffers(vtkHardwareSelector *sel, std::vector< unsigned int > &pixeloffsets, vtkProp *prop) override
allows a mapper to update a selections color buffers Called from a prop which in turn is called from ...
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
unsigned int TimerQueryCounter
vtkStateStorage CellTextureBuildState
concrete dataset represents vertices, lines, polygons, and triangle strips
void ComputeBounds() override
Called in GetBounds().
void ForceHaveAppleBugOff()
Override the normal test for the apple bug.
vtkOpenGLBufferObject * AppleBugPrimIDBuffer
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
void MapDataArray(const char *vertexAttributeName, const char *dataArrayName, const char *texturename, int fieldAssociation, int componentno)
virtual unsigned int GetNumberOfTextures(vtkActor *actor)
PolyDataMapper using OpenGL to render.
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)
bool DrawingTubesOrSpheres(vtkOpenGLHelper &cellBO, vtkActor *actor)
vtkTimeStamp SelectionStateChanged
virtual void ReplaceShaderCoincidentOffset(std::map< vtkShader::Type, vtkShader * > shaders, vtkRenderer *ren, vtkActor *act)
abstract class specifies interface to map data
vtkTextureObject * CellScalarTexture
vtkTypeUInt32 vtkMTimeType