#include <cmath>
#include <msp/geometry/union.h>
+#include "trackappearance.h"
#include "tracktype.h"
using namespace std;
namespace R2C2 {
-TrackType::TrackType(const ArticleNumber &an, const TrackAppearance &ta):
+TrackType::TrackType(const ArticleNumber &an, const TrackAppearance *ta):
ObjectType(an),
appearance(ta),
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 get_appearance().get_gauge();
+}
+
float TrackType::get_total_length() const
{
return get_path_length(-1);