Forked from
Eclipse Projects / Eclipse openpass / map-sdk
18 commits behind the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
map.h 1.95 KiB
/*******************************************************************************
* Copyright (c) 2023, Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
* Copyright (C) 2023, ANSYS, Inc.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
#ifndef MAPSDK_MAPAPI_MAP_H
#define MAPSDK_MAPAPI_MAP_H
#include <memory>
#include <string>
#include <vector>
#include "lane.h"
#include "lane_boundary.h"
#include "logical_lane.h"
#include "logical_lane_boundary.h"
#include "reference_line.h"
#include "road_marking.h"
#include "stationary_object.h"
#include "traffic_light.h"
#include "traffic_sign.h"
namespace map_api
{
struct Map
{
using Lanes = std::vector<std::unique_ptr<Lane>>;
using LaneBoundaries = std::vector<std::unique_ptr<LaneBoundary>>;
using LogicalLanes = std::vector<std::unique_ptr<LogicalLane>>;
using LogicalLaneBoundaries = std::vector<std::unique_ptr<LogicalLaneBoundary>>;
using TrafficLights = std::vector<std::unique_ptr<TrafficLight>>;
using TrafficSigns = std::vector<std::unique_ptr<TrafficSign>>;
using ReferenceLines = std::vector<std::unique_ptr<ReferenceLine>>;
using RoadMarkings = std::vector<std::unique_ptr<RoadMarking>>;
using StationaryObjects = std::vector<std::unique_ptr<StationaryObject>>;
std::string projection_string;
std::string map_reference;
std::uint32_t country_code{std::numeric_limits<std::uint32_t>::max()};
Lanes lanes;
LaneBoundaries lane_boundaries;
LogicalLanes logical_lanes;
LogicalLaneBoundaries logical_lane_boundaries;
StationaryObjects stationary_objects;
TrafficLights traffic_lights;
TrafficSigns traffic_signs;
ReferenceLines reference_lines;
RoadMarkings road_markings;
};
} // namespace map_api
#endif // MAPSDK_MAPAPI_MAP_H