libcarla/include/carla/road/element/RoadInfoLaneVisibility.h

73 lines
1.7 KiB
C
Raw Permalink Normal View History

2024-10-18 13:19:59 +08:00
// Copyright (c) 2017 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/road/element/RoadInfo.h"
namespace carla {
namespace road {
namespace element {
/// Each lane within a road cross section may be provided with several entries
/// defining the visibility in four directions relative to the lanes
/// direction. Each entry is valid until a new entry is defined. If multiple
/// entries are defined, they must be listed in increasing order.
///
/// For left lanes (positive ID), the forward direction is oriented opposite
/// to the tracks direction, for right lanes, the forward direction and the
/// tracks direction are identical.
class RoadInfoLaneVisibility final : public RoadInfo {
public:
RoadInfoLaneVisibility(
double s, // start position relative to the position of the preceding
// lane section
double forward,
double back,
double left,
double right)
: RoadInfo(s),
_forward(forward),
_back(back),
_left(left),
_right(right) {}
void AcceptVisitor(RoadInfoVisitor &v) final {
v.Visit(*this);
}
double GetForward() const {
return _forward;
}
double GetBack() const {
return _back;
}
double GetLeft() const {
return _left;
}
double GetRight() const {
return _right;
}
private:
const double _forward;
const double _back;
const double _left;
const double _right;
};
} // namespace element
} // namespace road
} // namespace carla