diff --git a/include/MantleAPI/Traffic/entity_properties.h b/include/MantleAPI/Traffic/entity_properties.h index b93637642e99cddc596c1b189d42cef9e691e80f..01b957356a1e874b5e0f4e2ca86233a337e44dc3 100644 --- a/include/MantleAPI/Traffic/entity_properties.h +++ b/include/MantleAPI/Traffic/entity_properties.h @@ -230,9 +230,55 @@ struct PedestrianProperties : public EntityProperties { }; +/// Specifies the type of a static object. +/// The values are derived from ASAM OSI stationary object type +enum class StaticObjectType +{ + kOther = 1, // Other (unspecified but known) type of static object. + // Object is a bridge. + kBridge = 2, + // Object is a building. + kBuilding = 3, + // Object is a pole (e.g. from a traffic light). + kPole = 4, + // Object is a pylon. + kPylon = 5, + // Object is a delineator (e.g. at a construction site). + kDelineator = 6, + // Object is a tree. + kTree = 7, + // Object is a barrier. + kBarrier = 8, + // Object is vegetation. + kVegetation = 9, + // Object is a curbstone. + kCurbstone = 10, + // Object is a wall. + kWall = 11, + // Landmarks corresponding to vertical structures in the environment. + kVerticalStructure = 12, + // Landmarks corresponding to rectangular structures in the environment, like walls. + kRectangularStructure = 13, + // Landmarks corresponding to overhead structures in the environment, like sign bridges. + kOverheadStructure = 14, + // Landmarks corresponding to reflective structures in the environment, like reflective poles on the road boarder. + kReflectiveStructure = 15, + // Landmarks corresponding to construction site elements in the environment, like beacons. + kConstructionSiteElement = 16, + // Object is a speed bump. + kSpeedBump = 17, + // Landmarks corresponding to sources of electromagnetic waves in the environment, like street lights. + kEmittingStructure = 18, + // Static object type not specified properly. + kInvalid = -1 +}; + /// Additional properties for entity objects of type static struct StaticObjectProperties : public EntityProperties { + /// Type of the static object (bridge, pole,...) + StaticObjectType static_object_type{StaticObjectType::kOther}; + /// Amount to shift position along lane normal. /// It allows static objects like traffic signs to be placed at certain amount above the road. /// It is considered when the position of the entity is set.