X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftracktype.cpp;h=51b685f5ceed7964e54bf6ef26b84b3a83f41a89;hb=b860a56bd9bc8894311c02d7673f379beff3220b;hp=3c6876b0cc8b5bd72a7e0f476f45b6d631f2aa6a;hpb=2875ea548e0567ad2ce1b8f9bda58e6452813204;p=r2c2.git diff --git a/source/libr2c2/tracktype.cpp b/source/libr2c2/tracktype.cpp index 3c6876b..51b685f 100644 --- a/source/libr2c2/tracktype.cpp +++ b/source/libr2c2/tracktype.cpp @@ -1,4 +1,5 @@ #include +#include #include #include "trackappearance.h" #include "tracktype.h" @@ -8,16 +9,22 @@ using namespace Msp; namespace R2C2 { -TrackType::TrackType(const ArticleNumber &an, const TrackAppearance &ta): - ObjectType(an), - appearance(ta), +TrackType::TrackType(): + appearance(0), state_bits(0), autofit_preference(1) { } +const TrackAppearance &TrackType::get_appearance() const +{ + if(!appearance) + throw logic_error("no appearance"); + return *appearance; +} + float TrackType::get_gauge() const { - return appearance.get_gauge(); + return get_appearance().get_gauge(); } float TrackType::get_total_length() const @@ -214,10 +221,12 @@ TrackType::Endpoint::Endpoint(float x, float y, const Angle &d, unsigned p): { } -TrackType::Loader::Loader(TrackType &t): +TrackType::Loader::Loader(TrackType &t, Collection &c): DataFile::DerivedObjectLoader(t), + coll(c), state_bits_set(false) { + add("appearance", &TrackType::appearance); add("autofit_preference", &TrackType::autofit_preference); add("object", &TrackType::object); add("state_bits", &Loader::state_bits);