MeVisLabToolboxReference
MeVisLab/Standard/Sources/Inventor/SoShader/Inventor/elements/SoShaderObjectElement.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 
00006 
00007 
00008 #ifndef  _SO_SHADER_OBJECT_ELEMENT_
00009 #define  _SO_SHADER_OBJECT_ELEMENT_
00010 
00011 #include "SoShaderSystem.h"
00012 #include <Inventor/elements/SoAccumulatedElement.h>
00013 #include <Inventor/SoLists.h>
00014 
00015 class SoShaderObject;
00016 
00018 class INVENTOR_SHADER_API SoShaderObjectElement : public SoAccumulatedElement
00019 {
00020    typedef SoAccumulatedElement inherited;
00021 
00022    SO_ELEMENT_HEADER(SoShaderObjectElement);
00023   
00024    public:
00025 
00027       virtual void init(SoState *state);
00028   
00030       static  void add(SoState *state, SoShaderObject *shader);
00031 
00033       static  const SoNodeList &get(SoState *state);
00034 
00036       static  void clear(SoState *state, SoNode *node);
00037   
00039       virtual void push(SoState *state);
00040 
00041    SoINTERNAL public:
00042   
00044       static void initClass();
00045   
00046    protected:
00047 
00049       SoNodeList  _shaders;
00050 };
00051 
00052 #endif  // _SO_SHADER_OBJECT_ELEMENT_