Helios++
Helios software for LiDAR simulations
KDTreeFactoryMaker Class Reference

Collection of static methods to simplify making of different KDTree factories. More...

#include <KDTreeFactoryMaker.h>

Collaboration diagram for KDTreeFactoryMaker:

Static Public Member Functions

static shared_ptr< SimpleKDTreeFactorymakeSimple ()
 Build a simple KDTree factory. More...
 
static shared_ptr< MultiThreadKDTreeFactorymakeSimpleMultiThread (size_t const kdtNodeJobs, size_t const kdtGeomJobs)
 Build a multi-thread simple KDTree factory. More...
 
static shared_ptr< MultiThreadKDTreeFactorymakeSimpleMultiThread (size_t const kdtNodeJobs)
 Build a multi-thread simple KDTree factory assuming the number of threads for geometry-level parallelization is the same than the number of threads for node-level parallelization. More...
 
static shared_ptr< MultiThreadKDTreeFactorymakeSimpleMultiThread ()
 Build a multi-thread simple KDTree factory assuming the number of threads for geometry and node levels parallelization to be the number of system threads. More...
 
static shared_ptr< SAHKDTreeFactorymakeSAH (size_t const lossNodes)
 Build a SAH KDTree factory. More...
 
static shared_ptr< MultiThreadSAHKDTreeFactorymakeSAHMultiThread (size_t const lossNodes, size_t const kdtNodeJobs, size_t const kdtGeomJobs)
 Build a multi-thread SAH KDTree factory. More...
 
static shared_ptr< MultiThreadSAHKDTreeFactorymakeSAHMultiThread (size_t const lossNodes, size_t const kdtNodeJobs)
 Build a multi-thread SAH KDTree factory assuming the number of threads for geometry-level parallelization is the same than the number of threads for node-level parallelization. More...
 
static shared_ptr< MultiThreadSAHKDTreeFactorymakeSAHMultiThread (size_t const lossNodes)
 Build a multi-thread SAH KDTree factory assuming the number of threads for geometry and node levels parallelization to be the number of system threads. More...
 
static shared_ptr< MultiThreadSAHKDTreeFactorymakeSAHMultiThread ()
 Build a multi-thread SAH KDTree factory with system threads and default loss nodes. More...
 
static shared_ptr< AxisSAHKDTreeFactorymakeAxisSAH (size_t const lossNodes)
 Build an Axis SAH KDTree factory. More...
 
static shared_ptr< MultiThreadSAHKDTreeFactorymakeAxisSAHMultiThread (size_t const lossNodes, size_t const kdtNodeJobs, size_t const kdtGeomJobs)
 Build a multi-thread axis SAH KDTree factory. More...
 
static shared_ptr< MultiThreadSAHKDTreeFactorymakeAxisSAHMultiThread (size_t const lossNodes, size_t const kdtNodeJobs)
 Build a multi-thread axis SAH KDTree factory assuming the number of threads for geometry-level parallelization is the same than the number of threads for node-level parallelization. More...
 
static shared_ptr< MultiThreadSAHKDTreeFactorymakeAxisSAHMultiThread (size_t const lossNodes)
 Build a multi-thread axis SAH KDTree factory assuming the number of threads for geometry and node levels parallelization to be the number of system threads. More...
 
static shared_ptr< MultiThreadSAHKDTreeFactorymakeAxisSAHMultiThread ()
 Build a multi-thread axis SAH KDTree factory with system threads and default loss nodes. More...
 
static shared_ptr< FastSAHKDTreeFactorymakeFastSAH (size_t const lossNodes)
 Build a fast SAH KDTree factory. More...
 
static shared_ptr< MultiThreadSAHKDTreeFactorymakeFastSAHMultiThread (size_t const lossNodes, size_t const kdtNodeJobs, size_t const kdtGeomJobs)
 Build a multi-thread fast SAH KDTree factory. More...
 
static shared_ptr< MultiThreadSAHKDTreeFactorymakeFastSAHMultiThread (size_t const lossNodes, size_t const kdtNodeJobs)
 Build a multi-thread fast SAH KDTree factory assuming the number of threads for geometry-level parallelization is the same than the number of threads for node-level parallelization. More...
 
static shared_ptr< MultiThreadSAHKDTreeFactorymakeFastSAHMultiThread (size_t const lossNodes)
 Build a multi-thread fast SAH KDTree factory assuming the number of threads for geometry and node levels parallelization to be the number of system threads. More...
 
static shared_ptr< MultiThreadSAHKDTreeFactorymakeFastSAHMultiThread ()
 Build a multi-thread fast SAH KDTree factory with system threads and default loss nodes. More...
 

Static Private Attributes

static size_t const sysThreads
 Number of threads available in the system. More...
 

Detailed Description

Collection of static methods to simplify making of different KDTree factories.

Author
Alberto M. Esmoris Pena
Version
1.0

Member Function Documentation

◆ makeAxisSAH()

static shared_ptr<AxisSAHKDTreeFactory> KDTreeFactoryMaker::makeAxisSAH ( size_t const  lossNodes)
inlinestatic

Build an Axis SAH KDTree factory.

Parameters
lossNodesHow many split nodes check during iterative finding of best split position
Returns
Built Axis SAH KDTree Factory
See also
AxisSAHKDTreeFactory

◆ makeAxisSAHMultiThread() [1/4]

static shared_ptr<MultiThreadSAHKDTreeFactory> KDTreeFactoryMaker::makeAxisSAHMultiThread ( )
inlinestatic

Build a multi-thread axis SAH KDTree factory with system threads and default loss nodes.

See also
makeAxisSAHMultiThread(size_t const, size_t const, size_t const)
KDTreeFactoryMaker::sysThreads

◆ makeAxisSAHMultiThread() [2/4]

static shared_ptr<MultiThreadSAHKDTreeFactory> KDTreeFactoryMaker::makeAxisSAHMultiThread ( size_t const  lossNodes)
inlinestatic

Build a multi-thread axis SAH KDTree factory assuming the number of threads for geometry and node levels parallelization to be the number of system threads.

See also
makeAxisSAHMultiThread(size_t const, size_t const, size_t const)
KDTreeFactoryMaker::sysThreads

◆ makeAxisSAHMultiThread() [3/4]

static shared_ptr<MultiThreadSAHKDTreeFactory> KDTreeFactoryMaker::makeAxisSAHMultiThread ( size_t const  lossNodes,
size_t const  kdtNodeJobs 
)
inlinestatic

Build a multi-thread axis SAH KDTree factory assuming the number of threads for geometry-level parallelization is the same than the number of threads for node-level parallelization.

See also
makeAxisSAHMultiThread(size_t const, size_t const, size_t const)

◆ makeAxisSAHMultiThread() [4/4]

static shared_ptr<MultiThreadSAHKDTreeFactory> KDTreeFactoryMaker::makeAxisSAHMultiThread ( size_t const  lossNodes,
size_t const  kdtNodeJobs,
size_t const  kdtGeomJobs 
)
inlinestatic

Build a multi-thread axis SAH KDTree factory.

Parameters
kdtNodeJobsNumber of threads for node-level parallelization
kdtGeomJobsNumber of threads for geometry-level parallelization
Returns
Built multi-thread axis SAH KDTree factory
See also
KDTreeFactoryMaker::makeAxisSAH
AxisSAHKDTreeFactory
AxisSAHKDTreeGeometricStrategy
MultiThreadSAHKDTreeFactory

◆ makeFastSAH()

static shared_ptr<FastSAHKDTreeFactory> KDTreeFactoryMaker::makeFastSAH ( size_t const  lossNodes)
inlinestatic

Build a fast SAH KDTree factory.

Parameters
lossNodesHow many bins must be used during primitives recount to approximate best split position
Returns
Built fast SAH KDTree factory
See also
FastSAHKDTreeFactory

◆ makeFastSAHMultiThread() [1/4]

static shared_ptr<MultiThreadSAHKDTreeFactory> KDTreeFactoryMaker::makeFastSAHMultiThread ( )
inlinestatic

Build a multi-thread fast SAH KDTree factory with system threads and default loss nodes.

See also
makeFastSAHMultiThread(size_t const, size_t const, size_t const)
KDTreeFactoryMaker::sysThreads

◆ makeFastSAHMultiThread() [2/4]

static shared_ptr<MultiThreadSAHKDTreeFactory> KDTreeFactoryMaker::makeFastSAHMultiThread ( size_t const  lossNodes)
inlinestatic

Build a multi-thread fast SAH KDTree factory assuming the number of threads for geometry and node levels parallelization to be the number of system threads.

See also
makeFastSAHMultiThread(size_t const, size_t const, size_t const)
KDTreeFactoryMaker::sysThreads

◆ makeFastSAHMultiThread() [3/4]

static shared_ptr<MultiThreadSAHKDTreeFactory> KDTreeFactoryMaker::makeFastSAHMultiThread ( size_t const  lossNodes,
size_t const  kdtNodeJobs 
)
inlinestatic

Build a multi-thread fast SAH KDTree factory assuming the number of threads for geometry-level parallelization is the same than the number of threads for node-level parallelization.

See also
makeFastSAHMultiThread(size_t const, size_t const, size_t const)

◆ makeFastSAHMultiThread() [4/4]

static shared_ptr<MultiThreadSAHKDTreeFactory> KDTreeFactoryMaker::makeFastSAHMultiThread ( size_t const  lossNodes,
size_t const  kdtNodeJobs,
size_t const  kdtGeomJobs 
)
inlinestatic

Build a multi-thread fast SAH KDTree factory.

Parameters
kdtNodeJobsNumber of threads for node-level parallelization
kdtGeomJobsNumber of threads for geometry-level parallelization
Returns
Built multi-thread fast SAH KDTree factory
See also
KDTreeFactoryMaker::makeFastSAH
FastSAHKDTreeFactory
FastSAHKDTreeGeometricStrategy
MultiThreadSAHKDTreeFactory

◆ makeSAH()

static shared_ptr<SAHKDTreeFactory> KDTreeFactoryMaker::makeSAH ( size_t const  lossNodes)
inlinestatic

Build a SAH KDTree factory.

Parameters
lossNodesHow many split nodes check during iterative finding of best split position
Returns
Built SAH KDTree factory
See also
SAHKDTreeFactory

◆ makeSAHMultiThread() [1/4]

static shared_ptr<MultiThreadSAHKDTreeFactory> KDTreeFactoryMaker::makeSAHMultiThread ( )
inlinestatic

Build a multi-thread SAH KDTree factory with system threads and default loss nodes.

See also
makeSAHMultiThread(size_t const, size_t const, size_t const)
KDTreeFactoryMaker::sysThreads

◆ makeSAHMultiThread() [2/4]

static shared_ptr<MultiThreadSAHKDTreeFactory> KDTreeFactoryMaker::makeSAHMultiThread ( size_t const  lossNodes)
inlinestatic

Build a multi-thread SAH KDTree factory assuming the number of threads for geometry and node levels parallelization to be the number of system threads.

See also
makeSAHMultiThread(size_t const, size_t const, size_t const)
KDTreeFactoryMaker::sysThreads

◆ makeSAHMultiThread() [3/4]

static shared_ptr<MultiThreadSAHKDTreeFactory> KDTreeFactoryMaker::makeSAHMultiThread ( size_t const  lossNodes,
size_t const  kdtNodeJobs 
)
inlinestatic

Build a multi-thread SAH KDTree factory assuming the number of threads for geometry-level parallelization is the same than the number of threads for node-level parallelization.

See also
makeSAHMultiThread(size_t const, size_t const, size_t const)

◆ makeSAHMultiThread() [4/4]

static shared_ptr<MultiThreadSAHKDTreeFactory> KDTreeFactoryMaker::makeSAHMultiThread ( size_t const  lossNodes,
size_t const  kdtNodeJobs,
size_t const  kdtGeomJobs 
)
inlinestatic

Build a multi-thread SAH KDTree factory.

Parameters
kdtNodeJobsNumber of threads for node-level parallelization
kdtGeomJobsNumber of threads for geometry-level parallelization
Returns
Built multi-thread SAH KDTree factory
See also
KDTreeFactoryMaker::makeSAH
SAHKDTreeFactory
SAHKDTreeGeometricStrategy
MultiThreadSAHKDTreeFactory

◆ makeSimple()

static shared_ptr<SimpleKDTreeFactory> KDTreeFactoryMaker::makeSimple ( )
inlinestatic

Build a simple KDTree factory.

Returns
Built simple KDTree factory
See also
SimpleKDTreeFactory

◆ makeSimpleMultiThread() [1/3]

static shared_ptr<MultiThreadKDTreeFactory> KDTreeFactoryMaker::makeSimpleMultiThread ( )
inlinestatic

Build a multi-thread simple KDTree factory assuming the number of threads for geometry and node levels parallelization to be the number of system threads.

See also
makeSimpleMultiThread(size_t const, size_t const)
KDTreeFactoryMaker::sysThreads

◆ makeSimpleMultiThread() [2/3]

static shared_ptr<MultiThreadKDTreeFactory> KDTreeFactoryMaker::makeSimpleMultiThread ( size_t const  kdtNodeJobs)
inlinestatic

Build a multi-thread simple KDTree factory assuming the number of threads for geometry-level parallelization is the same than the number of threads for node-level parallelization.

See also
makeSimpleMultiThread(size_t const, size_t const)

◆ makeSimpleMultiThread() [3/3]

static shared_ptr<MultiThreadKDTreeFactory> KDTreeFactoryMaker::makeSimpleMultiThread ( size_t const  kdtNodeJobs,
size_t const  kdtGeomJobs 
)
inlinestatic

Build a multi-thread simple KDTree factory.

Parameters
kdtNodeJobsNumber of threads for node-level parallelization
kdtGeomJobsNumber of threads for geometry-level parallelization
Returns
Built multi-thread simple KDTree factory
See also
KDTreeFactoryMaker::makeSimple
SimpleKDTreeFactory
SimpleKDTreeGeometricStrategy
MultiThreadKDTreeFactory

Member Data Documentation

◆ sysThreads

size_t const KDTreeFactoryMaker::sysThreads
staticprivate
Initial value:
=
std::thread::hardware_concurrency()

Number of threads available in the system.


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