CARLA
CollisionEventSerializer.h
Go to the documentation of this file.
1 // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma
2 // de Barcelona (UAB).
3 //
4 // This work is licensed under the terms of the MIT license.
5 // For a copy, see <https://opensource.org/licenses/MIT>.
6 
7 #pragma once
8 
9 #include "carla/Buffer.h"
10 #include "carla/Debug.h"
11 #include "carla/Memory.h"
12 #include "carla/rpc/Actor.h"
13 #include "carla/geom/Vector3D.h"
14 #include "carla/sensor/RawData.h"
15 
16 namespace carla {
17 namespace sensor {
18 
19  class SensorData;
20 
21 namespace s11n {
22 
23  /// Serializes the current state of the whole episode.
25  public:
26 
27  struct Data {
28 
30 
32 
34 
35  MSGPACK_DEFINE_ARRAY(self_actor, other_actor, normal_impulse)
36  };
37 
38  constexpr static auto header_offset = 0u;
39 
40  static Data DeserializeRawData(const RawData &message) {
41  return MsgPack::UnPack<Data>(message.begin(), message.size());
42  }
43 
44  template <typename SensorT>
45  static Buffer Serialize(
46  const SensorT &,
50  return MsgPack::Pack(Data{self_actor, other_actor, normal_impulse});
51  }
52 
54  };
55 
56 } // namespace s11n
57 } // namespace sensor
58 } // namespace carla
static Buffer Pack(const T &obj)
Definition: MsgPack.h:19
static Data DeserializeRawData(const RawData &message)
boost::shared_ptr< T > SharedPtr
Use this SharedPtr (boost::shared_ptr) to keep compatibility with boost::python, but it would be nice...
Definition: Memory.h:20
This file contains definitions of common data structures used in traffic manager. ...
Definition: Carla.cpp:133
auto begin() noexcept
Begin iterator to the data generated by the sensor.
Definition: RawData.h:52
size_t size() const
Size in bytes of the data generated by the sensor.
Definition: RawData.h:83
static Buffer Serialize(const SensorT &, rpc::Actor self_actor, rpc::Actor other_actor, geom::Vector3D normal_impulse)
static SharedPtr< SensorData > Deserialize(RawData &&data)
Serializes the current state of the whole episode.
A piece of raw data.
Definition: carla/Buffer.h:42
Wrapper around the raw data generated by a sensor plus some useful meta-information.
Definition: RawData.h:21