3 #include <serial_adt_utils.h>
4 #include <IterableTreeNode.h>
5 #include <MultiThreadKDTreeFactory.h>
6 #include <MultiThreadSAHKDTreeFactory.h>
7 #include <KDGroveFactory.h>
10 namespace boost{
namespace serialization{
14 template <
class Archive,
typename NodeType>
15 void save_construct_data(
18 unsigned int const version
25 template <
class Archive,
typename NodeType>
26 void load_construct_data(
29 unsigned int const version
44 template <
class Archive>
45 void save_construct_data(
48 unsigned int const version
56 char gsType = KDTREE_FACTORY_EXTRACT_GSTYPE(mtkdtf);
60 template <
class Archive>
61 void load_construct_data(
64 unsigned int const version
67 std::shared_ptr<SimpleKDTreeFactory> kdtf;
68 size_t numJobs, geomJobs;
76 KDTREE_FACTORY_INPLACE_CONSTRUCT<MultiThreadKDTreeFactory>(
85 template <
class Archive>
86 void save_construct_data(
89 unsigned int const version
97 char gsType = KDTREE_FACTORY_EXTRACT_GSTYPE(mtkdtf);
101 template <
class Archive>
102 void load_construct_data(
105 unsigned int const version
108 std::shared_ptr<SimpleKDTreeFactory> kdtf;
109 size_t numJobs, geomJobs;
117 KDTREE_FACTORY_INPLACE_CONSTRUCT<MultiThreadSAHKDTreeFactory>(
129 template <
class Archive>
130 void save_construct_data(
133 unsigned int const version
136 ar.template register_type<SimpleKDTreeFactory>();
137 ar.template register_type<SAHKDTreeFactory>();
138 ar.template register_type<AxisSAHKDTreeFactory>();
139 ar.template register_type<FastSAHKDTreeFactory>();
140 ar.template register_type<MultiThreadKDTreeFactory>();
141 ar.template register_type<MultiThreadSAHKDTreeFactory>();
147 template <
class Archive>
148 void load_construct_data(
151 unsigned int const version
154 ar.template register_type<SimpleKDTreeFactory>();
155 ar.template register_type<SAHKDTreeFactory>();
156 ar.template register_type<AxisSAHKDTreeFactory>();
157 ar.template register_type<FastSAHKDTreeFactory>();
158 ar.template register_type<MultiThreadKDTreeFactory>();
159 ar.template register_type<MultiThreadSAHKDTreeFactory>();
162 std::shared_ptr<KDTreeFactory> kdtf;
Class representing an iterable tree node. It is a wrapper for a given tree node type which handles so...
Definition: IterableTreeNode.h:12
NodeType * node
Tree node being wrapped.
Definition: IterableTreeNode.h:34
int depth
Depth of tree node being wrapped.
Definition: IterableTreeNode.h:38
Definition: KDGroveFactory.h:18
shared_ptr< KDTreeFactory > getKdtf() const
Obtain the KDTreeFactory used by the KDGroveFactory.
Definition: KDGroveFactory.h:151
Decorator for any KDTree factory which provides support for multi thread KDTree building.
Definition: MultiThreadKDTreeFactory.h:34
virtual size_t getGeomJobs() const
Obtain the number of threads for geometry-level parallelization.
Definition: MultiThreadKDTreeFactory.h:423
virtual size_t getNumJobs() const
Obtain the number of threads for node-level parallelization.
Definition: MultiThreadKDTreeFactory.h:418
virtual shared_ptr< SimpleKDTreeFactory > getKdtf() const
Obtain the SimpleKDTreeFactory used to build tree nodes.
Definition: MultiThreadKDTreeFactory.h:406
Decorator for any SAH KDTree which provides support for multi thread KDTree building.
Definition: MultiThreadSAHKDTreeFactory.h:15