GEOS  3.3.3
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 
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 
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  **********************************************************************/