/usr/include/osgEarthSymbology/ExtrusionSymbol is in libosgearth-dev 2.5.0+dfsg-2+b2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | /* -*-c++-*- */
/* osgEarth - Dynamic map generation toolkit for OpenSceneGraph
* Copyright 2008-2013 Pelican Mapping
* http://osgearth.org
*
* osgEarth is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
*/
#ifndef OSGEARTHSYMBOLOGY_EXTRUSION_SYMBOL_H
#define OSGEARTHSYMBOLOGY_EXTRUSION_SYMBOL_H 1
#include <osgEarthSymbology/Common>
#include <osgEarthSymbology/Symbol>
#include <osgEarthSymbology/Expression>
namespace osgEarth { namespace Symbology
{
using namespace osgEarth;
/**
* Symbol that directs the GeometryCompiler to create extruded 3D geometry
* from 2D vector data.
*/
class OSGEARTHSYMBOLOGY_EXPORT ExtrusionSymbol : public Symbol
{
public:
// @deprecated
enum HeightReference
{
/** Means that the "height" value as provided in this symbol is expressed
relative to the Z of the input geometry. This is the usual way to extrude
geometry- extrude up from the geometry's base Z height. (default.) */
HEIGHT_REFERENCE_Z,
/** Means the "height" value is expressed in absolute terms, i.e., relative to
MSL (mean sea level, which is usually the map's ellipsoid). If your height
value is an absolute elevation, use this to "extrude down" to the terrain. */
HEIGHT_REFERENCE_MSL
};
public:
META_Symbol(ExtrusionSymbol);
ExtrusionSymbol( const Config& conf =Config() );
/** dtor */
virtual ~ExtrusionSymbol() { }
/** Height to which to extrude geometry above the footprint (for HEIGHT_REFERENCE_Z)
or above MSL (for HEIGHT_REFERENCE_MSL) */
optional<float>& height() { return _height; }
const optional<float>& height() const { return _height; }
/** Simple expression to evaluate to get height */
optional<NumericExpression>& heightExpression() { return _heightExpr; }
const optional<NumericExpression>& heightExpression() const { return _heightExpr; }
/** Reference frame in which height is expressed */
// @deprecated
optional<HeightReference>& heightReference() { return _heightRef; }
const optional<HeightReference>& heightReference() const { return _heightRef; }
/** Whether the top cap of the extruded geometry should be flat (default=true) */
optional<bool>& flatten() { return _flatten; }
const optional<bool>& flatten() const { return _flatten; }
/** Name of a style describing how to symbolize the extruded walls */
optional<std::string>& wallStyleName() { return _wallStyleName; }
const optional<std::string>& wallStyleName() const { return _wallStyleName; }
/** Name of a style describing how to symbolize the elevated rooftop */
optional<std::string>& roofStyleName() { return _roofStyleName; }
const optional<std::string>& roofStyleName() const { return _roofStyleName; }
/** Percentage by which to darken the color of the bottom of the walls relative
to the main wall color (default = 0.0, range = [0..1]) */
optional<float>& wallGradientPercentage() { return _wallGradientPercentage; }
const optional<float>& wallGradientPercentage() const { return _wallGradientPercentage; }
public:
virtual Config getConfig() const;
virtual void mergeConfig( const Config& conf );
static void parseSLD(const Config& c, class Style& style);
protected:
optional<float> _height;
optional<bool> _flatten;
optional<NumericExpression> _heightExpr;
optional<HeightReference> _heightRef;
optional<std::string> _wallStyleName;
optional<std::string> _roofStyleName;
optional<float> _wallGradientPercentage;
};
} } // namespace osgEarth::Symbology
#endif // OSGEARTHSYMBOLOGY_EXTRUSION_SYMBOL_H
|