hpp-fcl 2.4.4
HPP fork of FCL -- The Flexible Collision Library
Loading...
Searching...
No Matches
hfield.h
Go to the documentation of this file.
1//
2// Copyright (c) 2021 INRIA
3//
4
5#ifndef HPP_FCL_SERIALIZATION_HFIELD_H
6#define HPP_FCL_SERIALIZATION_HFIELD_H
7
8#include "hpp/fcl/hfield.h"
9
12
13namespace boost {
14namespace serialization {
15
16template <class Archive>
17void serialize(Archive &ar, hpp::fcl::HFNodeBase &node,
18 const unsigned int /*version*/) {
19 ar &make_nvp("first_child", node.first_child);
20 ar &make_nvp("x_id", node.x_id);
21 ar &make_nvp("x_size", node.x_size);
22 ar &make_nvp("y_id", node.y_id);
23 ar &make_nvp("y_size", node.y_size);
24 ar &make_nvp("max_height", node.max_height);
25}
26
27template <class Archive, typename BV>
28void serialize(Archive &ar, hpp::fcl::HFNode<BV> &node,
29 const unsigned int /*version*/) {
30 ar &make_nvp("base",
31 boost::serialization::base_object<hpp::fcl::HFNodeBase>(node));
32 ar &make_nvp("bv", node.bv);
33}
34
35namespace internal {
36template <typename BV>
39 using Base::bvs;
40 using Base::heights;
41 using Base::max_height;
42 using Base::min_height;
43 using Base::num_bvs;
44 using Base::x_dim;
45 using Base::x_grid;
46 using Base::y_dim;
47 using Base::y_grid;
48};
49} // namespace internal
50
51template <class Archive, typename BV>
52void serialize(Archive &ar, hpp::fcl::HeightField<BV> &hf_model,
53 const unsigned int /*version*/) {
54 ar &make_nvp(
55 "base",
56 boost::serialization::base_object<hpp::fcl::CollisionGeometry>(hf_model));
57
58 typedef internal::HeightFieldAccessor<BV> Accessor;
59 Accessor &access = reinterpret_cast<Accessor &>(hf_model);
60
61 ar &make_nvp("x_dim", access.x_dim);
62 ar &make_nvp("y_dim", access.y_dim);
63 ar &make_nvp("heights", access.heights);
64 ar &make_nvp("min_height", access.min_height);
65 ar &make_nvp("max_height", access.max_height);
66 ar &make_nvp("x_grid", access.x_grid);
67 ar &make_nvp("y_grid", access.y_grid);
68
69 ar &make_nvp("bvs", access.bvs);
70 ar &make_nvp("num_bvs", access.num_bvs);
71}
72} // namespace serialization
73} // namespace boost
74
75#endif // ifndef HPP_FCL_SERIALIZATION_HFIELD_H
Data structure depicting a height field given by the base grid dimensions and the elevation along the...
Definition: hfield.h:182
FCL_REAL max_height
Definition: hfield.h:326
FCL_REAL y_dim
Definition: hfield.h:319
FCL_REAL min_height
Minimal height of the Height Field: all values bellow min_height will be discarded.
Definition: hfield.h:326
FCL_REAL x_dim
Dimensions in meters along X and Y directions.
Definition: hfield.h:319
VecXf y_grid
Definition: hfield.h:330
BVS bvs
Bounding volume hierarchy.
Definition: hfield.h:333
VecXf x_grid
Grids along the X and Y directions. Useful for plotting or other related things.
Definition: hfield.h:330
unsigned int num_bvs
Definition: hfield.h:334
MatrixXf heights
Elevation values in meters of the Height Field.
Definition: hfield.h:322
void serialize(Archive &ar, hpp::fcl::AABB &aabb, const unsigned int)
Definition: AABB.h:15
Definition: AABB.h:11
hpp::fcl::HeightField< BV > Base
Definition: hfield.h:38
Definition: hfield.h:53
FCL_REAL max_height
Definition: hfield.h:63
Eigen::DenseIndex y_size
Definition: hfield.h:61
Eigen::DenseIndex x_id
Definition: hfield.h:60
Eigen::DenseIndex x_size
Definition: hfield.h:60
Eigen::DenseIndex y_id
Definition: hfield.h:61
size_t first_child
An index for first child node or primitive If the value is positive, it is the index of the first chi...
Definition: hfield.h:58
Definition: hfield.h:105
BV bv
bounding volume storing the geometry
Definition: hfield.h:109