MeVisLab Resolution Independence API
SoMFUniformShaderParameter.h
Go to the documentation of this file.
1/*************************************************************************************
2**
3** Copyright 2007, MeVis Medical Solutions AG
4**
5** The user may use this file in accordance with the license agreement provided with
6** the Software or, alternatively, in accordance with the terms contained in a
7** written agreement between the user and MeVis Medical Solutions AG.
8**
9** For further information use the contact form at https://www.mevislab.de/contact
10**
11**************************************************************************************/
12
13#ifndef SO_MFUNIFORM_SHADER_PARAMETER_H
14#define SO_MFUNIFORM_SHADER_PARAMETER_H
15
16
18
19#include "SoShaderSystem.h"
20#include <Inventor/fields/SoSubField.h>
21
23
26{
27 typedef SoMField inherited;
28
30
31 public:
32
35
37 void insertShaderParameter(SoUniformShaderParameter *shaderParameter, int newShaderParameterIndex);
38
41
43 int findShaderParameter(const SoUniformShaderParameter *shaderParameter) const;
44
47
49 void removeShaderParameter(int index);
50
53 removeShaderParameter(findShaderParameter(shaderParameter));
54 }
55
58
60 void replaceShaderParameter(int index, SoUniformShaderParameter *newShaderParameter);
61
63 void replaceShaderParameter(SoUniformShaderParameter *oldShaderParameter, SoUniformShaderParameter *newShaderParameter) {
64 replaceShaderParameter(findShaderParameter(oldShaderParameter), newShaderParameter);
65 }
66
67 SoINTERNAL public:
68
70 static void initClass();
71
73 void fixCopy(SbBool copyConnections) override;
74
76 SbBool referencesCopy() const override;
77
78 private:
79
81 void countWriteRefs(SoOutput *out) const override;
82
85 void setVal(int index, SoUniformShaderParameter *newValue);
86};
87
88#endif // _SO_MF_UNIFORM_SHADER_PARAMETER_
#define INVENTOR_SHADER_API
Define class export specifier.
Open Inventor multiple field managing a list of shader parameters.
SbBool referencesCopy() const override
Override this to also check the stored nodes.
void removeShaderParameter(int index)
Remove shader parameter at given index.
SoUniformShaderParameter * getShaderParameter(int index) const
Get shader parameter at given index.
int getNumShaderParameters() const
Return number of shader parameters managed by the field.
void insertShaderParameter(SoUniformShaderParameter *shaderParameter, int newShaderParameterIndex)
Insert shader parameter at given index.
void replaceShaderParameter(SoUniformShaderParameter *oldShaderParameter, SoUniformShaderParameter *newShaderParameter)
Replace shader parameter with new one using given pointer.
void removeShaderParameter(SoUniformShaderParameter *shaderParameter)
Remove shader parameter using given pointer.
void addShaderParameter(SoUniformShaderParameter *shaderParameter)
Add shader parameter.
static void initClass()
Initialize class with runtime type system.
void fixCopy(SbBool copyConnections) override
Update a copied field to use the copy of each node if there is one.
void removeAllShaderParameters()
Remove all shader parameters from the field.
void replaceShaderParameter(int index, SoUniformShaderParameter *newShaderParameter)
Replace shader parameter at given index with new one.
int findShaderParameter(const SoUniformShaderParameter *shaderParameter) const
Find shader parameter using given pointer.
Abstract Open Inventor base class for uniform shader parameter nodes.