Branch data Line data Source code
1 : : // ----------------- BEGIN LICENSE BLOCK --------------------------------- 2 : : // 3 : : // Copyright (C) 2018-2021 Intel Corporation 4 : : // 5 : : // SPDX-License-Identifier: MIT 6 : : // 7 : : // ----------------- END LICENSE BLOCK ----------------------------------- 8 : : 9 : : #include "ad/map/serialize/SerializeGeneratedLaneTypes.hpp" 10 : : #include "ad/map/point/BoundingSphereOperation.hpp" 11 : : #include "ad/map/point/ECEFOperation.hpp" 12 : : #include "ad/map/serialize/SerializeGeneratedTypes.hpp" 13 : : 14 : : namespace ad { 15 : : namespace map { 16 : : namespace serialize { 17 : : 18 : 26085 : bool doSerialize(ISerializer &serializer, lane::Lane &lane) 19 : : { 20 [ + - + - : 52170 : bool ok = serializer.serialize(SerializeableMagic::Lane) && doSerialize(serializer, lane.id) + - ] 21 [ + - + - : 26085 : && serializer.serialize(lane.type) && serializer.serialize(lane.direction) + - + - ] 22 [ + - + - : 26085 : && doSerialize(serializer, lane.restrictions) && doSerialize(serializer, lane.length) + - + - ] 23 [ + - + - : 26085 : && doSerialize(serializer, lane.lengthRange) && doSerialize(serializer, lane.width) + - + - ] 24 [ + - + - ]: 26085 : && doSerialize(serializer, lane.widthRange) 25 [ + - + - ]: 26085 : && serializer.serializeObjectVector(lane.speedLimits) 26 : : // @toDo: version 0.4 compat: keep Edge in for backward compat 27 [ + - + - ]: 26085 : && serializer.serialize(SerializeableMagic::Edge) 28 [ + - + - ]: 26085 : && doSerialize(serializer, lane.edgeLeft) 29 : : // @toDo: version 0.4 compat: keep Edge in for backward compat 30 [ + - + - : 26085 : && serializer.serialize(SerializeableMagic::Edge) && doSerialize(serializer, lane.edgeRight) + - + - ] 31 [ + - + - : 26085 : && serializer.serializeObjectVector(lane.contactLanes) && serializer.serialize(SerializeableMagic::ComplianceVer) + - + - ] 32 [ + - + - : 26085 : && serializer.serialize(lane.complianceVersion) && doSerialize(serializer, lane.boundingSphere) + - + - ] 33 [ + - + - : 52170 : && serializer.serializeObjectVector(lane.visibleLandmarks); + + + + ] 34 : : 35 [ + + ]: 26085 : if (ok) 36 : : { 37 : : //@toDO: version 0.4 compat: cope with empty bounding sphere in old files 38 [ + - + - ]: 26084 : if ((lane.boundingSphere.center == point::createECEFPoint(0., 0., 0.)) 39 [ + + + - : 26084 : || (lane.boundingSphere.radius == physics::Distance(0.))) - + + + ] 40 : : { 41 : 24266 : lane.boundingSphere = point::calcBoundingSphere(lane.edgeLeft, lane.edgeRight); 42 : : } 43 : : } 44 : 26085 : return ok; 45 : : } 46 : : 47 : 157724 : bool doSerialize(ISerializer &serializer, lane::ContactLane &contactLane) 48 : : { 49 [ + - + - : 315448 : return serializer.serialize(SerializeableMagic::ContactLane) && doSerialize(serializer, contactLane.toLane) + - ] 50 [ + - + - : 157724 : && serializer.serialize(contactLane.location) && serializer.serializeVector(contactLane.types) + - + - ] 51 [ + - + - : 315448 : && doSerialize(serializer, contactLane.restrictions) && doSerialize(serializer, contactLane.trafficLightId); + - + - + - ] 52 : : } 53 : : 54 : : } // namespace serialize 55 : : } // namespace map 56 : : } // namespace ad