[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