/* -*-c++-*- */ /* osgEarth - Geospatial SDK for OpenSceneGraph * Copyright 2020 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. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see */ #ifndef OSGEARTHUTIL_TILEINDEXBUILDER_H #define OSGEARTHUTIL_TILEINDEXBUILDER_H 1 #include #include namespace osgEarth { namespace Contrib { /** * Utility class for buildling a TileIndex shapefile. */ class OSGEARTH_EXPORT TileIndexBuilder : public osg::Referenced { public: /** * Creates a new TileIndexBuilder */ TileIndexBuilder(); /** * Sets the progress callback */ void setProgressCallback( osgEarth::ProgressCallback* progress ); /** * Gets the list of filenames to process. If you pass in a directory name * it will recursively try all the files within the directory and it's subdirectories. */ std::vector< std::string >& getFilenames() { return _filenames; } /** * Builds the TileIndex * @param indexFilename * The filename of the index shapefile to create. * @param srs * The SRS to use for the output shapefile. Default is epsg:4326 */ void build(const std::string& indexFilename, const osgEarth::SpatialReference* srs = 0); protected: void expandFilenames(); std::string _indexFilename; std::vector< std::string > _filenames; std::vector< std::string > _expandedFilenames; osg::ref_ptr _progress; }; } } // namespace osgEarth::Util #endif //OSGEARTHUTIL_TILEINDEXBUILDER_H