00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt 00002 // This file is part of the "Irrlicht Engine". 00003 // For conditions of distribution and use, see copyright notice in irrlicht.h 00004 00005 #ifndef __I_LIGHT_SCENE_NODE_H_INCLUDED__ 00006 #define __I_LIGHT_SCENE_NODE_H_INCLUDED__ 00007 00008 #include "ISceneNode.h" 00009 #include "SLight.h" 00010 00011 namespace irr 00012 { 00013 namespace scene 00014 { 00015 00017 00022 class ILightSceneNode : public ISceneNode 00023 { 00024 public: 00025 00027 ILightSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 id, 00028 const core::vector3df& position = core::vector3df(0,0,0)) 00029 : ISceneNode(parent, mgr, id, position) {} 00030 00032 00033 virtual void setLightData(const video::SLight& light) = 0; 00034 00036 00037 virtual const video::SLight& getLightData() const = 0; 00038 00040 00041 virtual video::SLight& getLightData() = 0; 00042 00044 00047 virtual void setVisible(bool isVisible) = 0; 00048 00050 00055 virtual void setRadius(f32 radius) = 0; 00056 00058 00059 virtual f32 getRadius() const = 0; 00060 00062 00063 virtual void setLightType(video::E_LIGHT_TYPE type) = 0; 00064 00066 00067 virtual video::E_LIGHT_TYPE getLightType() const = 0; 00068 00070 00074 virtual void enableCastShadow(bool shadow=true) = 0; 00075 00077 00078 virtual bool getCastShadow() const = 0; 00079 }; 00080 00081 } // end namespace scene 00082 } // end namespace irr 00083 00084 00085 #endif 00086