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) // warning C4251: needs to have dll-interface to be used by clients of class 43 class ElevationMatrixFilter;
44 class ElevationMatrix;
60 class 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;
78 class 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: Angle.h:25