unsigned path;
bool dead_end;
TrackPart *links[2];
+ Shape *shape;
+ Transform transform;
public:
TrackPart();
+ ~TrackPart();
float get_length() const;
bool is_curved() const { return radius; }
- TrackPoint get_point(float) const;
- TrackPoint get_nearest_point(const Vector &) const;
+ OrientedPoint get_point(float) const;
+ OrientedPoint get_nearest_point(const Vector &) const;
unsigned get_path() const { return path; }
bool is_dead_end() const { return dead_end; }
void check_link(TrackPart &);
TrackPart *get_link(unsigned) const;
- bool collide_ray(const Vector &, const Vector &, float) const;
+ void create_shape();
+ const Shape &get_shape() const { return *shape; }
};
} // namespace R2C2