13#ifndef SO_MFSHADER_OBJECT_H
14#define SO_MFSHADER_OBJECT_H
20#include <Inventor/fields/SoSubField.h>
28 typedef SoMField inherited;
57 removeShader(findShader(shader));
68 replaceShader(findShader(oldShader), newShader);
77 void fixCopy(SbBool copyConnections)
override;
85 void countWriteRefs(SoOutput *out)
const override;
#define INVENTOR_SHADER_API
Define class export specifier.
Open Inventor multiple field managing a list of shader objects.
void addShader(SoShaderObject *shader)
Add vertex or fragment shader.
SoNodeList getShaderList() const
Return list of managed shaders.
void replaceShader(int index, SoShaderObject *newShader)
Replace shader at given index with new one.
static void initClass()
Initialize class with runtime type system.
void replaceShader(SoShaderObject *oldShader, SoShaderObject *newShader)
Replace shader with new one using given pointer.
void removeShader(int index)
Remove shader at given index.
void removeAllShaders()
Remove all shaders from the field.
void removeShader(SoShaderObject *shader)
Remove shader using given pointer.
void insertShader(SoShaderObject *shader, int newShaderIndex)
Insert shader at given index.
SoShaderObject * getShader(int index) const
Get shader at given index.
int getNumShaders() const
Return number of shaders managed by the field.
int findShader(const SoShaderObject *shader) const
Find shader using given pointer.
void fixCopy(SbBool copyConnections) override
Update a copied field to use the copy of each node if there is one.
SbBool referencesCopy() const override
Override this to also check the stored nodes.
Abstract Open Inventor node for vertex or fragment shader nodes.