summaryrefslogtreecommitdiff
path: root/src/linkgraph/flowmapper.h
diff options
context:
space:
mode:
authorfonsinchen <fonsinchen@openttd.org>2013-06-09 13:01:23 +0000
committerfonsinchen <fonsinchen@openttd.org>2013-06-09 13:01:23 +0000
commit575cabe90a56a23fa13ca24962b12a4ff2216386 (patch)
treeb0ac380fa899cfaf13cece03d08c19ac647074c1 /src/linkgraph/flowmapper.h
parent9824d53d6a7d96e0a7182fa5bae5c05218b6a730 (diff)
downloadopenttd-575cabe90a56a23fa13ca24962b12a4ff2216386.tar.xz
(svn r25357) -Add: flow mapper for link graph
Diffstat (limited to 'src/linkgraph/flowmapper.h')
-rw-r--r--src/linkgraph/flowmapper.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/linkgraph/flowmapper.h b/src/linkgraph/flowmapper.h
new file mode 100644
index 000000000..6dc84ffea
--- /dev/null
+++ b/src/linkgraph/flowmapper.h
@@ -0,0 +1,34 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file flowmapper.h Declaration of flow mapper; maps paths into flows at nodes. */
+
+#ifndef FLOWMAPPER_H_
+#define FLOWMAPPER_H_
+
+#include "linkgraphjob_base.h"
+
+/**
+ * Map the path trees generated by the MCF solver into flows. The path tree is
+ * useful to cache capacities and distances and allow quick disconnecting and
+ * reconnecting to other paths. The flows show how much cargo from which nodes
+ * is to be routed in which direction at a given node. This is what we need in
+ * the end.
+ */
+class FlowMapper : public ComponentHandler {
+public:
+ virtual void Run(LinkGraphJob &job) const;
+
+ /**
+ * Virtual destructor has to be defined because of virtual Run().
+ */
+ virtual ~FlowMapper() {}
+};
+
+#endif /* FLOWMAPPER_H_ */