Helios++
Helios software for LiDAR simulations
SimpleKDTreeBuildChildrenNodesSubTask Class Reference

Shared sub-task to build children nodes when building a Simple KDTree on all geometry-level depths except for the last one. More...

#include <SimpleKDTreeBuildChildrenNodesSubTask.h>

Inheritance diagram for SimpleKDTreeBuildChildrenNodesSubTask:
Collaboration diagram for SimpleKDTreeBuildChildrenNodesSubTask:

Public Member Functions

 SimpleKDTreeBuildChildrenNodesSubTask (std::shared_ptr< SharedTaskSequencer > ch, KDTreeNode *node, vector< Primitive * > &primitives, int const depth, int const index, std::function< void(LightKDTreeNode *&child, KDTreeNode *node)>setChild, std::function< KDTreeNode *(KDTreeNode *, bool const, vector< Primitive * > &, int const, int const)> buildRecursive)
 Main constructor for Simple KDTree build children nodes sub-task.
 
void run () override
 Implementation of the build children nodes method. More...
 
- Public Member Functions inherited from SharedSubTask
 SharedSubTask (std::shared_ptr< SharedSubTaskCompletionHandler > ch)
 Default constructor for shared sub-task. More...
 
virtual void operator() ()
 The functor that will be called by any thread. It calls the SharedSubTask::run method to solve/compute the sub-task. Also, once the task has been computed, it delegates upon the task completion handler. More...
 
virtual void postProcess ()
 Post-processing to be applied after shared sub-task has finished. By default it is a void function which does nothing, but it can be overridden.
 
virtual size_t getKey ()
 Obtain the key of the shared sub-task inside the shared task sequencer context. More...
 
virtual void setKey (size_t const key)
 Set the key of the shared sub-task inside the shared task sequencer context. More...
 
virtual std::shared_ptr< boost::thread > getThread ()
 Get the thread associated to the shared sub-task. More...
 
virtual void setThread (std::shared_ptr< boost::thread > thread)
 Set the thread associated to the shared sub-task. More...
 

Protected Attributes

KDTreeNodenode
 Node which children will be built if possible, otherwise it will be made a leaf node.
 
vector< Primitive * > & primitives
 Primitives of the node itself.
 
int const depth
 Depth of current node.
 
int const index
 Index of current node at current depth.
 
std::function< void(LightKDTreeNode *&child, KDTreeNode *node)> setChild
 Function to set child node.
 
std::function< KDTreeNode *(KDTreeNode *, bool const, vector< Primitive * > &, int const, int const)> buildRecursive
 Function to recursively build children nodes.
 
- Protected Attributes inherited from SharedSubTask
std::shared_ptr< SharedSubTaskCompletionHandlerch
 The shared sub-task completion handler that handles what must be done after a shared sub-task execution has been finished. The most paradigmatic case of a valid task completion handler is the shared task sequencer. More...
 
size_t key = 0
 The key identifying the shared sub task inside the shared task sequencer context. More...
 
std::shared_ptr< boost::thread > thread = nullptr
 The thread associated with the shared sub-tasks. It is nullptr until the shared sub-task has been started by its corresponding shared task sequencer.
 

Detailed Description

Shared sub-task to build children nodes when building a Simple KDTree on all geometry-level depths except for the last one.

Author
Alberto M. Esmoris Pena
Version
1.0
See also
SharedSubTask
SimpleKDTreeFactory
MultiThreadKDTreeFactory

Member Function Documentation

◆ run()

void SimpleKDTreeBuildChildrenNodesSubTask::run ( )
inlineoverridevirtual

Implementation of the build children nodes method.

See also
SharedSubTask::run

Implements SharedSubTask.


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