21#include <geos/export.h>
23#include <geos/geom/CoordinateFilter.h>
24#include <geos/geom/Envelope.h>
25#include <geos/operation/overlay/ElevationMatrixCell.h>
32#pragma warning(disable: 4251)
43class ElevationMatrixFilter;
60class GEOS_DLL ElevationMatrixFilter:
public geom::CoordinateFilter {
62 ElevationMatrixFilter(ElevationMatrix& em);
63 ~ElevationMatrixFilter()
override =
default;
64 void filter_rw(geom::Coordinate* c)
const override;
65 void filter_ro(
const geom::Coordinate* c)
override;
71 ElevationMatrixFilter(
const ElevationMatrixFilter& other) =
delete;
72 ElevationMatrixFilter& operator=(
const ElevationMatrixFilter& rhs) =
delete;
78class GEOS_DLL ElevationMatrix {
79 friend class ElevationMatrixFilter;
81 ElevationMatrix(
const geom::Envelope& extent,
unsigned int rows,
83 ~ElevationMatrix() =
default;
84 void add(
const geom::Geometry* geom);
85 void elevate(geom::Geometry* geom)
const;
87 double getAvgElevation()
const;
88 ElevationMatrixCell& getCell(
const geom::Coordinate& c);
89 const ElevationMatrixCell& getCell(
const geom::Coordinate& c)
const;
90 std::string print()
const;
92 ElevationMatrixFilter filter;
93 void add(
const geom::Coordinate& c);
99 mutable bool avgElevationComputed;
100 mutable double avgElevation;
101 std::vector<ElevationMatrixCell>cells;
Basic namespace for all GEOS functionalities.
Definition: geos.h:39