#pragma once #include "gfx/gl/bufferedLocation.h" #include "railVehicleClass.h" #include #include #include #include #include class Ray; class Train; class RailVehicle : Selectable, RailVehicleClass::Instance { public: explicit RailVehicle(RailVehicleClassPtr rvc); void move(const Train *, float & trailBy); [[nodiscard]] bool intersectRay(const Ray &, glm::vec2 *, float *) const override; RailVehicleClassPtr rvClass; using LV = RailVehicleClass::LocationVertex; using BLocation = BufferedLocationT; BLocation location; std::array bogies; }; using RailVehiclePtr = std::unique_ptr;