00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef SG_LIGHT_BIN_HXX
00023 #define SG_LIGHT_BIN_HXX
00024
00025 #include <simgear/math/SGMath.hxx>
00026
00027 class SGLightBin {
00028 public:
00029 struct Light {
00030 Light(const SGVec3f& p, const SGVec4f& c) :
00031 position(p), color(c)
00032 { }
00033 SGVec3f position;
00034 SGVec4f color;
00035 };
00036 typedef std::vector<Light> LightList;
00037
00038 void insert(const Light& light)
00039 { _lights.push_back(light); }
00040 void insert(const SGVec3f& p, const SGVec4f& c)
00041 { insert(Light(p, c)); }
00042
00043 unsigned getNumLights() const
00044 { return _lights.size(); }
00045 const Light& getLight(unsigned i) const
00046 { return _lights[i]; }
00047
00048 private:
00049 LightList _lights;
00050 };
00051
00052 #endif