00001 /********************************************************************** 00002 * $Id: PreparedLineString.h 2159 2008-08-18 16:27:02Z mloskot $ 00003 * 00004 * GEOS - Geometry Engine Open Source 00005 * http://geos.refractions.net 00006 * 00007 * Copyright (C) 2006 Refractions Research Inc. 00008 * 00009 * This is free software; you can redistribute and/or modify it under 00010 * the terms of the GNU Lesser General Public Licence as published 00011 * by the Free Software Foundation. 00012 * See the COPYING file for more information. 00013 * 00014 * 00015 **********************************************************************/ 00016 00017 #ifndef GEOS_GEOM_PREP_PREPAREDLINESTRING_H 00018 #define GEOS_GEOM_PREP_PREPAREDLINESTRING_H 00019 00020 #include <geos/geom/prep/BasicPreparedGeometry.h> // for inheritance 00021 #include <geos/noding/SegmentString.h> 00022 00023 namespace geos { 00024 namespace noding { 00025 class FastSegmentSetIntersectionFinder; 00026 } 00027 } 00028 00029 namespace geos { 00030 namespace geom { // geos::geom 00031 namespace prep { // geos::geom::prep 00032 00040 class PreparedLineString : public BasicPreparedGeometry 00041 { 00042 private: 00043 noding::FastSegmentSetIntersectionFinder * segIntFinder; 00044 mutable noding::SegmentString::ConstVect segStrings; 00045 00046 protected: 00047 public: 00048 PreparedLineString(const Geometry * geom) 00049 : 00050 BasicPreparedGeometry( geom), 00051 segIntFinder( NULL) 00052 { } 00053 00054 noding::FastSegmentSetIntersectionFinder * getIntersectionFinder(); 00055 00056 bool intersects(const geom::Geometry * g) const; 00057 00058 }; 00059 00060 } // namespace geos::geom::prep 00061 } // namespace geos::geom 00062 } // namespace geos 00063 00064 #endif // GEOS_GEOM_PREP_PREPAREDLINESTRING_H 00065 /********************************************************************** 00066 * $Log$ 00067 **********************************************************************/ 00068 00069