1 #ifndef COIN_SOSHADERPARAMETER_H 2 #define COIN_SOSHADERPARAMETER_H 27 #include <Inventor/nodes/SoNode.h> 28 #include <Inventor/nodes/SoSubNode.h> 29 #include <Inventor/fields/SoSFString.h> 30 #include <Inventor/fields/SoSFFloat.h> 31 #include <Inventor/fields/SoSFInt32.h> 32 #include <Inventor/fields/SoSFVec2f.h> 33 #include <Inventor/fields/SoSFVec3f.h> 34 #include <Inventor/fields/SoSFVec4f.h> 35 #include <Inventor/fields/SoMFFloat.h> 36 #include <Inventor/fields/SoMFInt32.h> 37 #include <Inventor/fields/SoMFVec2f.h> 38 #include <Inventor/fields/SoMFVec3f.h> 39 #include <Inventor/fields/SoMFVec4f.h> 40 #include <Inventor/fields/SoSFMatrix.h> 41 #include <Inventor/fields/SoMFMatrix.h> 42 #include <Inventor/fields/SoSFNode.h> 43 #include <Inventor/fields/SoSFEnum.h> 44 #include <Inventor/fields/SoSFImage.h> 46 #include <Inventor/fields/SoSFVec2i32.h> 47 #include <Inventor/fields/SoSFVec3i32.h> 48 #include <Inventor/fields/SoSFVec4i32.h> 49 #include <Inventor/fields/SoMFVec2i32.h> 50 #include <Inventor/fields/SoMFVec3i32.h> 51 #include <Inventor/fields/SoMFVec4i32.h> 53 class SoGLShaderParameter;
54 class SoGLShaderObject;
73 static void initClass();
83 class SoUniformShaderParameterP;
90 static void initClass(
void);
91 virtual void updateParameter(SoGLShaderObject *shaderObject) = 0;
94 SoUniformShaderParameter();
95 virtual ~SoUniformShaderParameter();
97 SoGLShaderParameter * getGLShaderParameter(
const uint32_t cachecontext);
98 void ensureParameter(SoGLShaderObject * shader);
101 SoUniformShaderParameterP * pimpl;
108 class COIN_DLL_API SoShaderParameter1f :
public SoUniformShaderParameter {
109 typedef SoUniformShaderParameter inherited;
114 SoShaderParameter1f();
117 static void initClass();
118 virtual void updateParameter(SoGLShaderObject *shaderObject);
121 virtual ~SoShaderParameter1f();
128 class COIN_DLL_API SoShaderParameter1i :
public SoUniformShaderParameter {
129 typedef SoUniformShaderParameter inherited;
134 SoShaderParameter1i();
137 static void initClass();
138 virtual void updateParameter(SoGLShaderObject *shaderObject);
141 virtual ~SoShaderParameter1i();
148 class COIN_DLL_API SoShaderParameter2f :
public SoUniformShaderParameter {
149 typedef SoUniformShaderParameter inherited;
154 SoShaderParameter2f();
157 static void initClass();
158 virtual void updateParameter(SoGLShaderObject *shaderObject);
161 virtual ~SoShaderParameter2f();
168 class COIN_DLL_API SoShaderParameter2i :
public SoUniformShaderParameter {
169 typedef SoUniformShaderParameter inherited;
174 SoShaderParameter2i();
177 static void initClass();
178 virtual void updateParameter(SoGLShaderObject *shaderObject);
181 virtual ~SoShaderParameter2i();
188 class COIN_DLL_API SoShaderParameter3f :
public SoUniformShaderParameter {
189 typedef SoUniformShaderParameter inherited;
195 SoShaderParameter3f();
198 static void initClass();
199 virtual void updateParameter(SoGLShaderObject *shaderObject);
202 virtual ~SoShaderParameter3f();
209 class COIN_DLL_API SoShaderParameter3i :
public SoUniformShaderParameter {
210 typedef SoUniformShaderParameter inherited;
216 SoShaderParameter3i();
219 static void initClass();
220 virtual void updateParameter(SoGLShaderObject *shaderObject);
223 virtual ~SoShaderParameter3i();
230 class COIN_DLL_API SoShaderParameter4f :
public SoUniformShaderParameter {
231 typedef SoUniformShaderParameter inherited;
237 SoShaderParameter4f();
240 static void initClass();
241 virtual void updateParameter(SoGLShaderObject *shaderObject);
244 virtual ~SoShaderParameter4f();
251 class COIN_DLL_API SoShaderParameter4i :
public SoUniformShaderParameter {
252 typedef SoUniformShaderParameter inherited;
258 SoShaderParameter4i();
261 static void initClass();
262 virtual void updateParameter(SoGLShaderObject *shaderObject);
265 virtual ~SoShaderParameter4i();
272 class COIN_DLL_API SoShaderParameterArray1f :
public SoUniformShaderParameter {
273 typedef SoUniformShaderParameter inherited;
279 SoShaderParameterArray1f();
282 static void initClass();
283 virtual void updateParameter(SoGLShaderObject *shaderObject);
286 virtual ~SoShaderParameterArray1f();
293 class COIN_DLL_API SoShaderParameterArray1i :
public SoUniformShaderParameter {
294 typedef SoUniformShaderParameter inherited;
300 SoShaderParameterArray1i();
303 static void initClass();
304 virtual void updateParameter(SoGLShaderObject *shaderObject);
307 virtual ~SoShaderParameterArray1i();
314 class COIN_DLL_API SoShaderParameterArray2f :
public SoUniformShaderParameter {
315 typedef SoUniformShaderParameter inherited;
321 SoShaderParameterArray2f();
324 static void initClass();
325 virtual void updateParameter(SoGLShaderObject *shaderObject);
328 virtual ~SoShaderParameterArray2f();
334 class COIN_DLL_API SoShaderParameterArray2i :
public SoUniformShaderParameter {
335 typedef SoUniformShaderParameter inherited;
341 SoShaderParameterArray2i();
344 static void initClass();
345 virtual void updateParameter(SoGLShaderObject *shaderObject);
348 virtual ~SoShaderParameterArray2i();
355 class COIN_DLL_API SoShaderParameterArray3f :
public SoUniformShaderParameter {
356 typedef SoUniformShaderParameter inherited;
362 SoShaderParameterArray3f();
365 static void initClass();
366 virtual void updateParameter(SoGLShaderObject *shaderObject);
369 virtual ~SoShaderParameterArray3f();
376 class COIN_DLL_API SoShaderParameterArray3i :
public SoUniformShaderParameter {
377 typedef SoUniformShaderParameter inherited;
383 SoShaderParameterArray3i();
386 static void initClass();
387 virtual void updateParameter(SoGLShaderObject *shaderObject);
390 virtual ~SoShaderParameterArray3i();
397 class COIN_DLL_API SoShaderParameterArray4f :
public SoUniformShaderParameter {
398 typedef SoUniformShaderParameter inherited;
404 SoShaderParameterArray4f();
407 static void initClass();
408 virtual void updateParameter(SoGLShaderObject *shaderObject);
411 virtual ~SoShaderParameterArray4f();
419 class COIN_DLL_API SoShaderParameterArray4i :
public SoUniformShaderParameter {
420 typedef SoUniformShaderParameter inherited;
426 SoShaderParameterArray4i();
429 static void initClass();
430 virtual void updateParameter(SoGLShaderObject *shaderObject);
433 virtual ~SoShaderParameterArray4i();
440 class COIN_DLL_API SoShaderParameterMatrix :
public SoUniformShaderParameter {
441 typedef SoUniformShaderParameter inherited;
447 SoShaderParameterMatrix();
450 static void initClass();
451 virtual void updateParameter(SoGLShaderObject *shaderObject);
454 virtual ~SoShaderParameterMatrix();
461 class COIN_DLL_API SoShaderParameterMatrixArray :
public SoUniformShaderParameter {
462 typedef SoUniformShaderParameter inherited;
468 SoShaderParameterMatrixArray();
471 static void initClass();
472 virtual void updateParameter(SoGLShaderObject *shaderObject);
475 virtual ~SoShaderParameterMatrixArray();
482 class COIN_DLL_API SoShaderStateMatrixParameter :
public SoUniformShaderParameter {
483 typedef SoUniformShaderParameter inherited;
495 enum MatrixTransform{
505 SoShaderStateMatrixParameter();
506 virtual ~SoShaderStateMatrixParameter();
508 static void initClass(
void);
509 virtual void updateParameter(SoGLShaderObject *shaderObject);
The SoBase class is the top-level superclass for a number of class-hierarchies.SoBase provides the ba...
Definition: SoBase.h:36
The SoMFFloat class is a container for floating point values.This field is used where nodes...
Definition: SoMFFloat.h:30
The SoMFVec2i32 class is a container for SbVec2i32 vectors.This field is used where nodes...
Definition: SoMFVec2i32.h:31
#define SO_NODE_HEADER(classname)
The SoMFVec3i32 class is a container for SbVec3i32 vectors.This field is used where nodes...
Definition: SoMFVec3i32.h:31
The SoMFVec4i32 class is a container for SbVec4i32 vectors.This field is used where nodes...
Definition: SoMFVec4i32.h:31
The SoSFVec4f class is a container for an SbVec4f vector.This field is used where nodes...
Definition: SoSFVec4f.h:31
The SoSFVec2i32 class is a container for an SbVec2i32 vector.This field is used where nodes...
Definition: SoSFVec2i32.h:31
The SoSFVec3i32 class is a container for an SbVec3i32 vector.This field is used where nodes...
Definition: SoSFVec3i32.h:31
The SoMFInt32 class is a container for 32-bit integer values.This field is used where nodes...
Definition: SoMFInt32.h:30
The SoSFVec4i32 class is a container for an SbVec4i32 vector.This field is used where nodes...
Definition: SoSFVec4i32.h:31
The SoSFString class is a container for an SbString.This field is used where nodes, engines or other field containers needs to store a single string.
Definition: SoSFString.h:31
The SoSFVec2f class is a container for an SbVec2f vector.This field is used where nodes...
Definition: SoSFVec2f.h:31
The SoMFVec4f class is a container for SbVec4f vectors.This field is used where nodes, engines or other field containers needs to store an array of vectors with four elements.
Definition: SoMFVec4f.h:31
The SoNode class is the base class for nodes used in scene graphs.Coin is a retained mode 3D visualiz...
Definition: SoNode.h:47
The SoSFEnum class is a container for an enum value.This field is used where nodes, engines or other field containers needs to store one particular value out of an enumerated set.
Definition: SoSFEnum.h:31
The SoMFVec2f class is a container for SbVec2f vectors.This field is used where nodes, engines or other field containers needs to store an array of vectors with two elements.
Definition: SoMFVec2f.h:31
The SoSFInt32 class is a container for a 32-bit integer value.This field is used where nodes...
Definition: SoSFInt32.h:30
The SoMFMatrix class is a container for SbMatrix values.This field is used where nodes, engines or other field containers needs to store matrices.
Definition: SoMFMatrix.h:31
The SoSFFloat class is a container for a floating point value.This field is used where nodes...
Definition: SoSFFloat.h:30
The SoSFVec3f class is a container for an SbVec3f vector.This field is used where nodes...
Definition: SoSFVec3f.h:31
Definition: SoShaderParameter.h:64
The SoSFMatrix class is a container for an SbMatrix.This field is used where nodes, engines or other field containers needs to store a 4x4 matrix.
Definition: SoSFMatrix.h:31
The SoMFVec3f class is a container for SbVec3f vectors.This field is used where nodes, engines or other field containers needs to store an array of vectors with three elements.
Definition: SoMFVec3f.h:31
#define SO_NODE_ABSTRACT_HEADER(classname)