osgEarth 2.1.1
|
00001 00002 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_GEOMETRY_SYMBOL_H 00021 //#define OSGEARTHSYMBOLOGY_GEOMETRY_SYMBOL_H 1 00022 // 00023 //#include <osgEarth/Common> 00024 //#include <osgEarthSymbology/Common> 00025 //#include <osgEarthSymbology/Symbol> 00026 //#include <osg/Referenced> 00027 //#include <vector> 00028 // 00029 //namespace osgEarth { namespace Symbology 00030 //{ 00031 // class OSGEARTHSYMBOLOGY_EXPORT Stroke 00032 // { 00033 // public: 00034 // enum LineCapStyle { 00035 // LINECAP_DEFAULT, 00036 // LINECAP_BUTT, 00037 // LINECAP_SQUARE, 00038 // LINECAP_ROUND 00039 // }; 00040 // 00041 // enum LineJoinStyle { 00042 // LINEJOIN_DEFAULT 00043 // }; 00044 // 00045 // public: 00046 // Stroke(); 00047 // Stroke( float r, float g, float b, float a ); 00048 // Stroke( const Config& conf ) { mergeConfig(conf); } 00049 // 00050 // osg::Vec4f& color() { return _color; } 00051 // const osg::Vec4f& color() const { return _color; } 00052 // 00053 // optional<LineCapStyle>& lineCap() { return _lineCap; } 00054 // const optional<LineCapStyle>& lineCap() const { return _lineCap; } 00055 // 00056 // optional<LineJoinStyle>& lineJoin() { return _lineJoin; } 00057 // const optional<LineJoinStyle>& lineJoin() const { return _lineJoin; } 00058 // 00059 // optional<float>& width() { return _width; } 00060 // const optional<float>& width() const { return _width; } 00061 // 00062 // public: 00063 // virtual Config getConfig() const { 00064 // Config conf("stroke"); 00065 // conf.add( "color", vec4fToHtmlColor(_color) ); 00066 // conf.addIfSet("linecap", "butt", _lineCap, LINECAP_BUTT); 00067 // conf.addIfSet("linecap", "square", _lineCap, LINECAP_SQUARE); 00068 // conf.addIfSet("linecap", "round", _lineCap, LINECAP_ROUND); 00069 // conf.addIfSet("width", _width); 00070 // return conf; 00071 // } 00072 // 00073 // virtual void mergeConfig( const Config& conf ) { 00074 // _color = htmlColorToVec4f( conf.value("color") ); 00075 // conf.getIfSet("linecap", "butt", _lineCap, LINECAP_BUTT); 00076 // conf.getIfSet("linecap", "square", _lineCap, LINECAP_SQUARE); 00077 // conf.getIfSet("linecap", "round", _lineCap, LINECAP_ROUND); 00078 // conf.getIfSet("width", _width); 00079 // } 00080 // 00081 // protected: 00082 // osg::Vec4f _color; 00083 // optional<LineCapStyle> _lineCap; 00084 // optional<LineJoinStyle> _lineJoin; 00085 // optional<float> _width; 00086 // }; 00087 // 00088 // class OSGEARTHSYMBOLOGY_EXPORT Fill 00089 // { 00090 // public: 00091 // Fill(); 00092 // Fill( float r, float g, float b, float a ); 00093 // Fill( const Config& conf ) { mergeConfig(conf); } 00094 // 00095 // osg::Vec4f& color() { return _color; } 00096 // const osg::Vec4f& color() const { return _color; } 00097 // 00098 // public: 00099 // virtual Config getConfig() const { 00100 // Config conf("fill"); 00101 // conf.add("color", vec4fToHtmlColor(_color)); 00102 // return conf; 00103 // } 00104 // virtual void mergeConfig( const Config& conf ) { 00105 // _color = htmlColorToVec4f(conf.value("color")); 00106 // } 00107 // 00108 // protected: 00109 // osg::Vec4f _color; 00110 // }; 00111 // 00112 // class OSGEARTHSYMBOLOGY_EXPORT LineSymbol : public Symbol 00113 // { 00114 // public: 00115 // LineSymbol(); 00116 // LineSymbol(const Config& conf) { mergeConfig(conf); } 00117 // 00118 // optional<Stroke>& stroke() { return _stroke; } 00119 // const optional<Stroke>& stroke() const { return _stroke; } 00120 // 00121 // public: 00122 // virtual Config getConfig() const { 00123 // Config conf( "line" ); 00124 // conf.addObjIfSet("stroke", _stroke); 00125 // return conf; 00126 // } 00127 // virtual void mergeConfig( const Config& conf ) { 00128 // conf.getObjIfSet("stroke", _stroke); 00129 // } 00130 // 00131 // protected: 00132 // optional<Stroke> _stroke; 00133 // }; 00134 // 00135 // class OSGEARTHSYMBOLOGY_EXPORT PointSymbol : public Symbol 00136 // { 00137 // public: 00138 // PointSymbol(); 00139 // PointSymbol( const Config& conf ) { mergeConfig(conf); } 00140 // 00141 // optional<Fill>& fill() { return _fill; } 00142 // const optional<Fill>& fill() const { return _fill; } 00143 // 00144 // optional<float>& size() { return _size; } 00145 // const optional<float>& size() const { return _size; } 00146 // 00147 // public: 00148 // virtual Config getConfig() const { 00149 // Config conf( "point" ); 00150 // conf.addObjIfSet( "fill", _fill ); 00151 // conf.addIfSet( "size", _size ); 00152 // return conf; 00153 // } 00154 // virtual void mergeConfig( const Config& conf ) { 00155 // conf.getObjIfSet( "fill", _fill ); 00156 // conf.getIfSet( "size", _size ); 00157 // } 00158 // 00159 // protected: 00160 // optional<Fill> _fill; 00161 // optional<float> _size; 00162 // }; 00163 // 00164 // class OSGEARTHSYMBOLOGY_EXPORT PolygonSymbol : public Symbol 00165 // { 00166 // public: 00167 // PolygonSymbol(); 00168 // PolygonSymbol( const Config& conf ) { mergeConfig(conf); } 00169 // 00170 // optional<Fill>& fill() { return _fill; } 00171 // const optional<Fill>& fill() const { return _fill; } 00172 // 00173 // public: 00174 // virtual Config getConfig() const { 00175 // Config conf( "polygon" ); 00176 // conf.addObjIfSet( "fill", _fill ); 00177 // return conf; 00178 // } 00179 // virtual void mergeConfig(const Config& conf ) { 00180 // conf.getObjIfSet( "fill", _fill ); 00181 // } 00182 // 00183 // protected: 00184 // optional<Fill> _fill; 00185 // }; 00186 // 00187 // 00188 //} } // namespace osgEarth::Symbology 00189 // 00190 //#endif // OSGEARTH_SYMBOLOGY_SYMBOL_H