#pragma once #include "railVehicleClass.h" #include #include #include template class Ray; class Train; class RailVehicle : Selectable, RailVehicleClass::Instance { public: explicit RailVehicle(RailVehicleClassPtr rvc, GlobalPosition3D = {}); void move(const Train *, float & trailBy); [[nodiscard]] Location getLocation() const; [[nodiscard]] bool intersectRay(const Ray &, BaryPosition &, RelativeDistance &) const override; RailVehicleClassPtr rvClass; }; using RailVehiclePtr = std::unique_ptr;