Helios++
Helios software for LiDAR simulations
|
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>
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... | |
![]() | |
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 | |
KDTreeNode * | node |
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. | |
![]() | |
std::shared_ptr< SharedSubTaskCompletionHandler > | ch |
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. | |
Shared sub-task to build children nodes when building a Simple KDTree on all geometry-level depths except for the last one.
|
inlineoverridevirtual |
Implementation of the build children nodes method.
Implements SharedSubTask.