GEOS 3.3.8

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

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
51 CommonBitsRemover();
52
53 ~CommonBitsRemover();
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 **********************************************************************/