00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00027
00029 #ifndef __X3DLIGHTNODE_H__
00030 #define __X3DLIGHTNODE_H__
00031
00032 #include "X3DChildNode.h"
00033 #include "H3DDisplayListObject.h"
00034 #include "H3DRenderStateObject.h"
00035 #include "SFFloat.h"
00036 #include "SFColor.h"
00037
00038 namespace H3D {
00039
00059 class H3DAPI_API X3DLightNode :
00060 public X3DChildNode,
00061 public H3DDisplayListObject,
00062 public H3DRenderStateObject {
00063 public:
00064
00066 X3DLightNode( Inst< SFNode > _metadata = 0,
00067 Inst< SFFloat> _ambientIntensity = 0,
00068 Inst< SFColor> _color = 0,
00069 Inst< SFFloat> _intensity = 0,
00070 Inst< SFBool > _on = 0 );
00071
00073 virtual void enableGraphicsState();
00074
00076 virtual void disableGraphicsState();
00077
00085 auto_ptr< SFFloat > ambientIntensity;
00086
00095 auto_ptr< SFColor > color;
00096
00105 auto_ptr< SFFloat > intensity;
00106
00115 auto_ptr< SFBool > on;
00116
00118 static H3DNodeDatabase database;
00119
00120 protected:
00121 GLuint light_index;
00122 GLint max_lights;
00123 static GLuint global_light_index;
00124 };
00125 }
00126
00127 #endif