/* -*-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. * * 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 */ #ifndef OSGEARTH_GEOCOMMON_H #define OSGEARTH_GEOCOMMON_H 1 // For FLT_MAX #include #include #undef NO_DATA_VALUE #define NO_DATA_VALUE -FLT_MAX namespace osgEarth { // constexpr float NO_DATA_VALUE = -FLT_MAX; /** * Types of interpolation between two geodetic locations. */ enum GeoInterpolation { GEOINTERP_GREAT_CIRCLE, GEOINTERP_RHUMB_LINE }; /** * Elevation/Image grid interpolation methods. */ enum RasterInterpolation { INTERP_AVERAGE, INTERP_NEAREST, INTERP_BILINEAR, INTERP_TRIANGULATE, INTERP_CUBIC, INTERP_CUBICSPLINE }; /** * Elevation stack sampling policy */ enum ElevationSamplePolicy { SAMPLE_FIRST_VALID, SAMPLE_HIGHEST, SAMPLE_LOWEST, SAMPLE_AVERAGE }; /** * Elevation NO_DATA treatment policy */ enum ElevationNoDataPolicy { NODATA_INTERPOLATE, // interpolate across NO_DATA samples NODATA_MSL // rewrite NO_DATA samples as MSL }; /** * Indicates how to interpret a Z coordinate. */ enum AltitudeMode { ALTMODE_ABSOLUTE, // Z value is the absolute height above MSL/HAE. ALTMODE_RELATIVE // Z value is the height above the terrain elevation. }; } #endif // OSGEARTH_GEODATA_H