3 #include <KDTreeFactory.h>
4 #include <SimpleKDTreeFactory.h>
5 #include <SAHKDTreeFactory.h>
6 #include <AxisSAHKDTreeFactory.h>
7 #include <FastSAHKDTreeFactory.h>
8 #include <MultiThreadKDTreeFactory.h>
9 #include <MultiThreadSAHKDTreeFactory.h>
15 using std::shared_ptr;
22 friend class boost::serialization::access;
29 template <
class Archive>
30 void serialize(Archive &ar,
const unsigned int version){
41 shared_ptr<KDTreeFactory>
kdtf;
74 vector<shared_ptr<ScenePart>> parts,
75 bool const mergeNonMoving=
false,
76 bool const safe=
false,
77 bool const computeKDGroveStats=
false,
78 bool const reportKDGroveStats=
false,
79 bool const computeKDTreeStats=
false,
80 bool const reportKDTreeStats=
false
94 shared_ptr<KDGrove> kdgrove,
95 vector<double> &buildingTimes,
96 vector<int> &treePrimitives
110 vector<shared_ptr<ScenePart>> parts,
112 bool const computeKDGroveStats,
113 bool const reportKDGroveStats,
114 bool const computeKDTreeStats,
115 bool const reportKDTreeStats
121 virtual shared_ptr<KDGrove>
makeFull(
122 vector<shared_ptr<ScenePart>> parts,
124 bool const computeKDGroveStats,
125 bool const reportKDGroveStats,
126 bool const computeKDTreeStats,
127 bool const reportKDTreeStats
135 vector<shared_ptr<ScenePart>> parts,
137 bool const computeKDGroveStats,
138 bool const reportKDGroveStats,
139 bool const computeKDTreeStats,
140 bool const reportKDTreeStats
Definition: KDGroveFactory.h:18
KDGroveFactory(shared_ptr< KDTreeFactory > kdtf)
K dimensional grove factory default constructor.
Definition: KDGroveFactory.h:49
shared_ptr< KDTreeFactory > kdtf
The KDTree factory used to build trees composing the grove.
Definition: KDGroveFactory.h:41
virtual shared_ptr< KDGrove > makeMergeNonMoving(vector< shared_ptr< ScenePart >> parts, bool const safe, bool const computeKDGroveStats, bool const reportKDGroveStats, bool const computeKDTreeStats, bool const reportKDTreeStats)
Build a KDGrove where all non moving scene parts are merged to build a single KDTree.
Definition: KDGroveFactory.cpp:273
virtual shared_ptr< KDGrove > makeFromSceneParts(vector< shared_ptr< ScenePart >> parts, bool const mergeNonMoving=false, bool const safe=false, bool const computeKDGroveStats=false, bool const reportKDGroveStats=false, bool const computeKDTreeStats=false, bool const reportKDTreeStats=false)
Bulid a KDGrove from given scene parts.
Definition: KDGroveFactory.cpp:12
virtual shared_ptr< KDGrove > makeCommon(vector< shared_ptr< ScenePart >> parts, bool const safe, bool const computeKDGroveStats, bool const reportKDGroveStats, bool const computeKDTreeStats, bool const reportKDTreeStats)
The common implementation of building a KDGrove. It handles the common building process for both full...
Definition: KDGroveFactory.cpp:200
shared_ptr< KDTreeFactory > getKdtf() const
Obtain the KDTreeFactory used by the KDGroveFactory.
Definition: KDGroveFactory.h:151
virtual shared_ptr< KDGrove > makeFull(vector< shared_ptr< ScenePart >> parts, bool const safe, bool const computeKDGroveStats, bool const reportKDGroveStats, bool const computeKDTreeStats, bool const reportKDTreeStats)
Build a KDGrove on a KDTree per ScenePart basis.
Definition: KDGroveFactory.cpp:255
void setKdtf(shared_ptr< KDTreeFactory > kdtf)
Set the KDTreeFactory to be used by the KDGroveFactory.
Definition: KDGroveFactory.h:157
void serialize(Archive &ar, const unsigned int version)
Serialize a KDGrove factory to a stream of bytes.
Definition: KDGroveFactory.h:30
void handleKDGroveStats(shared_ptr< KDGrove > kdgrove, vector< double > &buildingTimes, vector< int > &treePrimitives)
Method to handle the update of KDGrove stats after all KDTrees and the KDGrove itself have been creat...
Definition: KDGroveFactory.cpp:42