/* model/light.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_MODEL_LIGHT_H__ #define __INCLUDED_MODEL_LIGHT_H__ #include "math/vector3f.h" #include "math/color.h" namespace model { /// an exterior light class Light { public: Light(); Light(math::Vector3f const & location, math::Color const & color, bool strobe=false); ~Light(); inline math::Vector3f const & location() const { return light_location; } inline math::Color const & color() const { return light_color; }; /// true if this is a strobe light inline bool strobe() const { return light_strobe; } /// true if this light has entity color inline bool entity() const { return light_entity; } /// size if the light, default is 1.0f inline float radius() const { return light_radius; } /// strobe time offset, in seconds inline float offset() const { return light_offset; } /// frequency in strobes per second inline float frequency() const { return light_frequency; } /// fraction a strobe light will be on, default is 0.5f inline float time() const { return light_time; } /// flare texture number inline unsigned int flare() const { return light_flare; } /// render texture number inline size_t texture() const { return render_texture; } math::Vector3f light_location; math::Color light_color; bool light_strobe; bool light_entity; float light_radius; float light_frequency; float light_offset; float light_time; unsigned int light_flare; size_t render_texture; }; } #endif // __INCLUDED_MODEL_LIGHT_H__