53 lines
1.1 KiB
C++
53 lines
1.1 KiB
C++
// Copyright (c) 2020 Computer Vision Center (CVC) at the Universitat Autonoma
|
|
// de Barcelona (UAB).
|
|
//
|
|
// This work is licensed under the terms of the MIT license.
|
|
// For a copy, see <https://opensource.org/licenses/MIT>.
|
|
|
|
#pragma once
|
|
|
|
#include "carla/Memory.h"
|
|
#include "carla/NonCopyable.h"
|
|
#include "carla/road/Junction.h"
|
|
#include "carla/road/RoadTypes.h"
|
|
#include "carla/geom/BoundingBox.h"
|
|
#include "carla/client/Waypoint.h"
|
|
|
|
#include <vector>
|
|
|
|
namespace carla {
|
|
namespace client {
|
|
|
|
class Map;
|
|
|
|
class Junction
|
|
: public EnableSharedFromThis<Junction>,
|
|
private NonCopyable
|
|
{
|
|
public:
|
|
|
|
carla::road::JuncId GetId() const {
|
|
return _id;
|
|
}
|
|
|
|
std::vector<std::pair<SharedPtr<Waypoint>,SharedPtr<Waypoint>>> GetWaypoints(
|
|
road::Lane::LaneType type = road::Lane::LaneType::Driving) const;
|
|
|
|
geom::BoundingBox GetBoundingBox() const;
|
|
|
|
private:
|
|
|
|
friend class Map;
|
|
|
|
Junction(SharedPtr<const Map> parent, const road::Junction *junction);
|
|
|
|
SharedPtr<const Map> _parent;
|
|
|
|
geom::BoundingBox _bounding_box;
|
|
|
|
road::JuncId _id;
|
|
};
|
|
|
|
} // namespace client
|
|
} // namespace carla
|