![]() |
C++ API DOCUMENTATION |
00001 /***************************************************************************** 00002 * 00003 * This file is part of Mapnik (c++ mapping toolkit) 00004 * 00005 * Copyright (C) 2006 Artem Pavlenko 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with this library; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00020 * 00021 *****************************************************************************/ 00022 00023 //$Id$ 00024 #ifndef MEMORY_FEATURESET_HPP 00025 #define MEMORY_FEATURESET_HPP 00026 00027 #include <mapnik/memory_datasource.hpp> 00028 #include <boost/utility.hpp> 00029 00030 namespace mapnik { 00031 00032 class memory_featureset : public Featureset, private boost::noncopyable 00033 { 00034 public: 00035 memory_featureset(Envelope<double> const& bbox, memory_datasource const& ds) 00036 : bbox_(bbox), 00037 pos_(ds.features_.begin()), 00038 end_(ds.features_.end()) 00039 {} 00040 virtual ~memory_featureset() {} 00041 00042 feature_ptr next() 00043 { 00044 /* 00045 while (pos_ != end_) 00046 { 00047 geometry_ptr geom = (*pos_)->get_geometry(); 00048 if (geom && bbox_.intersects(geom->envelope())) 00049 { 00050 return *pos_++; 00051 } 00052 ++pos_; 00053 } 00054 */ 00055 return feature_ptr(); 00056 } 00057 00058 private: 00059 Envelope<double> const& bbox_; 00060 std::vector<feature_ptr>::const_iterator pos_; 00061 std::vector<feature_ptr>::const_iterator end_; 00062 }; 00063 } 00064 00065 #endif // MEMORY_FEATURESET_HPP