00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _SO_TEXTURE_ENABLED_ELEMENT
00022 #define _SO_TEXTURE_ENABLED_ELEMENT
00023
00024 #include <Inventor/elements/SoReplacedTextureElement.h>
00025 #include <Inventor/STL/vector>
00026
00054 class SoTextureEnabledElement : public SoReplacedTextureElement
00055 {
00056
00057 SO_ELEMENT_HEADER( SoTextureEnabledElement );
00058
00059 public:
00065 static void set( SoState* state, SbBool value, SoNode *node = NULL );
00066
00071 static SbBool get( SoState* state, int unit = 0 );
00072
00076 static SbBool getDefault() { return FALSE; }
00077
00082 virtual void push( SoState* state );
00083
00087 virtual void pop( SoState* state, const SoElement* prevTopElement );
00088
00089 private:
00090
00091 static void initClass();
00092 static void exitClass();
00093
00094 virtual ~SoTextureEnabledElement();
00095
00096 private:
00097
00099 virtual void commonInit();
00100
00102 virtual void init( SoState* state );
00103
00104 bool isEnabled( int unit ) const;
00105
00106 void setEnabled( int unit, bool enabled );
00107
00108 typedef std::vector<bool> SoTextureUnitEnabledList;
00109
00110
00111 mutable SoTextureUnitEnabledList m_isEnabled;
00112 };
00113
00114 #endif
00115