GEOS  3.3.3
ElevationMatrixCell.h
1 /**********************************************************************
2  * $Id: ElevationMatrixCell.h 3255 2011-03-01 17:56:10Z mloskot $
3  *
4  * GEOS - Geometry Engine Open Source
5  * http://geos.refractions.net
6  *
7  * Copyright (C) 2006 Refractions Research Inc.
8  *
9  * This is free software; you can redistribute and/or modify it under
10  * the terms of the GNU Lesser General Public Licence as published
11  * by the Free Software Foundation.
12  * See the COPYING file for more information.
13  *
14  ***********************************************************************
15  *
16  * Last port: original (by strk)
17  *
18  **********************************************************************/
19 
20 #ifndef GEOS_OP_OVERLAY_ELEVATIONMATRIXCELL_H
21 #define GEOS_OP_OVERLAY_ELEVATIONMATRIXCELL_H
22 
23 #include <geos/export.h>
24 
25 #include <set>
26 
27 #ifdef _MSC_VER
28 #pragma warning(push)
29 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
30 #endif
31 
32 // Forward declarations
33 namespace geos {
34  namespace geom {
35  class Coordinate;
36  }
37 }
38 
39 namespace geos {
40 namespace operation { // geos::operation
41 namespace overlay { // geos::operation::overlay
42 
43 
44 class GEOS_DLL ElevationMatrixCell {
45 public:
46  ElevationMatrixCell();
47  ~ElevationMatrixCell();
48  void add(const geom::Coordinate &c);
49  void add(double z);
50  double getAvg(void) const;
51  double getTotal(void) const;
52  std::string print() const;
53 private:
54  std::set<double>zvals;
55  double ztot;
56 };
57 
58 } // namespace geos::operation::overlay
59 } // namespace geos::operation
60 } // namespace geos
61 
62 #ifdef _MSC_VER
63 #pragma warning(pop)
64 #endif
65 
66 #endif // ndef GEOS_OP_OVERLAY_ELEVATIONMATRIXCELL_H
67 
68 /**********************************************************************
69  * $Log$
70  * Revision 1.1 2006/03/17 13:24:59 strk
71  * 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  *
73  **********************************************************************/
74