1 /*---------------------------------------------------------------------------*\
5 * Copyright (C) 2000-2002 by the OpenSG Forum *
9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
15 * This library is free software; you can redistribute it and/or modify it *
16 * under the terms of the GNU Library General Public License as published *
17 * by the Free Software Foundation, version 2. *
19 * This library is distributed in the hope that it will be useful, but *
20 * WITHOUT ANY WARRANTY; without even the implied warranty of *
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
22 * Library General Public License for more details. *
24 * You should have received a copy of the GNU Library General Public *
25 * License along with this library; if not, write to the Free Software *
26 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
37 \*---------------------------------------------------------------------------*/
39 #ifndef _OSGTWOSIDEDLIGHTINGCHUNK_H_
40 #define _OSGTWOSIDEDLIGHTINGCHUNK_H_
45 //----------------------------------------------------------------------------
47 //----------------------------------------------------------------------------
49 #include "OSGTwoSidedLightingChunkBase.h"
51 //----------------------------------------------------------------------------
53 //----------------------------------------------------------------------------
57 /*! \brief State chunk for automatic cubetexture coordinate transformations.
58 \ingroup GrpStateOpenGLObj
59 \ingroup GrpLibOSGState
63 class OSG_STATE_DLLMAPPING TwoSidedLightingChunk
:
64 public TwoSidedLightingChunkBase
66 /*========================== PUBLIC =================================*/
70 typedef TwoSidedLightingChunkBase Inherited
;
72 /*---------------------------------------------------------------------*/
73 /*! \name Chunk Class Access */
76 virtual const StateChunkClass
*getClass(void) const;
79 /*---------------------------------------------------------------------*/
80 /*! \name Static Chunk Class Access */
83 static UInt32
getStaticClassId(void);
84 static const StateChunkClass
*getStaticClass (void);
87 /*---------------------------------------------------------------------*/
91 virtual void changed(ConstFieldMaskArg whichField
,
96 /*---------------------------------------------------------------------*/
100 virtual void activate (DrawEnv
*pEnv
,
103 virtual void changeFrom(DrawEnv
*pEnv
,
107 virtual void deactivate(DrawEnv
*pEnv
,
111 /*---------------------------------------------------------------------*/
112 /*! \name Comparison */
115 virtual Real32
switchCost(StateChunk
*chunk
);
117 virtual bool operator < (const StateChunk
&other
) const;
119 virtual bool operator == (const StateChunk
&other
) const;
120 virtual bool operator != (const StateChunk
&other
) const;
123 /*---------------------------------------------------------------------*/
127 virtual void dump( UInt32 uiIndent
= 0,
128 const BitVector bvFlags
= 0) const;
131 /*========================= PROTECTED ===============================*/
135 // Variables should all be in CubeTextureTransformChunkBase.
137 /*---------------------------------------------------------------------*/
138 /*! \name Constructors */
141 TwoSidedLightingChunk(void);
142 TwoSidedLightingChunk(const TwoSidedLightingChunk
&source
);
145 /*---------------------------------------------------------------------*/
146 /*! \name Destructors */
149 virtual ~TwoSidedLightingChunk(void);
152 /*---------------------------------------------------------------------*/
156 static void initMethod(InitPhase ePhase
);
159 /*========================== PRIVATE ================================*/
163 friend class FieldContainer
;
164 friend class TwoSidedLightingChunkBase
;
167 // class. Used for indexing in State
168 static StateChunkClass _class
;
170 // prohibit default functions (move to 'public' if you need one)
171 void operator =(const TwoSidedLightingChunk
&source
);
176 typedef TwoSidedLightingChunk
*TwoSidedLightingChunkP
;
180 #include "OSGTwoSidedLightingChunkBase.inl"
181 #include "OSGTwoSidedLightingChunk.inl"
183 #endif /* _OSGTWOSIDEDLIGHTINGCHUNK_H_ */