Skip to content

v0.2.53..v0.2.54 changeset SuperfluousNodeRemover.h

Garret Voltz edited this page Mar 31, 2020 · 1 revision
diff --git a/hoot-core/src/main/cpp/hoot/core/ops/SuperfluousNodeRemover.h b/hoot-core/src/main/cpp/hoot/core/ops/SuperfluousNodeRemover.h
index bbbdc03..49bac8f 100644
--- a/hoot-core/src/main/cpp/hoot/core/ops/SuperfluousNodeRemover.h
+++ b/hoot-core/src/main/cpp/hoot/core/ops/SuperfluousNodeRemover.h
@@ -22,7 +22,7 @@
  * This will properly maintain the copyright information. DigitalGlobe
  * copyrights will be updated automatically.
  *
- * @copyright Copyright (C) 2015, 2017, 2018, 2019 DigitalGlobe (http://www.digitalglobe.com/)
+ * @copyright Copyright (C) 2015, 2017, 2018, 2019, 2020 DigitalGlobe (http://www.digitalglobe.com/)
  */
 
 #ifndef SUPERFLUOUSNODEREMOVER_H
@@ -36,7 +36,8 @@
 #include <hoot/core/io/Serializable.h>
 #include <hoot/core/util/Boundable.h>
 #include <hoot/core/ops/OsmMapOperation.h>
-#include <hoot/core/info/OperationStatusInfo.h>
+#include <hoot/core/elements/Tags.h>
+#include <hoot/core/util/StringUtils.h>
 
 // Standard
 #include <set>
@@ -47,14 +48,14 @@ namespace hoot
 class OsmMap;
 
 /**
- * Removes all the nodes from a map that aren't part of a way and have no information in them.
+ * Removes all the nodes from a map that aren't part of a way or a relation and have no information
+ * in them.
  *
  * If the bounds have been set via Boundable's setBounds then only nodes that are both not part
  * of a way and inside the bounds will be removed. This is most useful when performing tile based
  * operations such as the FourPassDriver.
  */
-class SuperfluousNodeRemover : public OsmMapOperation, public Serializable, public Boundable,
-  public OperationStatusInfo
+class SuperfluousNodeRemover : public OsmMapOperation, public Serializable, public Boundable
 {
 public:
 
@@ -79,7 +80,7 @@ public:
   static long removeNodes(std::shared_ptr<OsmMap>& map, const bool ignoreInformationTags = false,
                           const geos::geom::Envelope& e = geos::geom::Envelope());
 
-  virtual void setBounds(const geos::geom::Envelope &bounds);
+  virtual void setBounds(const geos::geom::Envelope& bounds);
 
   void setIgnoreInformationTags(bool ignore) { _ignoreInformationTags = ignore; }
 
@@ -90,13 +91,16 @@ public:
   virtual QString getInitStatusMessage() const { return "Removing superfluous nodes..."; }
 
   virtual QString getCompletedStatusMessage() const
-  { return "Removed " + QString::number(_numAffected) + " superfluous nodes"; }
+  { return "Removed " + StringUtils::formatLargeNumber(_numAffected) + " superfluous nodes"; }
 
 protected:
 
   geos::geom::Envelope _bounds;
   std::set<long> _usedNodes;
   bool _ignoreInformationTags;
+  QStringList _unallowedOrphanKvps;
+
+  int _taskStatusUpdateInterval;
 };
 
 }
Clone this wiki locally