osgEarth 2.1.1

/home/cube/sources/osgearth/src/osgEarthSymbology/GeometrySymbol

Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines