Browse Source

Use NaN to signal lower level error

QGC4.4
Don Gagne 7 years ago
parent
commit
8fccae99e3
  1. 4
      src/Terrain/TerrainQuery.cc
  2. 4
      src/TerrainTile.cc

4
src/Terrain/TerrainQuery.cc

@ -412,7 +412,7 @@ bool TerrainTileManager::_getAltitudesForCoordinates(const QList<QGeoCoordinate>
if (_tiles.contains(tileHash)) { if (_tiles.contains(tileHash)) {
if (_tiles[tileHash].isIn(coordinate)) { if (_tiles[tileHash].isIn(coordinate)) {
double elevation = _tiles[tileHash].elevation(coordinate); double elevation = _tiles[tileHash].elevation(coordinate);
if (elevation < 0.0) { if (qIsNaN(elevation)) {
error = true; error = true;
qCWarning(TerrainQueryLog) << "TerrainTileManager::_getAltitudesForCoordinates Internal Error: negative elevation in tile cache"; qCWarning(TerrainQueryLog) << "TerrainTileManager::_getAltitudesForCoordinates Internal Error: negative elevation in tile cache";
} else { } else {
@ -421,7 +421,7 @@ bool TerrainTileManager::_getAltitudesForCoordinates(const QList<QGeoCoordinate>
altitudes.push_back(elevation); altitudes.push_back(elevation);
} else { } else {
qCWarning(TerrainQueryLog) << "TerrainTileManager::_getAltitudesForCoordinates Internal Error: coordinate not in tile region"; qCWarning(TerrainQueryLog) << "TerrainTileManager::_getAltitudesForCoordinates Internal Error: coordinate not in tile region";
altitudes.push_back(-1.0); altitudes.push_back(qQNaN());
error = true; error = true;
} }
} else { } else {

4
src/TerrainTile.cc

@ -121,13 +121,13 @@ double TerrainTile::elevation(const QGeoCoordinate& coordinate) const
int indexLon = _lonToDataIndex(coordinate.longitude()); int indexLon = _lonToDataIndex(coordinate.longitude());
if (indexLat == -1 || indexLon == -1) { if (indexLat == -1 || indexLon == -1) {
qCWarning(TerrainTileLog) << "Internal error indexLat:indexLon == -1" << indexLat << indexLon; qCWarning(TerrainTileLog) << "Internal error indexLat:indexLon == -1" << indexLat << indexLon;
return -1.0; return qQNaN();
} }
qCDebug(TerrainTileLog) << "indexLat:indexLon" << indexLat << indexLon << "elevation" << _data[indexLat][indexLon]; qCDebug(TerrainTileLog) << "indexLat:indexLon" << indexLat << indexLon << "elevation" << _data[indexLat][indexLon];
return static_cast<double>(_data[indexLat][indexLon]); return static_cast<double>(_data[indexLat][indexLon]);
} else { } else {
qCWarning(TerrainTileLog) << "Asking for elevation, but no valid data."; qCWarning(TerrainTileLog) << "Asking for elevation, but no valid data.";
return -1.0; return qQNaN();
} }
} }

Loading…
Cancel
Save