GDAL
gdal_interpolateatpoint.h
1/******************************************************************************
2 * $Id$
3 *
4 * Project: GDAL Raster Interpolation
5 * Purpose: Interpolation algorithms with cache
6 * Author: Frank Warmerdam, warmerdam@pobox.com
7 *
8 ******************************************************************************
9 * Copyright (c) 2001, Frank Warmerdam
10 * Copyright (c) 2008-2012, Even Rouault <even dot rouault at spatialys.com>
11 * Copyright (c) 2024, Javier Jimenez Shaw
12 *
13 * SPDX-License-Identifier: MIT
14 ****************************************************************************/
15
16#ifndef GDAL_INTERPOLATEATPOINT_H_INCLUDED
17#define GDAL_INTERPOLATEATPOINT_H_INCLUDED
18
21#include "gdal.h"
22
23#include "cpl_mem_cache.h"
24#include "gdal_priv.h"
25
26#include <memory>
27
28using DoublePointsCache =
29 lru11::Cache<uint64_t, std::shared_ptr<std::vector<double>>>;
30
31class GDALDoublePointsCache
32{
33 public:
34 std::unique_ptr<DoublePointsCache> cache{};
35};
36
37bool GDALInterpolateAtPoint(GDALRasterBand *pBand,
38 GDALRIOResampleAlg eResampleAlg,
39 std::unique_ptr<DoublePointsCache> &cache,
40 const double dfXIn, const double dfYIn,
41 double *pdfOutputReal, double *pdfOutputImag);
42
45#endif /* ndef GDAL_INTERPOLATEATPOINT_H_INCLUDED */
A single raster band (or channel).
Definition: gdal_priv.h:1519
Public (C callable) GDAL entry points.
GDALRIOResampleAlg
RasterIO() resampling method.
Definition: gdal.h:128
C++ GDAL entry points.