GEOS 3.3.4

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

- File List

ShortCircuitedGeometryVisitor.h
1 /**********************************************************************
2 * $Id: ShortCircuitedGeometryVisitor.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) 2001-2002 Vivid Solutions Inc.
8 * Copyright (C) 2006 Refractions Research Inc.
9 *
10 * This is free software; you can redistribute and/or modify it under
11 * the terms of the GNU Lesser General Public Licence as published
12 * by the Free Software Foundation.
13 * See the COPYING file for more information.
14 *
15 **********************************************************************/
16
17 #ifndef GEOS_GEOM_UTIL_SHORTCIRCUITEDGEOMETRYVISITOR_H
18 #define GEOS_GEOM_UTIL_SHORTCIRCUITEDGEOMETRYVISITOR_H
19
20 #include <geos/export.h>
21
22 // Forward declarations
23 namespace geos {
24 namespace geom {
25 class Geometry;
26 }
27 }
28
29
30 namespace geos {
31 namespace geom { // geos.geom
32 namespace util { // geos.geom.util
33
40 class GEOS_DLL ShortCircuitedGeometryVisitor
41 {
42
43 private:
44
45 bool done;
46
47 protected:
48
49 virtual void visit(const Geometry &element)=0;
50 virtual bool isDone()=0;
51
52 public:
53
54 ShortCircuitedGeometryVisitor()
55 :
56 done(false)
57 {}
58
59 void applyTo(const Geometry &geom);
60
61 virtual ~ShortCircuitedGeometryVisitor() {}
62
63 };
64
65 } // namespace geos.geom.util
66 } // namespace geos.geom
67 } // namespace geos
68
69 //#ifdef GEOS_INLINE
70 //# include "geos/geom/util/ShortCircuitedGeometryVisitor.inl"
71 //#endif
72
73 #endif
74
75 /**********************************************************************
76 * $Log$
77 * Revision 1.3 2006/06/08 11:20:24 strk
78 * Added missing virtual destructor to abstract classes.
79 *
80 * Revision 1.2 2006/03/24 09:52:41 strk
81 * USE_INLINE => GEOS_INLINE
82 *
83 * Revision 1.1 2006/03/09 16:46:49 strk
84 * geos::geom namespace definition, first pass at headers split
85 *
86 **********************************************************************/