Program Listing for File Raster.hpp

Return to documentation for file (optional/gdal/src/navtk/geospatial/Raster.hpp)

#pragma once

#include <string>
#include <utility>
#include <vector>

#include <navtk/aspn.hpp>
#include <navtk/geospatial/detail/custom_deleters.hpp>
#include <navtk/geospatial/detail/transformations.hpp>

namespace navtk {
namespace geospatial {

class Raster {
public:
    virtual ~Raster() = default;

    double no_data_value;

    std::unique_ptr<GDALDataset, detail::DatasetDelete> dataset;

    virtual int get_width() const = 0;

    virtual int get_height() const = 0;

    virtual std::pair<double, double> wgs84_to_pixel(double latitude, double longitude) const = 0;

    virtual double read_pixel(size_t idx_x, size_t idx_y) = 0;

    virtual std::string get_name() const = 0;

    virtual bool is_valid_data(double data) const = 0;

    virtual void unload() = 0;
};
}  // namespace geospatial
}  // namespace navtk