namespace R2C2 {
+class TrackAppearance;
+
class TrackType: public ObjectType
{
public:
};
private:
+ const TrackAppearance *appearance;
std::vector<TrackPart> parts;
std::vector<Endpoint> endpoints;
unsigned state_bits;
std::string object;
public:
- TrackType(const ArticleNumber &);
+ TrackType(const ArticleNumber & = ArticleNumber(), const TrackAppearance * = 0);
+ const TrackAppearance &get_appearance() const;
+ float get_gauge() const;
float get_total_length() const;
float get_path_length(int) const;
unsigned get_paths() const;
unsigned get_n_paths() const;
+ unsigned coerce_path(unsigned, unsigned) const;
unsigned get_state_bits() const { return state_bits; }
bool is_turnout() const;
bool is_dead_end() const;