25class BVHSpatialSplitBuildTask;
63 const int object_index);
69 const int object_index);
106 void rotate(
BVHNode *node,
const int max_depth,
const int iterations);
ATTR_WARN_UNUSED_RESULT const size_t num
void add_reference_triangles(BoundBox &root, BoundBox ¢er, Mesh *mesh, const int object_index)
BVHBuild(const vector< Object * > &objects, array< int > &prim_type, array< int > &prim_index, array< int > &prim_object, array< float2 > &prim_time, const BVHParams ¶ms, Progress &progress)
void thread_build_spatial_split_node(InnerNode *inner, const int child, const BVHRange &range, vector< BVHReference > &references, int level)
unique_ptr< BVHNode > run()
void rotate(BVHNode *node, const int max_depth)
bool range_within_max_leaf_size(const BVHRange &range, const vector< BVHReference > &references) const
thread_spin_lock spatial_spin_lock
void add_references(BVHRange &root)
void add_reference_object(BoundBox &root, BoundBox ¢er, Object *ob, const int i)
friend class BVHSpatialSplit
unique_ptr< BVHNode > create_leaf_node(const BVHRange &range, const vector< BVHReference > &references)
friend class BVHBuildTask
size_t spatial_free_index
void add_reference_curves(BoundBox &root, BoundBox ¢er, Hair *hair, const int object_index)
BVHUnaligned unaligned_heuristic
friend class BVHObjectBinning
unique_ptr< BVHNode > create_object_leaf_nodes(const BVHReference *ref, const int start, const int num)
array< float2 > & prim_time
vector< Object * > objects
unique_ptr< BVHNode > build_node(const BVHRange &range, vector< BVHReference > &references, const int level, BVHSpatialStorage *storage)
array< int > & prim_index
enumerable_thread_specific< BVHSpatialStorage > spatial_storage
friend class BVHSpatialSplitBuildTask
size_t progress_original_total
float spatial_min_overlap
int num_original_references
void thread_build_node(InnerNode *inner, const int child, const BVHObjectBinning &range, const int level)
double progress_start_time
array< int > & prim_object
friend class BVHMixedSplit
vector< BVHReference > references
void add_reference_points(BoundBox &root, BoundBox ¢er, PointCloud *pointcloud, const int i)
void add_reference_geometry(BoundBox &root, BoundBox ¢er, Geometry *geom, const int object_index)
friend class BVHObjectSplit
#define CCL_NAMESPACE_END
tbb::spin_mutex thread_spin_lock