/usr/include/osgEarthSplat/Coverage is in libosgearth-dev 2.9.0+dfsg-1.
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 108 109 110 111 112 113 114 115 116 117 118 | /* -*-c++-*- */
/* osgEarth - Dynamic map generation toolkit for OpenSceneGraph
* Copyright 2016 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 OSGEARTH_PROCEDURAL_COVERAGE
#define OSGEARTH_PROCEDURAL_COVERAGE 1
#include "Export"
#include "SplatCoverageLegend"
#include <osgEarth/Config>
#include <osgEarth/URI>
namespace osgDB {
class Options;
}
namespace osgEarth {
class ImageLayer;
class Map;
}
namespace osgEarth { namespace Splat
{
/**
* Serializable options for the coverage data.
*/
class CoverageOptions : public ConfigOptions
{
public:
CoverageOptions(const ConfigOptions& conf = ConfigOptions()) : ConfigOptions(conf) {
fromConfig( _conf );
}
/** Name of the ImageLayer providing the classification coverage. */
optional<std::string>& layer() { return _coverageLayer; }
const optional<std::string>& layer() const { return _coverageLayer; }
/** URI of the legend file. */
optional<URI>& legend() { return _legendURI; }
const optional<URI>& legend() const { return _legendURI; }
protected:
optional<std::string> _coverageLayer;
optional<URI> _legendURI;
public:
void fromConfig(const Config& conf) {
conf.getIfSet("layer", _coverageLayer);
conf.getIfSet("legend", _legendURI);
}
Config getConfig() const {
Config conf = ConfigOptions::getConfig();
conf.key() = "coverage";
conf.set("layer", _coverageLayer);
conf.set("legend", _legendURI);
return conf;
}
void mergeConfig( const Config& conf ) {
ConfigOptions::mergeConfig( conf );
fromConfig( conf );
}
};
/**
* Coverage data model. This defines the coverage layer and an associated legend that is
* used to interpret the coverage code values in the raster.
*/
class OSGEARTHSPLAT_EXPORT Coverage : public osg::Referenced
{
public:
/** Construct the coverage data */
Coverage();
public:
/** Image layer providing the coverage data. */
void setLayer(ImageLayer* layer);
bool lockLayer(osg::ref_ptr<ImageLayer>& safePtr) const; // semantics of observer_ptr.lock
bool hasLayer() const { return _layer.valid(); }
/** The Legend maps classification codes from this coverage data into the common
* classification ontology. */
void setLegend(SplatCoverageLegend* legend);
SplatCoverageLegend* getLegend() const;
protected:
/** dtor */
virtual ~Coverage() { }
protected:
osg::observer_ptr<ImageLayer> _layer;
osg::ref_ptr<SplatCoverageLegend> _legend;
const CoverageOptions _options;
public:
/** Initialize from a config stucture */
bool configure(const ConfigOptions& options, const Map* map, const osgDB::Options* dbo);
};
} } // namespace osgEarth::Splat
#endif // OSGEARTH_PROCEDURAL_COVERAGE
|