ad_map_access
LaneValidInputRange.hpp
Go to the documentation of this file.
1 /*
2  * ----------------- BEGIN LICENSE BLOCK ---------------------------------
3  *
4  * Copyright (C) 2018-2020 Intel Corporation
5  *
6  * SPDX-License-Identifier: MIT
7  *
8  * ----------------- END LICENSE BLOCK -----------------------------------
9  */
10 
18 #pragma once
19 
20 #include <cmath>
21 #include <limits>
24 #include "ad/map/lane/Lane.hpp"
32 #include "ad/physics/DistanceValidInputRange.hpp"
33 #include "ad/physics/MetricRangeValidInputRange.hpp"
34 #include "spdlog/fmt/ostr.h"
35 #include "spdlog/spdlog.h"
36 
47 inline bool withinValidInputRange(::ad::map::lane::Lane const &input, bool const logErrors = true)
48 {
49  // check for generic member input ranges
50  bool inValidInputRange = true;
51  inValidInputRange = withinValidInputRange(input.id, logErrors) && withinValidInputRange(input.type, logErrors)
52  && withinValidInputRange(input.direction, logErrors) && withinValidInputRange(input.restrictions, logErrors)
53  && withinValidInputRange(input.length, logErrors) && withinValidInputRange(input.lengthRange, logErrors)
54  && withinValidInputRange(input.width, logErrors) && withinValidInputRange(input.widthRange, logErrors)
55  && withinValidInputRange(input.speedLimits, logErrors) && withinValidInputRange(input.edgeLeft, logErrors)
56  && withinValidInputRange(input.edgeRight, logErrors) && withinValidInputRange(input.contactLanes, logErrors)
57  && withinValidInputRange(input.boundingSphere, logErrors)
58  && withinValidInputRange(input.visibleLandmarks, logErrors);
59  if (!inValidInputRange && logErrors)
60  {
61  spdlog::error("withinValidInputRange(::ad::map::lane::Lane)>> {} has invalid member", input); // LCOV_EXCL_BR_LINE
62  }
63 
64  return inValidInputRange;
65 }
SpeedLimitListValidInputRange.hpp
ad::map::lane::Lane::contactLanes
::ad::map::lane::ContactLaneList contactLanes
Definition: Lane.hpp:185
Lane.hpp
LaneDirectionValidInputRange.hpp
ad::map::lane::Lane::id
::ad::map::lane::LaneId id
Definition: Lane.hpp:138
ContactLaneListValidInputRange.hpp
LaneTypeValidInputRange.hpp
ad::map::lane::Lane::type
::ad::map::lane::LaneType type
Definition: Lane.hpp:143
ad::map::lane::Lane::length
::ad::physics::Distance length
Definition: Lane.hpp:158
ad::map::lane::Lane::edgeRight
::ad::map::point::Geometry edgeRight
Definition: Lane.hpp:180
BoundingSphereValidInputRange.hpp
ad::map::lane::Lane::visibleLandmarks
::ad::map::landmark::LandmarkIdList visibleLandmarks
Definition: Lane.hpp:192
LandmarkIdListValidInputRange.hpp
ad::map::lane::Lane::restrictions
::ad::map::restriction::Restrictions restrictions
Definition: Lane.hpp:153
RestrictionsValidInputRange.hpp
GeometryValidInputRange.hpp
ad::map::lane::Lane::edgeLeft
::ad::map::point::Geometry edgeLeft
Definition: Lane.hpp:175
ad::map::lane::Lane::direction
::ad::map::lane::LaneDirection direction
Definition: Lane.hpp:148
ad::map::lane::Lane::speedLimits
::ad::map::restriction::SpeedLimitList speedLimits
Definition: Lane.hpp:170
LaneIdValidInputRange.hpp
ad::map::lane::Lane::width
::ad::physics::Distance width
Definition: Lane.hpp:164
ad::map::lane::Lane
DataType Lane.
Definition: Lane.hpp:56
withinValidInputRange
bool withinValidInputRange(::ad::map::lane::Lane const &input, bool const logErrors=true)
check if the given Lane is within valid input range
Definition: LaneValidInputRange.hpp:47