namespace Marklin {
+class Block;
class Layout;
class TrackType;
void turnout_id(unsigned);
};
+ sigc::signal<void, unsigned> signal_path_changed;
+
private:
Layout &layout;
const TrackType &type;
+ Block *block;
Point pos;
float rot;
float slope;
Layout &get_layout() const { return layout; }
const TrackType &get_type() const { return type; }
+ void set_block(Block *);
+ Block &get_block() const;
void set_position(const Point &);
void set_rotation(float);
void set_slope(float);
void set_active_path(unsigned);
unsigned get_active_path() const { return active_path; }
- int get_endpoint_by_link(const Track &) const;
+ int get_endpoint_by_link(Track &) const;
Point get_endpoint_position(unsigned) const;
float get_endpoint_direction(unsigned) const;
- bool snap_to(Track &, bool);
+ bool snap_to(Track &, bool, float = 0);
bool snap(Point &, float &) const;
void break_link(Track &);
void break_links();
const std::vector<Track *> &get_links() const { return links; }
Track *get_link(unsigned) const;
- unsigned traverse(unsigned, unsigned) const;
TrackPoint get_point(unsigned, unsigned, float) const;
TrackPoint get_point(unsigned, float) const;