Helios++
Helios software for LiDAR simulations
serial_primitives.h
1 #pragma once
2 
3 #include <Triangle.h>
4 
5 namespace boost{namespace serialization{
6 
7 // *** TRIANGLE SERIALIZATION *** //
8 // ********************************* //
12 template<class Archive>
13 void save_construct_data(
14  Archive & ar,
15  const Triangle * t,
16  const unsigned int file_version
17 ){
18  // save data required to construct instance
19  ar << t->verts;
20 }
24 template<class Archive>
25 void load_construct_data(
26  Archive & ar,
27  Triangle * t,
28  const unsigned int file_version
29 ){
30  // retrieve data from archive required to construct new instance
31  Vertex verts[3];
32  ar >> verts;
33  // invoke inplace constructor to initialize instance of my_class
34  ::new(t)Triangle(verts[0], verts[1], verts[2]);
35 }
36 
37 
38 }};
Class representing triangle primitive.
Definition: Triangle.h:13
Vertex verts[3]
The 3 vertices defining the triangle.
Definition: Triangle.h:66
Class representing a vertex.
Definition: Vertex.h:14