]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/layout.h
Improve the interface and algorithms of BlockAllocator
[r2c2.git] / source / libr2c2 / layout.h
index 5573673f0f7a4c2987d6355388e2e3c4df7c94d0..8e44fb52d26dc362a9258f50017d2e9fef1271de 100644 (file)
@@ -6,6 +6,7 @@
 #include <msp/datafile/objectloader.h>
 #include <msp/time/timestamp.h>
 #include "block.h"
+#include "geometry.h"
 
 namespace R2C2 {
 
@@ -16,7 +17,6 @@ class Route;
 class Signal;
 class Track;
 class Train;
-class Vector;
 class Vehicle;
 class Zone;
 
@@ -86,20 +86,20 @@ public:
 
        void add_track(Track &);
        const std::set<Track *> &get_tracks() const { return tracks; }
-       Track *pick_track(const Vector &, const Vector &);
+       Track *pick_track(const Ray &);
        void remove_track(Track &);
        unsigned allocate_turnout_id();
 
        void add_signal(Signal &);
        const std::set<Signal *> &get_signals() const { return signals; }
-       Signal *pick_signal(const Vector &, const Vector &);
+       Signal *pick_signal(const Ray &);
        void remove_signal(Signal &);
 
-       Object *pick_object(const Vector &, const Vector &);
+       Object *pick_object(const Ray &);
 
 private:
        template<typename T>
-       static T *pick(const std::set<T *> &, const Vector &, const Vector &);
+       static T *pick(const std::set<T *> &, const Ray &);
 
 public:
        void add_block(Block &);