MeVisLab Toolbox Reference
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 
25 class INVENTOR_SHADER_API SoMFUniformShaderParameter : public SoMField
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_
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.