19 #ifndef GEOS_OP_OVERLAY_ELEVATIONMATRIX_H 20 #define GEOS_OP_OVERLAY_ELEVATIONMATRIX_H 22 #include <geos/export.h> 24 #include <geos/geom/CoordinateFilter.h> 25 #include <geos/geom/Envelope.h> 26 #include <geos/operation/overlay/ElevationMatrixCell.h> 33 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class 44 class ElevationMatrixFilter;
45 class ElevationMatrix;
61 class GEOS_DLL ElevationMatrixFilter:
public geom::CoordinateFilter
64 ElevationMatrixFilter(ElevationMatrix &em);
65 ~ElevationMatrixFilter();
66 void filter_rw(geom::Coordinate *c)
const;
67 void filter_ro(
const geom::Coordinate *c);
73 ElevationMatrixFilter(
const ElevationMatrixFilter& other);
74 ElevationMatrixFilter& operator=(
const ElevationMatrixFilter& rhs);
80 class GEOS_DLL ElevationMatrix {
81 friend class ElevationMatrixFilter;
83 ElevationMatrix(
const geom::Envelope &extent,
unsigned int rows,
86 void add(
const geom::Geometry *geom);
87 void elevate(geom::Geometry *geom)
const;
89 double getAvgElevation()
const;
90 ElevationMatrixCell &getCell(
const geom::Coordinate &c);
91 const ElevationMatrixCell &getCell(
const geom::Coordinate &c)
const;
92 std::string print()
const;
94 ElevationMatrixFilter filter;
95 void add(
const geom::Coordinate &c);
101 mutable bool avgElevationComputed;
102 mutable double avgElevation;
103 std::vector<ElevationMatrixCell>cells;
114 #endif // ndef GEOS_OP_OVERLAY_ELEVATIONMATRIX_H Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25