GDAL

gdalalg_vector_reproject.h
1/******************************************************************************
2 *
3 * Project: GDAL
4 * Purpose: "reproject" step of "vector pipeline"
5 * Author: Even Rouault <even dot rouault at spatialys.com>
6 *
7 ******************************************************************************
8 * Copyright (c) 2024, Even Rouault <even dot rouault at spatialys.com>
9 *
10 * SPDX-License-Identifier: MIT
11 ****************************************************************************/
12
13#ifndef GDALALG_VECTOR_REPROJECT_INCLUDED
14#define GDALALG_VECTOR_REPROJECT_INCLUDED
15
16#include "gdalalg_vector_pipeline.h"
17
19
20/************************************************************************/
21/* GDALVectorReprojectAlgorithm */
22/************************************************************************/
23
24 class GDALVectorReprojectAlgorithm /* non final */
25 : public GDALVectorPipelineStepAlgorithm
26{
27 public:
28 static constexpr const char *NAME = "reproject";
29 static constexpr const char *DESCRIPTION = "Reproject a vector dataset.";
30 static constexpr const char *HELP_URL =
31 "/programs/gdal_vector_pipeline.html";
32
33 explicit GDALVectorReprojectAlgorithm(bool standaloneStep = false);
34
35 private:
36 bool RunStep(GDALPipelineStepRunContext &ctxt) override;
37
38 std::string m_activeLayer{};
39 std::string m_srsCrs{};
40 std::string m_dstCrs{};
41};
42
43/************************************************************************/
44/* GDALVectorReprojectAlgorithmStandalone */
45/************************************************************************/
46
47 class GDALVectorReprojectAlgorithmStandalone final
48 : public GDALVectorReprojectAlgorithm
49{
50 public:
51 GDALVectorReprojectAlgorithmStandalone()
52 : GDALVectorReprojectAlgorithm(/* standaloneStep = */ true)
53 {
54 }
55
56 ~GDALVectorReprojectAlgorithmStandalone() override;
57};
58
60
61#endif /* GDALALG_VECTOR_REPROJECT_INCLUDED */