1 // apt_signs.hxx -- build airport signs on the fly 2 // 3 // Written by Curtis Olson, started July 2001. 4 // 5 // Copyright (C) 2001 Curtis L. Olson - http://www.flightgear.org/~curt 6 // 7 // This program is free software; you can redistribute it and/or 8 // modify it under the terms of the GNU General Public License as 9 // published by the Free Software Foundation; either version 2 of the 10 // License, or (at your option) any later version. 11 // 12 // This program is distributed in the hope that it will be useful, but 13 // WITHOUT ANY WARRANTY; without even the implied warranty of 14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 // General Public License for more details. 16 // 17 // You should have received a copy of the GNU General Public License 18 // along with this program; if not, write to the Free Software 19 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 // 21 // $Id$ 22 23 24 #ifndef _SG_APT_SIGNS_HXX 25 #define _SG_APT_SIGNS_HXX 26 27 #include <simgear/compiler.h> 28 29 #include <string> 30 #include <memory> // for auto-ptr 31 32 #include <osg/Node> 33 34 class SGMaterialLib; // forward declaration 35 class SGGeod; 36 37 // Generate a generic sign 38 osg::Node* SGMakeSign( SGMaterialLib *matlib, const std::string& content ); 39 40 namespace simgear 41 { 42 43 class AirportSignBuilder 44 { 45 public: 46 AirportSignBuilder(SGMaterialLib* mats, const SGGeod& center); 47 ~AirportSignBuilder(); 48 49 void addSign(const SGGeod& pos, double heading, const std::string& content, int size); 50 51 osg::Node* getSignsGroup(); 52 private: 53 class AirportSignBuilderPrivate; 54 std::unique_ptr<AirportSignBuilderPrivate> d; 55 }; 56 57 } // of namespace simgear 58 59 #endif // _SG_APT_SIGNS_HXX 60