MeVisLabToolboxReference
|
00001 // **InsertLicense** code 00002 00006 00007 00008 #ifndef _SO_MF_UNIFORM_SHADER_PARAMETER_ 00009 #define _SO_MF_UNIFORM_SHADER_PARAMETER_ 00010 00011 #include "SoShaderSystem.h" 00012 #include <Inventor/fields/SoSubField.h> 00013 00014 class SoUniformShaderParameter; 00015 00017 class INVENTOR_SHADER_API SoMFUniformShaderParameter : public SoMField 00018 { 00019 typedef SoMField inherited; 00020 00021 SO_MFIELD_HEADER(SoMFUniformShaderParameter, SoUniformShaderParameter *, SoUniformShaderParameter *); 00022 00023 public: 00024 00026 void addShaderParameter(SoUniformShaderParameter *shaderParameter); 00027 00029 void insertShaderParameter(SoUniformShaderParameter *shaderParameter, int newShaderParameterIndex); 00030 00032 SoUniformShaderParameter *getShaderParameter(int index) const; 00033 00035 int findShaderParameter(const SoUniformShaderParameter *shaderParameter) const; 00036 00038 int getNumShaderParameters() const; 00039 00041 void removeShaderParameter(int index); 00042 00044 void removeShaderParameter(SoUniformShaderParameter *shaderParameter) { 00045 removeShaderParameter(findShaderParameter(shaderParameter)); 00046 } 00047 00049 void removeAllShaderParameters(); 00050 00052 void replaceShaderParameter(int index, SoUniformShaderParameter *newShaderParameter); 00053 00055 void replaceShaderParameter(SoUniformShaderParameter *oldShaderParameter, SoUniformShaderParameter *newShaderParameter) { 00056 replaceShaderParameter(findShaderParameter(oldShaderParameter), newShaderParameter); 00057 } 00058 00059 SoINTERNAL public: 00060 00062 static void initClass(); 00063 00065 virtual void fixCopy(SbBool copyConnections); 00066 00068 virtual SbBool referencesCopy() const; 00069 00070 private: 00071 00073 virtual void countWriteRefs(SoOutput *out) const; 00074 00077 void setVal(int index, SoUniformShaderParameter *newValue); 00078 }; 00079 00080 #endif // _SO_MF_UNIFORM_SHADER_PARAMETER_