Coverage Report

Created: 2026-07-25 06:50

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/gdal/apps/gdalalg_vector_clean_coverage.h
Line
Count
Source
1
/******************************************************************************
2
*
3
 * Project:  GDAL
4
 * Purpose:  "gdal vector clean-coverage"
5
 * Author:   Daniel Baston
6
 *
7
 ******************************************************************************
8
 * Copyright (c) 2025, ISciences LLC
9
 *
10
 * SPDX-License-Identifier: MIT
11
 ****************************************************************************/
12
13
#ifndef GDALALG_VECTOR_CLEAN_COVERAGE_INCLUDED
14
#define GDALALG_VECTOR_CLEAN_COVERAGE_INCLUDED
15
16
#include "gdalvectorpipelinestepalgorithm.h"
17
18
#include "cpl_progress.h"
19
20
#include <string>
21
22
//! @cond Doxygen_Suppress
23
24
/************************************************************************/
25
/*                   GDALVectorCleanCoverageAlgorithm                   */
26
/************************************************************************/
27
28
class GDALVectorCleanCoverageAlgorithm : public GDALVectorPipelineStepAlgorithm
29
{
30
  public:
31
    static constexpr const char *NAME = "clean-coverage";
32
    static constexpr const char *DESCRIPTION =
33
        "Alter polygon boundaries to make shared edges identical, removing "
34
        "gaps and overlaps";
35
    static constexpr const char *HELP_URL =
36
        "/programs/gdal_vector_clean_coverage.html";
37
38
    explicit GDALVectorCleanCoverageAlgorithm(bool standaloneStep = false);
39
40
    bool IsNativelyStreamingCompatible() const override
41
0
    {
42
0
        return false;
43
0
    }
44
45
    struct Options
46
    {
47
        double snappingTolerance = -1;
48
        double maximumGapWidth = 0;
49
        std::string mergeStrategy = "longest-border";
50
    };
51
52
  private:
53
    bool RunStep(GDALPipelineStepRunContext &ctxt) override;
54
55
    std::string m_activeLayer{};
56
57
    Options m_opts{};
58
};
59
60
/************************************************************************/
61
/*              GDALVectorCleanCoverageAlgorithmStandalone              */
62
/************************************************************************/
63
64
class GDALVectorCleanCoverageAlgorithmStandalone final
65
    : public GDALVectorCleanCoverageAlgorithm
66
{
67
  public:
68
    GDALVectorCleanCoverageAlgorithmStandalone()
69
0
        : GDALVectorCleanCoverageAlgorithm(/* standaloneStep = */ true)
70
0
    {
71
0
    }
72
73
    ~GDALVectorCleanCoverageAlgorithmStandalone() override;
74
};
75
76
//! @endcond
77
78
#endif /* GDALALG_VECTOR_CLEAN_COVERAGE_INCLUDED */