Helios++
Helios software for LiDAR simulations
AxisSAHKDTreeGeometricStrategy.h
1 #pragma once
2 
3 #include <SAHKDTreeGeometricStrategy.h>
4 #include <AxisSAHKDTreeFactory.h>
5 
18  // *** FRIENDS *** //
19  // ***************** //
20  friend class MultiThreadKDTreeFactory;
21 
22 protected:
23  // *** ATTRIBUTES *** //
24  // ******************** //
30 
31 public:
32  // *** CONSTRUCTION / DESTRUCTION *** //
33  // ************************************ //
42  asahkdtf(kdtf)
43  {}
44  virtual ~AxisSAHKDTreeGeometricStrategy() = default;
45 
46  // *** CLONE *** //
47  // *************** //
55  ) const override;
56 
57 protected:
58  // *** GEOMETRY LEVEL BUILDING *** //
59  // ********************************* //
66  void GEOM_defineSplit(
67  KDTreeNode *node,
68  KDTreeNode *parent,
69  vector<Primitive *> &primitives,
70  int const depth,
71  int const assignedThreads
72  ) const override;
73 };
Class providing building methods for k-dimensional trees with surface area heuristic and greedy selec...
Definition: AxisSAHKDTreeFactory.h:14
Class providing a strategy for geometry-level parallelization of Axis SAH KDTree building....
Definition: AxisSAHKDTreeGeometricStrategy.h:17
AxisSAHKDTreeFactory & asahkdtf
The axis surface area heuristic KDTree factory to which geometric strategy shall be applied.
Definition: AxisSAHKDTreeGeometricStrategy.h:29
SimpleKDTreeGeometricStrategy * clone(SimpleKDTreeFactory *kdtf) const override
Create a clone of the AxisSAHKDTreeGeometricStrategy.
Definition: AxisSAHKDTreeGeometricStrategy.cpp:5
void GEOM_defineSplit(KDTreeNode *node, KDTreeNode *parent, vector< Primitive * > &primitives, int const depth, int const assignedThreads) const override
Extend SAHKDTreeFactory::GEOM_defineSplit to handle greedy search of best split axis inside a geometr...
Definition: AxisSAHKDTreeGeometricStrategy.cpp:13
AxisSAHKDTreeGeometricStrategy(AxisSAHKDTreeFactory &kdtf)
AxisSAHKDTreeGeometricStrategy default constructor.
Definition: AxisSAHKDTreeGeometricStrategy.h:40
Class representing a KDTree node.
Definition: KDTreeNode.h:9
Decorator for any KDTree factory which provides support for multi thread KDTree building.
Definition: MultiThreadKDTreeFactory.h:34
Class providing a strategy for geometry-level parallelization of SAH KDTree building....
Definition: SAHKDTreeGeometricStrategy.h:17
Class providing building methods for simple k-dimensional trees.
Definition: SimpleKDTreeFactory.h:18
Class providing a strategy for geometry-level parallelization of Simple KDTree building....
Definition: SimpleKDTreeGeometricStrategy.h:15
SimpleKDTreeFactory & kdtf
The simple KDTree factory to which geometric strategy shall be applied.
Definition: SimpleKDTreeGeometricStrategy.h:27