X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Ftracktype.cpp;h=8c1505b87033ca821526a7831f9a33d58d5b00cc;hb=45ec6f645ff2c303700711e96421c75acf33db1a;hp=19b0c6b4a3e83ecbeeef8a10fe710d832d8ce993;hpb=c12e074c6b9b5136e72931fb47a562e40e0a24f9;p=r2c2.git diff --git a/source/libmarklin/tracktype.cpp b/source/libmarklin/tracktype.cpp index 19b0c6b..8c1505b 100644 --- a/source/libmarklin/tracktype.cpp +++ b/source/libmarklin/tracktype.cpp @@ -14,7 +14,8 @@ using namespace Msp; namespace Marklin { TrackType::TrackType(unsigned a): - art_nr(a) + art_nr(a), + double_address(false) { } float TrackType::get_total_length() const @@ -52,9 +53,9 @@ bool TrackType::is_turnout() 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; } TrackPoint TrackType::get_point(unsigned epi, unsigned path, float d) const @@ -153,11 +154,18 @@ void TrackType::collect_endpoints() } } +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(t) { add("description", &TrackType::description); + add("double_address", &TrackType::double_address); add("part", &Loader::part); }