libcarla/include/carla/road/element/RoadInfoLaneWidth.h
2024-10-18 13:19:59 +08:00

49 lines
1.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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"
#include "carla/geom/CubicPolynomial.h"
namespace carla {
namespace road {
namespace element {
/// Lane Width RecordEach lane within a roadscross section can be provided
/// with severalwidth entries. At least one entry must be defined for each
/// lane, except for the center lane which is, per convention, of zero width.
/// Each entry is valid until a new entry is defined. If multiple entries are
/// defined for a lane, they must be listed in ascendingorder.
class RoadInfoLaneWidth final : public RoadInfo {
public:
RoadInfoLaneWidth(
double s,
double a,
double b,
double c,
double d)
: RoadInfo(s),
_width(a, b, c, d, s) {}
void AcceptVisitor(RoadInfoVisitor &v) final {
v.Visit(*this);
}
const geom::CubicPolynomial &GetPolynomial() const {
return _width;
}
private:
const geom::CubicPolynomial _width;
};
} // namespace element
} // namespace road
} // namespace carla