GEOS  3.3.3
CommonBitsRemover.h
1 /**********************************************************************
2  * $Id: CommonBitsRemover.h 2556 2009-06-06 22:22:28Z strk $
3  *
4  * GEOS - Geometry Engine Open Source
5  * http://geos.refractions.net
6  *
7  * Copyright (C) 2005-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 #ifndef GEOS_PRECISION_COMMONBITSREMOVER_H
17 #define GEOS_PRECISION_COMMONBITSREMOVER_H
18 
19 #include <geos/export.h>
20 #include <geos/geom/Coordinate.h> // for composition
21 
22 // Forward declarations
23 namespace geos {
24  namespace geom {
25  class Geometry;
26  }
27  namespace precision {
28  class CommonBitsRemover;
29  class CommonCoordinateFilter;
30  }
31 }
32 
33 namespace geos {
34 namespace precision { // geos.precision
35 
41 class GEOS_DLL CommonBitsRemover {
42 
43 private:
44 
45  geom::Coordinate commonCoord;
46 
47  CommonCoordinateFilter *ccFilter;
48 
49 public:
50 
52 
54 
63  void add(const geom::Geometry *geom);
64 
68  geom::Coordinate& getCommonCoordinate();
69 
78  geom::Geometry* removeCommonBits(geom::Geometry *geom);
79 
87  geom::Geometry* addCommonBits(geom::Geometry *geom);
88 };
89 
90 } // namespace geos.precision
91 } // namespace geos
92 
93 #endif // GEOS_PRECISION_COMMONBITSREMOVER_H
94 
95 /**********************************************************************
96  * $Log$
97  * Revision 1.3 2006/04/07 08:30:30 strk
98  * made addCommonBits/removeCommonBits interface consistent, doxygen comments
99  *
100  * Revision 1.2 2006/04/06 14:36:52 strk
101  * Cleanup in geos::precision namespace (leaks plugged, auto_ptr use, ...)
102  *
103  * Revision 1.1 2006/03/23 09:17:19 strk
104  * precision.h header split, minor optimizations
105  *
106  **********************************************************************/