osgEarth 2.1.1
|
00001 /* --*-c++-*-- */ 00002 /* osgEarth - Dynamic map generation toolkit for OpenSceneGraph 00003 * Copyright 2008-2010 Pelican Mapping 00004 * http://osgearth.org 00005 * 00006 * osgEarth is free software; you can redistribute it and/or modify 00007 * it under the terms of the GNU Lesser General Public License as published by 00008 * the Free Software Foundation; either version 2 of the License, or 00009 * (at your option) any later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public License 00017 * along with this program. If not, see <http://www.gnu.org/licenses/> 00018 */ 00019 00020 #ifndef OSGEARTHSYMBOLOGY_CONTENT_H 00021 #define OSGEARTHSYMBOLOGY_CONTENT_H 1 00022 00023 #include <osgEarth/Revisioning> 00024 #include <osgEarthSymbology/Common> 00025 #include <osgEarthSymbology/Geometry> 00026 00027 00028 namespace osgEarth { namespace Symbology 00029 { 00033 template<typename CONTENT_TYPE> 00034 class Content : public osgEarth::Revisioned<CONTENT_TYPE> // header only (no export) 00035 { 00036 //empty 00037 }; 00038 00042 class NullContent : public Content<osg::Referenced> 00043 { 00044 //empty 00045 }; 00046 00050 class TextContent : public Content<osg::Referenced> // header only (no export) 00051 { 00052 public: 00053 TextContent() { } 00054 TextContent( const std::string& text ) : _text( text ) { } 00055 00056 const std::string& getText() const { return _text; } 00057 00058 void setText( const std::string& text ) { _text = text; } 00059 00060 private: 00061 std::string _text; 00062 }; 00063 00067 class GeometryContent : public Content<osg::Referenced> // header-only (no export) 00068 { 00069 public: 00070 const GeometryList& getGeometryList() const { return _geometryList; } 00071 GeometryList& getGeometryList() { return _geometryList; } 00072 00073 protected: 00074 GeometryList _geometryList; 00075 }; 00076 00077 } } // namespace osgEarth::Symbology 00078 00079 #endif // OSGEARTHSYMBOLOGY_CONTENT_H