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)
44 class ElevationMatrixFilter;
45 class ElevationMatrix;
61class 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);
80class GEOS_DLL ElevationMatrix {
81friend 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;
Coordinate is the lightweight class used to store coordinates.
Definition Coordinate.h:60
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition Geometry.h:167
Contains the Geometry interface hierarchy and supporting classes.
Definition IndexedNestedRingTester.h:26
Contains classes that perform a topological overlay to compute boolean spatial functions.
Definition BufferBuilder.h:62
Provides classes for implementing operations on geometries.
Definition IndexedNestedRingTester.h:40
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:25