Helios++
Helios software for LiDAR simulations
FastSAHKDTreeGeometricStrategy Class Reference

Class providing a strategy for geometry-level parallelization of Fast SAH KDTree building. The geometry-level parallelization is the one to be applied on upper tree nodes, where multiple threads work on the building of the same node. More...

#include <FastSAHKDTreeGeometricStrategy.h>

Inheritance diagram for FastSAHKDTreeGeometricStrategy:
Collaboration diagram for FastSAHKDTreeGeometricStrategy:

Public Member Functions

 FastSAHKDTreeGeometricStrategy (FastSAHKDTreeFactory &kdtf)
 FastSAHKDTreeGeometricStrategy default constructor. More...
 
SimpleKDTreeGeometricStrategyclone (SimpleKDTreeFactory *kdtf) const override
 Create a clone of the FastSAHKDTreeGeometricStrategy. More...
 
double GEOM_findSplitPositionBySAH (KDTreeNode *node, vector< Primitive * > &primitives, int assignedThreads) const override
 Geometry-level parallel version of the FastSAHKDTreeFactory::findSplitPositionBySAH function. More...
 
- Public Member Functions inherited from SAHKDTreeGeometricStrategy
 SAHKDTreeGeometricStrategy (SAHKDTreeFactory &kdtf)
 SAHKDTreeGeometricStrategy default constructor. More...
 
SimpleKDTreeGeometricStrategyclone (SimpleKDTreeFactory *kdtf) const override
 Create a clone of the SAHKDTreeGeometricStrategy. More...
 
- Public Member Functions inherited from SimpleKDTreeGeometricStrategy
 SimpleKDTreeGeometricStrategy (SimpleKDTreeFactory &kdtf)
 SimpleKDTreeGeometricStrategy default constructor. More...
 

Protected Attributes

FastSAHKDTreeFactoryfsahkdtf
 The fast surface area heuristic KDTree factory to which geometric strategy shall be applied.
 
- Protected Attributes inherited from SAHKDTreeGeometricStrategy
SAHKDTreeFactorysahkdtf
 The surface area heuristic KDTree factory to which geometric strategy shall be applied.
 
- Protected Attributes inherited from SimpleKDTreeGeometricStrategy
SimpleKDTreeFactorykdtf
 The simple KDTree factory to which geometric strategy shall be applied.
 

Friends

class MultiThreadKDTreeFactory
 

Additional Inherited Members

- Protected Member Functions inherited from SAHKDTreeGeometricStrategy
void GEOM_defineSplit (KDTreeNode *node, KDTreeNode *parent, vector< Primitive * > &primitives, int const depth, int const assignedThreads) const override
 Geometry-level parallel version of the SAHKDTreeFactory::defineSplit function. More...
 
void GEOM_buildChildrenNodes (KDTreeNode *node, KDTreeNode *parent, vector< Primitive * > const &primitives, int const depth, int const index, vector< Primitive * > &leftPrimitives, vector< Primitive * > &rightPrimitives, std::shared_ptr< SharedTaskSequencer > masters) override
 Geometry-level parallel version of the SAHKDTreeFactory::buildChildrenNodes. More...
 
- Protected Member Functions inherited from SimpleKDTreeGeometricStrategy
virtual void GEOM_computeNodeBoundaries (KDTreeNode *node, KDTreeNode *parent, bool const left, vector< Primitive * > const &primitives, int assignedThreads)
 Geometry-level parallel version of the SimpleKDTreeFactory::computeNodeBoundaries function. More...
 
virtual void GEOM_populateSplits (vector< Primitive * > const &primitives, int const splitAxis, double const splitPos, vector< Primitive * > &leftPrimitives, vector< Primitive * > &rightPrimitives, int assignedThreads) const
 Geometry-level parallel version of the SimpleKDTreeFactory::populateSplits function. More...
 

Detailed Description

Class providing a strategy for geometry-level parallelization of Fast SAH KDTree building. The geometry-level parallelization is the one to be applied on upper tree nodes, where multiple threads work on the building of the same node.

Author
Alberto M. Esmoris Pena
Version
1.0
See also
SAHKDTreeGeometricStrategy

Constructor & Destructor Documentation

◆ FastSAHKDTreeGeometricStrategy()

FastSAHKDTreeGeometricStrategy::FastSAHKDTreeGeometricStrategy ( FastSAHKDTreeFactory kdtf)
inline

Member Function Documentation

◆ clone()

SimpleKDTreeGeometricStrategy * FastSAHKDTreeGeometricStrategy::clone ( SimpleKDTreeFactory kdtf) const
overridevirtual

Create a clone of the FastSAHKDTreeGeometricStrategy.

Parameters
kdtfThe KDTreeFactory to be referenced by the clone
Returns
Clone of the FastSAHKDTreeGeometricStrategy

Reimplemented from SimpleKDTreeGeometricStrategy.

◆ GEOM_findSplitPositionBySAH()

double FastSAHKDTreeGeometricStrategy::GEOM_findSplitPositionBySAH ( KDTreeNode node,
vector< Primitive * > &  primitives,
int  assignedThreads 
) const
overridevirtual

Geometry-level parallel version of the FastSAHKDTreeFactory::findSplitPositionBySAH function.

Parameters
assignedThreadsHow many threads can be used to parallelize computations
See also
FastSAHKDTreeFactory::findSplitPositionBySAH

Reimplemented from SAHKDTreeGeometricStrategy.


The documentation for this class was generated from the following files: