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;
64 class COIN_DLL_API SoShaderParameter :
public SoNode {
66 SO_NODE_ABSTRACT_HEADER(SoShaderParameter);
73 static void initClass();
77 virtual ~SoShaderParameter();
83 class SoUniformShaderParameterP;
85 class COIN_DLL_API SoUniformShaderParameter :
public SoShaderParameter {
86 typedef SoShaderParameter inherited;
87 SO_NODE_ABSTRACT_HEADER(SoUniformShaderParameter);
90 static void initClass(
void);
91 virtual void updateParameter(SoGLShaderObject *shaderObject) = 0;
92 SbBool isRegularBehavior()
const {
return isRegularBehaviorFlag; }
95 SoUniformShaderParameter();
96 virtual ~SoUniformShaderParameter();
98 SbBool isRegularBehaviorFlag;
100 SoGLShaderParameter * getGLShaderParameter(
const uint32_t cachecontext);
101 void ensureParameter(SoGLShaderObject * shader);
104 SoUniformShaderParameterP * pimpl;
111 class COIN_DLL_API SoShaderParameter1f :
public SoUniformShaderParameter {
112 typedef SoUniformShaderParameter inherited;
113 SO_NODE_HEADER(SoShaderParameter1f);
117 SoShaderParameter1f();
120 static void initClass();
121 virtual void updateParameter(SoGLShaderObject *shaderObject);
124 virtual ~SoShaderParameter1f();
131 class COIN_DLL_API SoShaderParameter1i :
public SoUniformShaderParameter {
132 typedef SoUniformShaderParameter inherited;
133 SO_NODE_HEADER(SoShaderParameter1i);
137 SoShaderParameter1i();
140 static void initClass();
141 virtual void updateParameter(SoGLShaderObject *shaderObject);
144 virtual ~SoShaderParameter1i();
151 class COIN_DLL_API SoShaderParameter2f :
public SoUniformShaderParameter {
152 typedef SoUniformShaderParameter inherited;
153 SO_NODE_HEADER(SoShaderParameter2f);
157 SoShaderParameter2f();
160 static void initClass();
161 virtual void updateParameter(SoGLShaderObject *shaderObject);
164 virtual ~SoShaderParameter2f();
171 class COIN_DLL_API SoShaderParameter2i :
public SoUniformShaderParameter {
172 typedef SoUniformShaderParameter inherited;
173 SO_NODE_HEADER(SoShaderParameter2i);
177 SoShaderParameter2i();
180 static void initClass();
181 virtual void updateParameter(SoGLShaderObject *shaderObject);
184 virtual ~SoShaderParameter2i();
191 class COIN_DLL_API SoShaderParameter3f :
public SoUniformShaderParameter {
192 typedef SoUniformShaderParameter inherited;
193 SO_NODE_HEADER(SoShaderParameter3f);
198 SoShaderParameter3f();
201 static void initClass();
202 virtual void updateParameter(SoGLShaderObject *shaderObject);
205 virtual ~SoShaderParameter3f();
212 class COIN_DLL_API SoShaderParameter3i :
public SoUniformShaderParameter {
213 typedef SoUniformShaderParameter inherited;
214 SO_NODE_HEADER(SoShaderParameter3i);
219 SoShaderParameter3i();
222 static void initClass();
223 virtual void updateParameter(SoGLShaderObject *shaderObject);
226 virtual ~SoShaderParameter3i();
233 class COIN_DLL_API SoShaderParameter4f :
public SoUniformShaderParameter {
234 typedef SoUniformShaderParameter inherited;
235 SO_NODE_HEADER(SoShaderParameter4f);
240 SoShaderParameter4f();
243 static void initClass();
244 virtual void updateParameter(SoGLShaderObject *shaderObject);
247 virtual ~SoShaderParameter4f();
254 class COIN_DLL_API SoShaderParameter4i :
public SoUniformShaderParameter {
255 typedef SoUniformShaderParameter inherited;
256 SO_NODE_HEADER(SoShaderParameter4i);
261 SoShaderParameter4i();
264 static void initClass();
265 virtual void updateParameter(SoGLShaderObject *shaderObject);
268 virtual ~SoShaderParameter4i();
275 class COIN_DLL_API SoShaderParameterArray1f :
public SoUniformShaderParameter {
276 typedef SoUniformShaderParameter inherited;
277 SO_NODE_HEADER(SoShaderParameterArray1f);
282 SoShaderParameterArray1f();
285 static void initClass();
286 virtual void updateParameter(SoGLShaderObject *shaderObject);
289 virtual ~SoShaderParameterArray1f();
296 class COIN_DLL_API SoShaderParameterArray1i :
public SoUniformShaderParameter {
297 typedef SoUniformShaderParameter inherited;
298 SO_NODE_HEADER(SoShaderParameterArray1i);
303 SoShaderParameterArray1i();
306 static void initClass();
307 virtual void updateParameter(SoGLShaderObject *shaderObject);
310 virtual ~SoShaderParameterArray1i();
317 class COIN_DLL_API SoShaderParameterArray2f :
public SoUniformShaderParameter {
318 typedef SoUniformShaderParameter inherited;
319 SO_NODE_HEADER(SoShaderParameterArray2f);
324 SoShaderParameterArray2f();
327 static void initClass();
328 virtual void updateParameter(SoGLShaderObject *shaderObject);
331 virtual ~SoShaderParameterArray2f();
337 class COIN_DLL_API SoShaderParameterArray2i :
public SoUniformShaderParameter {
338 typedef SoUniformShaderParameter inherited;
339 SO_NODE_HEADER(SoShaderParameterArray2i);
344 SoShaderParameterArray2i();
347 static void initClass();
348 virtual void updateParameter(SoGLShaderObject *shaderObject);
351 virtual ~SoShaderParameterArray2i();
358 class COIN_DLL_API SoShaderParameterArray3f :
public SoUniformShaderParameter {
359 typedef SoUniformShaderParameter inherited;
360 SO_NODE_HEADER(SoShaderParameterArray3f);
365 SoShaderParameterArray3f();
368 static void initClass();
369 virtual void updateParameter(SoGLShaderObject *shaderObject);
372 virtual ~SoShaderParameterArray3f();
379 class COIN_DLL_API SoShaderParameterArray3i :
public SoUniformShaderParameter {
380 typedef SoUniformShaderParameter inherited;
381 SO_NODE_HEADER(SoShaderParameterArray3i);
386 SoShaderParameterArray3i();
389 static void initClass();
390 virtual void updateParameter(SoGLShaderObject *shaderObject);
393 virtual ~SoShaderParameterArray3i();
400 class COIN_DLL_API SoShaderParameterArray4f :
public SoUniformShaderParameter {
401 typedef SoUniformShaderParameter inherited;
402 SO_NODE_HEADER(SoShaderParameterArray4f);
407 SoShaderParameterArray4f();
410 static void initClass();
411 virtual void updateParameter(SoGLShaderObject *shaderObject);
414 virtual ~SoShaderParameterArray4f();
422 class COIN_DLL_API SoShaderParameterArray4i :
public SoUniformShaderParameter {
423 typedef SoUniformShaderParameter inherited;
424 SO_NODE_HEADER(SoShaderParameterArray4i);
429 SoShaderParameterArray4i();
432 static void initClass();
433 virtual void updateParameter(SoGLShaderObject *shaderObject);
436 virtual ~SoShaderParameterArray4i();
443 class COIN_DLL_API SoShaderParameterMatrix :
public SoUniformShaderParameter {
444 typedef SoUniformShaderParameter inherited;
445 SO_NODE_HEADER(SoShaderParameterMatrix);
450 SoShaderParameterMatrix();
453 static void initClass();
454 virtual void updateParameter(SoGLShaderObject *shaderObject);
457 virtual ~SoShaderParameterMatrix();
464 class COIN_DLL_API SoShaderParameterMatrixArray :
public SoUniformShaderParameter {
465 typedef SoUniformShaderParameter inherited;
466 SO_NODE_HEADER(SoShaderParameterMatrixArray);
471 SoShaderParameterMatrixArray();
474 static void initClass();
475 virtual void updateParameter(SoGLShaderObject *shaderObject);
478 virtual ~SoShaderParameterMatrixArray();
485 class COIN_DLL_API SoShaderStateMatrixParameter :
public SoUniformShaderParameter {
486 typedef SoUniformShaderParameter inherited;
487 SO_NODE_HEADER(SoShaderStateMatrixParameter);
498 enum MatrixTransform{
508 SoShaderStateMatrixParameter();
509 virtual ~SoShaderStateMatrixParameter();
511 static void initClass(
void);
512 virtual void updateParameter(SoGLShaderObject *shaderObject);
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
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
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