3 #include <SharedSubTask.h>
4 #include <SharedTaskSequencer.h>
70 std::shared_ptr<SharedTaskSequencer>
ch,
Abstract class defining the common behavior for all primitives.
Definition: Primitive.h:24
A shared task is said to be a collection of shared sub-tasks. Each shared sub-task can be computed in...
Definition: SharedSubTask.h:16
std::shared_ptr< SharedSubTaskCompletionHandler > ch
The shared sub-task completion handler that handles what must be done after a shared sub-task executi...
Definition: SharedSubTask.h:28
Shared sub-task to populate splits when building a Simple KDTree. It is meant to be used at geometry-...
Definition: SimpleKDTreePopulateSplitsSubTask.h:17
vector< Primitive * > & leftPrimitives
Where primitives of left split must be stored.
Definition: SimpleKDTreePopulateSplitsSubTask.h:36
std::function< void(Primitive *p, int const splitAxis, double const splitPos, vector< Primitive * > &leftPrimitives, vector< Primitive * > &rightPrimitives)> onPopulateSplitsDigestPrimitive
Function to digest a primitive when populating splits.
Definition: SimpleKDTreePopulateSplitsSubTask.h:61
SimpleKDTreePopulateSplitsSubTask(std::shared_ptr< SharedTaskSequencer > ch, vector< Primitive * > const &primitives, int const splitAxis, double const splitPos, vector< Primitive * > &leftPrimitives, vector< Primitive * > &rightPrimitives, size_t const startPrimitive, size_t const endPrimitive, std::function< void(Primitive *p, int const splitAxis, double const splitPos, vector< Primitive * > &leftPrimitives, vector< Primitive * > &rightPrimitives)> onPopulateSplitsDigestPrimitive)
Main constructor for Simple KDTree populate splits sub-task.
Definition: SimpleKDTreePopulateSplitsSubTask.h:69
void run() override
Implementation of the populate splits method.
Definition: SimpleKDTreePopulateSplitsSubTask.h:105
size_t const endPrimitive
Index of primitive (exclusive) at which the sub-task must end iterating.
Definition: SimpleKDTreePopulateSplitsSubTask.h:50
vector< Primitive * > & rightPrimitives
Where primitives of right split must be stored.
Definition: SimpleKDTreePopulateSplitsSubTask.h:40
double const splitPos
Position on given axis of the split point.
Definition: SimpleKDTreePopulateSplitsSubTask.h:32
vector< Primitive * > const & primitives
Primitives of node being splitted.
Definition: SimpleKDTreePopulateSplitsSubTask.h:24
int const splitAxis
Index of axis defining the split.
Definition: SimpleKDTreePopulateSplitsSubTask.h:28
size_t const startPrimitive
Index of primitive (inclusive) at which the sub-task must start to iterate.
Definition: SimpleKDTreePopulateSplitsSubTask.h:45