[geos-commits] r3251 - trunk/src/operation/buffer
svn_geos at osgeo.org
svn_geos at osgeo.org
Mon Feb 28 07:19:23 EST 2011
Author: strk
Date: 2011-02-28 04:19:22 -0800 (Mon, 28 Feb 2011)
New Revision: 3251
Modified:
trunk/src/operation/buffer/BufferBuilder.cpp
Log:
Cleanup debugging output. Previous version didn't really print the _noded_ output at all.
Modified: trunk/src/operation/buffer/BufferBuilder.cpp
===================================================================
--- trunk/src/operation/buffer/BufferBuilder.cpp 2011-02-28 11:43:11 UTC (rev 3250)
+++ trunk/src/operation/buffer/BufferBuilder.cpp 2011-02-28 12:19:22 UTC (rev 3251)
@@ -48,6 +48,7 @@
#include <geos/geomgraph/Node.h>
#include <geos/geomgraph/Edge.h>
#include <geos/util/GEOSException.h>
+#include <geos/io/WKTWriter.h> // for debugging
#include <geos/util/IllegalArgumentException.h>
#include <geos/profiler.h>
@@ -76,6 +77,25 @@
using namespace geos::operation::overlay;
using namespace geos::operation::linemerge;
+namespace {
+
+// Debug routine
+template <class Iterator>
+std::auto_ptr<Geometry>
+convertSegStrings(const GeometryFactory* fact, Iterator it, Iterator et)
+{
+ std::vector<Geometry*> lines;
+ while(it != et) {
+ const SegmentString* ss = *it;
+ LineString* line = fact->createLineString(ss->getCoordinates());
+ lines.push_back(line);
+ ++it;
+ }
+ return std::auto_ptr<Geometry>(fact->buildGeometry(lines));
+}
+
+}
+
namespace geos {
namespace operation { // geos.operation
namespace buffer { // geos.operation.buffer
@@ -373,30 +393,9 @@
std::cerr<<"BufferBuilder::buffer computing NodedEdges"<<std::endl;
#endif
-#if JTS_DEBUG
-std::cerr << "before noding: SegStr # " << bufferSegStrList.size() << std::endl;
-for (size_t i = 0, n=bufferSegStrList.size(); i<n; i++)
-{
- SegmentString* segStr = bufferSegStrList[i];
- std::cerr << "SegStr " << i << ": pts # " << segStr->size()
- << " nodes # " << segStr->getNodeList().size()
- << std::endl;
-}
-#endif
-
computeNodedEdges(bufferSegStrList, precisionModel);
+ // NOTE: bufferSegStrList should not be needed anymore from now on
-#if JTS_DEBUG
-std::cerr << "after noding: SegStr # " << bufferSegStrList.size() << std::endl;
-for (size_t i = 0, n=bufferSegStrList.size(); i<n; i++)
-{
- SegmentString* segStr = bufferSegStrList[i];
- std::cerr << "SegStr " << i << ": pts # " << segStr->size()
- << " nodes # " << segStr->getNodeList().size()
- << std::endl;
-}
-#endif
-
#if GEOS_DEBUG > 1
std::cerr << std::endl << edgeList << std::endl;
#endif
@@ -499,12 +498,29 @@
{
Noder* noder = getNoder( precisionModel );
+#if JTS_DEBUG
+geos::io::WKTWriter wktWriter; wktWriter.setTrim(true);
+std::cerr << "before noding: "
+ << wktWriter.write(
+ convertSegStrings(geomFact, bufferSegStrList.begin(),
+ bufferSegStrList.end()).get()
+ ) << std::endl;
+#endif
+
noder->computeNodes(&bufferSegStrList);
SegmentString::NonConstVect* nodedSegStrings = \
noder->getNodedSubstrings();
+#if JTS_DEBUG
+std::cerr << "after noding: "
+ << wktWriter.write(
+ convertSegStrings(geomFact, bufferSegStrList.begin(),
+ bufferSegStrList.end()).get()
+ ) << std::endl;
+#endif
+
for (SegmentString::NonConstVect::iterator
i=nodedSegStrings->begin(), e=nodedSegStrings->end();
i!=e;
More information about the geos-commits
mailing list