3 #include <SharedSubTask.h>
4 #include <SharedTaskSequencer.h>
71 double const splitPos,
82 std::shared_ptr<SharedTaskSequencer>
ch,
96 double const splitPos,
124 double const phi =
start + ((double)i)*
step;
Shared sub-task to compute loss nodes when finding the split position during SAH KDTree building....
Definition: SAHKDTreeComputeLossNodesSubTask.h:17
double const start
Start split position.
Definition: SAHKDTreeComputeLossNodesSubTask.h:29
int const splitAxis
Split axis for current partition case.
Definition: SAHKDTreeComputeLossNodesSubTask.h:37
double const minBound
Min coordinate of boundary.
Definition: SAHKDTreeComputeLossNodesSubTask.h:41
double const step
Step size between consecutive split positions.
Definition: SAHKDTreeComputeLossNodesSubTask.h:33
double & partialLoss
Where the best loss must be stored.
Definition: SAHKDTreeComputeLossNodesSubTask.h:59
double & partialSplitPos
Where the split position associated to best loss must be stored.
Definition: SAHKDTreeComputeLossNodesSubTask.h:63
void run() override
Implementation of the compute loss nodes method.
Definition: SAHKDTreeComputeLossNodesSubTask.h:122
size_t const endNode
End node (exclusive) for the iterative workload that must be computed by this sub-task.
Definition: SAHKDTreeComputeLossNodesSubTask.h:55
double const boundLength
Boundary length.
Definition: SAHKDTreeComputeLossNodesSubTask.h:45
size_t const startNode
Start node (inclusive) for the iterative workload that must be computed by this sub-task.
Definition: SAHKDTreeComputeLossNodesSubTask.h:50
std::function< double(vector< Primitive * > const &primitives, int const splitAxis, double const splitPos, double const r)> splitLoss
Function to colculate the loss itself for a given split.
Definition: SAHKDTreeComputeLossNodesSubTask.h:73
vector< Primitive * > const & primitives
Primitives being splitted to compute corresponding loss function.
Definition: SAHKDTreeComputeLossNodesSubTask.h:25
SAHKDTreeComputeLossNodesSubTask(std::shared_ptr< SharedTaskSequencer > ch, vector< Primitive * > const &primitives, double const start, double const step, int const splitAxis, double const minBound, double const boundLength, size_t const startNode, size_t const endNode, double &partialLoss, double &partialSplitPos, std::function< double(vector< Primitive * > const &primitives, int const splitAxis, double const splitPos, double const r)> splitLoss)
Main constructor for SAH KDTree compute loss nodes sub-task.
Definition: SAHKDTreeComputeLossNodesSubTask.h:81
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