GEOS  3.8.0dev
ElevationMatrixCell.h
1 /**********************************************************************
2  *
3  * GEOS - Geometry Engine Open Source
4  * http://geos.osgeo.org
5  *
6  * Copyright (C) 2006 Refractions Research Inc.
7  *
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.
12  *
13  ***********************************************************************
14  *
15  * Last port: original (by strk)
16  *
17  **********************************************************************/
18 
19 #ifndef GEOS_OP_OVERLAY_ELEVATIONMATRIXCELL_H
20 #define GEOS_OP_OVERLAY_ELEVATIONMATRIXCELL_H
21 
22 #include <geos/export.h>
23 
24 #include <set>
25 
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
30 
31 // Forward declarations
32 namespace geos {
33 namespace geom {
34 class Coordinate;
35 }
36 }
37 
38 namespace geos {
39 namespace operation { // geos::operation
40 namespace overlay { // geos::operation::overlay
41 
42 
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;
55 };
56 
57 } // namespace geos::operation::overlay
58 } // namespace geos::operation
59 } // namespace geos
60 
61 #ifdef _MSC_VER
62 #pragma warning(pop)
63 #endif
64 
65 #endif // ndef GEOS_OP_OVERLAY_ELEVATIONMATRIXCELL_H
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25