00001 /********************************************************************** 00002 * $Id: ShortCircuitedGeometryVisitor.h 1820 2006-09-06 16:54:23Z mloskot $ 00003 * 00004 * GEOS - Geometry Engine Open Source 00005 * http://geos.refractions.net 00006 * 00007 * Copyright (C) 2001-2002 Vivid Solutions Inc. 00008 * Copyright (C) 2006 Refractions Research Inc. 00009 * 00010 * This is free software; you can redistribute and/or modify it under 00011 * the terms of the GNU Lesser General Public Licence as published 00012 * by the Free Software Foundation. 00013 * See the COPYING file for more information. 00014 * 00015 **********************************************************************/ 00016 00017 #ifndef GEOS_GEOM_UTIL_SHORTCIRCUITEDGEOMETRYVISITOR_H 00018 #define GEOS_GEOM_UTIL_SHORTCIRCUITEDGEOMETRYVISITOR_H 00019 00020 // Forward declarations 00021 namespace geos { 00022 namespace geom { 00023 class Geometry; 00024 } 00025 } 00026 00027 00028 namespace geos { 00029 namespace geom { // geos.geom 00030 namespace util { // geos.geom.util 00031 00038 class ShortCircuitedGeometryVisitor 00039 { 00040 00041 private: 00042 00043 bool done; 00044 00045 protected: 00046 00047 virtual void visit(const Geometry &element)=0; 00048 virtual bool isDone()=0; 00049 00050 public: 00051 00052 ShortCircuitedGeometryVisitor() 00053 : 00054 done(false) 00055 {} 00056 00057 void applyTo(const Geometry &geom); 00058 00059 virtual ~ShortCircuitedGeometryVisitor() {} 00060 00061 }; 00062 00063 } // namespace geos.geom.util 00064 } // namespace geos.geom 00065 } // namespace geos 00066 00067 //#ifdef GEOS_INLINE 00068 //# include "geos/geom/util/ShortCircuitedGeometryVisitor.inl" 00069 //#endif 00070 00071 #endif 00072 00073 /********************************************************************** 00074 * $Log$ 00075 * Revision 1.3 2006/06/08 11:20:24 strk 00076 * Added missing virtual destructor to abstract classes. 00077 * 00078 * Revision 1.2 2006/03/24 09:52:41 strk 00079 * USE_INLINE => GEOS_INLINE 00080 * 00081 * Revision 1.1 2006/03/09 16:46:49 strk 00082 * geos::geom namespace definition, first pass at headers split 00083 * 00084 **********************************************************************/