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 #include <osgEarthSymbology/AltitudeSymbol> 00020 00021 using namespace osgEarth; 00022 using namespace osgEarth::Symbology; 00023 00024 AltitudeSymbol::AltitudeSymbol( const Config& conf ) : 00025 Symbol ( conf ), 00026 _clamping ( CLAMP_NONE ), 00027 _clampingResolution( 0.0f ) 00028 { 00029 mergeConfig( conf ); 00030 } 00031 00032 Config 00033 AltitudeSymbol::getConfig() const 00034 { 00035 Config conf; 00036 conf.key() = "altitude"; 00037 conf.addIfSet ( "clamping", "none", _clamping, CLAMP_NONE ); 00038 conf.addIfSet ( "clamping", "terrain", _clamping, CLAMP_TO_TERRAIN ); 00039 conf.addIfSet ( "clamping", "absolute", _clamping, CLAMP_ABSOLUTE ); 00040 conf.addIfSet ( "clamping", "relative", _clamping, CLAMP_RELATIVE_TO_TERRAIN ); 00041 conf.addIfSet ( "clamping_resolution", _clampingResolution ); 00042 conf.addObjIfSet( "vertical_offset", _verticalOffset ); 00043 conf.addObjIfSet( "vertical_scale", _verticalScale ); 00044 return conf; 00045 } 00046 00047 void 00048 AltitudeSymbol::mergeConfig( const Config& conf ) 00049 { 00050 conf.getIfSet ( "clamping", "none", _clamping, CLAMP_NONE ); 00051 conf.getIfSet ( "clamping", "terrain", _clamping, CLAMP_TO_TERRAIN ); 00052 conf.getIfSet ( "clamping", "absolute", _clamping, CLAMP_ABSOLUTE ); 00053 conf.getIfSet ( "clamping", "relative", _clamping, CLAMP_RELATIVE_TO_TERRAIN ); 00054 conf.getIfSet ( "clamping_resolution", _clampingResolution ); 00055 conf.getObjIfSet( "vertical_offset", _verticalOffset ); 00056 conf.getObjIfSet( "vertical_scale", _verticalScale ); 00057 }