namespace Marklin {
-TrackType::TrackType(unsigned a):
- art_nr(a)
+TrackType::TrackType(const ArticleNumber &an):
+ art_nr(an),
+ double_address(false),
+ autofit_preference(1)
{ }
float TrackType::get_total_length() const
return endpoints.size()>2;
}
-bool TrackType::is_double_address() const
+bool TrackType::is_dead_end() const
{
- return get_n_paths()>2;
+ return endpoints.size()<2;
+}
+
+const TrackType::Endpoint &TrackType::get_endpoint(unsigned i) const
+{
+ if(i>=endpoints.size())
+ throw InvalidParameterValue("Endpoint index out of range");
+
+ return endpoints[i];
}
TrackPoint TrackType::get_point(unsigned epi, unsigned path, float d) const
}
}
+TrackType::Endpoint::Endpoint(float x, float y, float d, unsigned p):
+ pos(x, y),
+ dir(d),
+ paths(p)
+{ }
+
TrackType::Loader::Loader(TrackType &t):
Msp::DataFile::BasicLoader<TrackType>(t)
{
+ add("autofit_preference", &TrackType::autofit_preference);
add("description", &TrackType::description);
+ add("double_address", &TrackType::double_address);
add("part", &Loader::part);
}