MeVisLabToolboxReference
MeVisLab/Standard/Sources/Inventor/SoUtils/SoMLLUTElement.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00004 
00009 //----------------------------------------------------------------------------------
00010 
00011 #ifndef __SoMLLUTElement_H
00012 #define __SoMLLUTElement_H
00013 
00014 #ifndef __SoUtilsSystem_H
00015 #include "SoUtilsSystem.h"
00016 #endif
00017 #include <Inventor/elements/SoReplacedElement.h>
00018 
00019 class SoMLLUT;
00020 
00021 ML_START_NAMESPACE
00022 
00023   class LUTFunction;
00024 
00025 ML_END_NAMESPACE
00026 
00027 //----------------------------------------------------------------------------------
00029 //----------------------------------------------------------------------------------
00030 class SOUTILS_EXPORT SoMLLUTElement : public SoReplacedElement {
00031 
00032     SO_ELEMENT_HEADER(SoMLLUTElement);
00033 
00034   public:
00036     virtual void    init(SoState *state);
00037 
00039     static void     set(SoState *state, SoNode *node, SoMLLUT *lutNode);
00040 
00043     static SoMLLUT *get(SoState *state);
00044 
00047     static ml::LUTFunction *getLut(SoState *state);
00048 
00050     static const SoMLLUTElement * getInstance(SoState *state);
00051 
00053     virtual SbBool matches(const SoElement *elt) const;
00054 
00057     virtual SoElement *copyMatchInfo() const;
00058 
00060     virtual void print(FILE *fp) const;
00061 
00062   SoINTERNAL public:
00064     static void     initClass();
00065 
00066   protected:
00068     SoMLLUT *data;
00069 
00071     virtual ~SoMLLUTElement() {}
00072 };
00073 
00074 #endif