1 /* -*-c++-*- 2 * 3 * Copyright (C) 2006-2007 Mathias Froehlich 4 * 5 * This program is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU General Public License as 7 * published by the Free Software Foundation; either version 2 of the 8 * License, or (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, but 11 * WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 18 * MA 02110-1301, USA. 19 * 20 */ 21 22 #ifndef SG_LIGHT_BIN_HXX 23 #define SG_LIGHT_BIN_HXX 24 25 #include <simgear/math/SGMath.hxx> 26 27 class SGLightBin { 28 public: 29 struct Light { LightSGLightBin::Light30 Light(const SGVec3f& p, const SGVec4f& c) : 31 position(p), color(c) 32 { } 33 SGVec3f position; 34 SGVec4f color; 35 }; 36 typedef std::vector<Light> LightList; 37 insert(const Light & light)38 void insert(const Light& light) 39 { _lights.push_back(light); } insert(const SGVec3f & p,const SGVec4f & c)40 void insert(const SGVec3f& p, const SGVec4f& c) 41 { insert(Light(p, c)); } 42 getNumLights() const43 unsigned getNumLights() const 44 { return _lights.size(); } getLight(unsigned i) const45 const Light& getLight(unsigned i) const 46 { return _lights[i]; } 47 48 private: 49 LightList _lights; 50 }; 51 52 #endif 53