[geos-commits] r2563 - in trunk/source:
headers/geos/operation/linemerge headers/geos/planargraph
operation/linemerge
svn_geos at osgeo.org
svn_geos at osgeo.org
Mon Jun 8 11:43:40 EDT 2009
Author: strk
Date: 2009-06-08 11:43:40 -0400 (Mon, 08 Jun 2009)
New Revision: 2563
Modified:
trunk/source/headers/geos/operation/linemerge/LineMerger.h
trunk/source/headers/geos/planargraph/GraphComponent.h
trunk/source/operation/linemerge/LineMerger.cpp
Log:
Add missing setMarked static methods in GraphComponent and make use of them in LineMerger making it able to be called incrementally (JTS-1.10)
Modified: trunk/source/headers/geos/operation/linemerge/LineMerger.h
===================================================================
--- trunk/source/headers/geos/operation/linemerge/LineMerger.h 2009-06-08 15:28:27 UTC (rev 2562)
+++ trunk/source/headers/geos/operation/linemerge/LineMerger.h 2009-06-08 15:43:40 UTC (rev 2563)
@@ -13,7 +13,7 @@
*
**********************************************************************
*
- * Last port: operation/linemerge/LineMerger.java rev. 1.6 (JTS-1.7)
+ * Last port: operation/linemerge/LineMerger.java rev. 1.7 (JTS-1.10)
*
**********************************************************************/
Modified: trunk/source/headers/geos/planargraph/GraphComponent.h
===================================================================
--- trunk/source/headers/geos/planargraph/GraphComponent.h 2009-06-08 15:28:27 UTC (rev 2562)
+++ trunk/source/headers/geos/planargraph/GraphComponent.h 2009-06-08 15:43:40 UTC (rev 2563)
@@ -12,6 +12,10 @@
* by the Free Software Foundation.
* See the COPYING file for more information.
*
+ **********************************************************************
+ *
+ * Last port: planargraph/GraphComponent.java rev. 1.7 (JTS-1.7)
+ *
**********************************************************************/
#ifndef GEOS_PLANARGRAPH_GRAPHCOMPONENT_H
@@ -39,8 +43,6 @@
* The visited flag may be set and cleared many times during the
* lifetime of a graph.
*
- * Last port: planargraph/GraphComponent.java rev. 1.7 (JTS-1.7)
- *
*/
class GEOS_DLL GraphComponent {
@@ -87,7 +89,6 @@
template <typename T>
static void setVisited(T start, T end, bool visited) {
for(T i=start; i!=end; ++i) {
- //i->second->setVisited(visited);
(*i)->setVisited(visited);
}
}
@@ -108,6 +109,37 @@
}
/** \brief
+ * Sets the Marked state for the elements of a container,
+ * from start to end iterator.
+ *
+ * @param start the start element
+ * @param end one past the last element
+ * @param marked the state to set the marked flag to
+ */
+ template <typename T>
+ static void setMarked(T start, T end, bool marked) {
+ for(T i=start; i!=end; ++i) {
+ (*i)->setMarked(marked);
+ }
+ }
+
+
+ /** \brief
+ * Sets the Marked state for the values of each map
+ * container element, from start to end iterator.
+ *
+ * @param start the start element
+ * @param end one past the last element
+ * @param marked the state to set the visited flag to
+ */
+ template <typename T>
+ static void setMarkedMap(T start, T end, bool marked) {
+ for(T i=start; i!=end; ++i) {
+ i->second->setMarked(marked);
+ }
+ }
+
+ /** \brief
* Tests if a component has been marked at some point
* during the processing involving this graph.
* @return <code>true</code> if the component has been marked
Modified: trunk/source/operation/linemerge/LineMerger.cpp
===================================================================
--- trunk/source/operation/linemerge/LineMerger.cpp 2009-06-08 15:28:27 UTC (rev 2562)
+++ trunk/source/operation/linemerge/LineMerger.cpp 2009-06-08 15:43:40 UTC (rev 2563)
@@ -14,7 +14,7 @@
*
**********************************************************************
*
- * Last port: operation/linemerge/LineMerger.java rev. 1.6 (JTS-1.7)
+ * Last port: operation/linemerge/LineMerger.java rev. 1.7 (JTS-1.10)
*
**********************************************************************/
@@ -103,15 +103,15 @@
{
if (mergedLineStrings!=NULL) return;
-#if 0 // requires changes to GraphComponent to enhance porting to rev 1.7
// reset marks (this allows incremental processing)
- GraphComponent::setMarked(graph.nodeIterator(), false);
- GraphComponent::setMarked(graph.edgeIterator(), false);
+ GraphComponent::setMarkedMap(graph.nodeIterator(), graph.nodeEnd(),
+ false);
+ GraphComponent::setMarked(graph.edgeIterator(), graph.edgeEnd(),
+ false);
for (size_t i=0, n=edgeStrings.size(); i<n; ++i)
delete edgeStrings[i];
edgeStrings.clear();
-#endif
buildEdgeStringsForObviousStartNodes();
buildEdgeStringsForIsolatedLoops();
More information about the geos-commits
mailing list