libcarla/include/carla/client/Landmark.h

144 lines
3.0 KiB
C
Raw Normal View History

2024-10-18 13:19:59 +08:00
// 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/client/Waypoint.h"
#include "carla/geom/Transform.h"
#include "carla/geom/BoundingBox.h"
#include "carla/road/element/RoadInfoSignal.h"
#include <string>
namespace carla {
namespace client {
/// Class containing a reference to RoadInfoSignal
class Landmark {
public:
SharedPtr<Waypoint> GetWaypoint() const {
return _waypoint;
}
const geom::Transform &GetTransform() const {
return _signal->GetSignal()->GetTransform();
}
road::RoadId GetRoadId() const {
return _signal->GetRoadId();
}
double GetDistance() const {
return _distance_from_search;
}
double GetS() const {
return _signal->GetS();
}
double GetT() const {
return _signal->GetT();
}
std::string GetId() const {
return _signal->GetSignalId();
}
std::string GetName() const {
return _signal->GetSignal()->GetName();
}
bool IsDynamic() const {
return _signal->IsDynamic();
}
road::SignalOrientation GetOrientation() const {
return _signal->GetOrientation();
}
double GetZOffset() const {
return _signal->GetSignal()->GetZOffset();
}
std::string GetCountry() const {
return _signal->GetSignal()->GetCountry();
}
std::string GetType() const {
return _signal->GetSignal()->GetType();
}
std::string GetSubType() const {
return _signal->GetSignal()->GetSubtype();
}
double GetValue() const {
return _signal->GetSignal()->GetValue();
}
std::string GetUnit() const {
return _signal->GetSignal()->GetUnit();
}
double GetHeight() const {
return _signal->GetSignal()->GetHeight();
}
double GetWidth() const {
return _signal->GetSignal()->GetWidth();
}
std::string GetText() const {
return _signal->GetSignal()->GetText();
}
double GethOffset() const {
return _signal->GetSignal()->GetHOffset();
}
double GetPitch() const {
return _signal->GetSignal()->GetPitch();
}
double GetRoll() const {
return _signal->GetSignal()->GetRoll();
}
const auto &GetValidities() const {
return _signal->GetValidities();
}
private:
friend Waypoint;
friend Map;
Landmark(
SharedPtr<Waypoint> waypoint,
SharedPtr<const Map> parent,
const road::element::RoadInfoSignal* signal,
double distance_from_search = 0)
: _waypoint(waypoint),
_parent(parent),
_signal(signal),
_distance_from_search(distance_from_search) {}
/// waypoint where the signal is affecting
SharedPtr<Waypoint> _waypoint;
SharedPtr<const Map> _parent;
const road::element::RoadInfoSignal* _signal;
double _distance_from_search;
};
} // client
} // carla