#pragma once #include "routing/osrm_helpers.hpp" #include "routing/road_graph.hpp" #include "routing/road_point.hpp" #include "routing/turns.hpp" #include "routing/turn_candidate.hpp" #include "traffic/traffic_info.hpp" #include "indexer/ftypes_matcher.hpp" #include "base/buffer_vector.hpp" #include "std/vector.hpp" class Index; namespace routing { struct RoutingMapping; struct RawPathData; struct FeatureGraphNode; /*! * \brief The LoadedPathSegment struct is a representation of a single node path. * It unpacks and stores information about path and road type flags. * Postprocessing must read information from the structure and does not initiate disk readings. */ struct LoadedPathSegment { vector m_path; vector m_lanes; string m_name; TEdgeWeight m_weight; /*!< Time in seconds to pass the segment. */ TNodeId m_nodeId; /*!< May be NodeId for OSRM router or FeatureId::index for graph router. */ vector m_trafficSegs; /*!< Traffic segments for |m_path|. */ ftypes::HighwayClass m_highwayClass; bool m_onRoundabout; bool m_isLink; LoadedPathSegment() { Clear(); } void Clear() { m_path.clear(); m_lanes.clear(); m_name.clear(); m_weight = 0; m_nodeId = 0; m_trafficSegs.clear(); m_highwayClass = ftypes::HighwayClass::Undefined; m_onRoundabout = false; m_isLink = false; } }; using TUnpackedPathSegments = vector; } // namespace routing