hpp-fcl 2.2.0
HPP fork of FCL -- The Flexible Collision Library
Loading...
Searching...
No Matches
BV_splitter.h
Go to the documentation of this file.
1//
2// Copyright (c) 2021 INRIA
3//
4
5#ifndef HPP_FCL_SERIALIZATION_BV_SPLITTER_H
6#define HPP_FCL_SERIALIZATION_BV_SPLITTER_H
7
9
11
12namespace boost {
13namespace serialization {
14
15namespace internal {
16template <typename BV>
19 using Base::split_axis;
24 using Base::type;
25 using Base::vertices;
26};
27} // namespace internal
28
29template <class Archive, typename BV>
30void save(Archive &ar, const hpp::fcl::BVSplitter<BV> &splitter_,
31 const unsigned int /*version*/) {
32 using namespace hpp::fcl;
33 typedef internal::BVSplitterAccessor<BV> Accessor;
34 const Accessor &splitter = reinterpret_cast<const Accessor &>(splitter_);
35
36 ar &make_nvp("split_axis", splitter.split_axis);
37 ar &make_nvp("split_vector", splitter.split_vector);
38 ar &make_nvp("split_value", splitter.split_value);
39 ar &make_nvp("type", splitter.type);
40 ar &make_nvp("split_method", splitter.split_method);
41}
42
43template <class Archive, typename BV>
44void load(Archive &ar, hpp::fcl::BVSplitter<BV> &splitter_,
45 const unsigned int /*version*/) {
46 using namespace hpp::fcl;
47 typedef internal::BVSplitterAccessor<BV> Accessor;
48 Accessor &splitter = reinterpret_cast<Accessor &>(splitter_);
49
50 ar >> make_nvp("split_axis", splitter.split_axis);
51 ar >> make_nvp("split_vector", splitter.split_vector);
52 ar >> make_nvp("split_value", splitter.split_value);
53 ar >> make_nvp("type", splitter.type);
54 ar >> make_nvp("split_method", splitter.split_method);
55
56 splitter.vertices = NULL;
57 splitter.tri_indices = NULL;
58}
59} // namespace serialization
60} // namespace boost
61
62#endif // ifndef HPP_FCL_SERIALIZATION_BV_SPLITTER_H
A class describing the split rule that splits each BV node.
Definition: BV_splitter.h:59
Vec3f split_vector
Definition: BV_splitter.h:109
SplitMethodType split_method
The split algorithm used.
Definition: BV_splitter.h:126
BVHModelType type
Whether the geometry is mesh or point cloud.
Definition: BV_splitter.h:123
Vec3f * vertices
The mesh vertices or points handled by the splitter.
Definition: BV_splitter.h:117
int split_axis
The axis based on which the split decision is made. For most BV, the axis is aligned with one of the ...
Definition: BV_splitter.h:108
FCL_REAL split_value
The split threshold, different primitives are splitted according whether their projection on the spli...
Definition: BV_splitter.h:114
Triangle * tri_indices
The triangles handled by the splitter.
Definition: BV_splitter.h:120
void save(Archive &ar, const hpp::fcl::BVSplitter< BV > &splitter_, const unsigned int)
Definition: BV_splitter.h:30
void load(Archive &ar, hpp::fcl::BVSplitter< BV > &splitter_, const unsigned int)
Definition: BV_splitter.h:44
Definition: AABB.h:11
Definition: broadphase_bruteforce.h:45
hpp::fcl::BVSplitter< BV > Base
Definition: BV_splitter.h:18