Complete Note#1 in the http://wiki.osgeo.org/wiki/GEOS_Provenance_Review to get out...
[geos.git] / include / geos / operation / overlay / ElevationMatrixCell.h
blobdddbbe59e9a3b7787c04a09f9aa22b4dbebf380d
1 /**********************************************************************
3 * GEOS - Geometry Engine Open Source
4 * http://geos.osgeo.org
6 * Copyright (C) 2006 Refractions Research Inc.
8 * This is free software; you can redistribute and/or modify it under
9 * the terms of the GNU Lesser General Public Licence as published
10 * by the Free Software Foundation.
11 * See the COPYING file for more information.
13 ***********************************************************************
15 * Last port: original (by strk)
17 **********************************************************************/
19 #ifndef GEOS_OP_OVERLAY_ELEVATIONMATRIXCELL_H
20 #define GEOS_OP_OVERLAY_ELEVATIONMATRIXCELL_H
22 #include <geos/export.h>
24 #include <set>
26 #ifdef _MSC_VER
27 #pragma warning(push)
28 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
29 #endif
31 // Forward declarations
32 namespace geos {
33 namespace geom {
34 class Coordinate;
38 namespace geos {
39 namespace operation { // geos::operation
40 namespace overlay { // geos::operation::overlay
43 class GEOS_DLL ElevationMatrixCell {
44 public:
45 ElevationMatrixCell();
46 ~ElevationMatrixCell();
47 void add(const geom::Coordinate &c);
48 void add(double z);
49 double getAvg(void) const;
50 double getTotal(void) const;
51 std::string print() const;
52 private:
53 std::set<double>zvals;
54 double ztot;
57 } // namespace geos::operation::overlay
58 } // namespace geos::operation
59 } // namespace geos
61 #ifdef _MSC_VER
62 #pragma warning(pop)
63 #endif
65 #endif // ndef GEOS_OP_OVERLAY_ELEVATIONMATRIXCELL_H
67 /**********************************************************************
68 * $Log$
69 * Revision 1.1 2006/03/17 13:24:59 strk
70 * opOverlay.h header splitted. Reduced header inclusions in operation/overlay implementation files. ElevationMatrixFilter code moved from own file to ElevationMatrix.cpp (ideally a class-private).
72 **********************************************************************/