5 #ifndef __BVH_BUILD_H__
6 #define __BVH_BUILD_H__
22 class BVHSpatialSplitBuildTask;
NSNotificationCenter * center
BVHNode * create_object_leaf_nodes(const BVHReference *ref, int start, int num)
BVHNode * create_leaf_node(const BVHRange &range, const vector< BVHReference > &references)
void thread_build_spatial_split_node(InnerNode *node, int child, const BVHRange &range, vector< BVHReference > &references, int level)
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)
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, int i)
BVHNode * build_node(const BVHRange &range, vector< BVHReference > &references, int level, BVHSpatialStorage *storage)
void add_reference_curves(BoundBox &root, BoundBox ¢er, Hair *hair, int i)
friend class BVHBuildTask
size_t spatial_free_index
BVHUnaligned unaligned_heuristic
void add_reference_geometry(BoundBox &root, BoundBox ¢er, Geometry *geom, int i)
array< float2 > & prim_time
vector< Object * > objects
array< int > & prim_index
void rotate(BVHNode *node, int max_depth)
enumerable_thread_specific< BVHSpatialStorage > spatial_storage
friend class BVHSpatialSplitBuildTask
size_t progress_original_total
void thread_build_node(InnerNode *node, int child, const BVHObjectBinning &range, int level)
float spatial_min_overlap
int num_original_references
double progress_start_time
array< int > & prim_object
void add_reference_points(BoundBox &root, BoundBox ¢er, PointCloud *pointcloud, int i)
vector< BVHReference > references
void add_reference_triangles(BoundBox &root, BoundBox ¢er, Mesh *mesh, int i)
__forceinline int start() const
#define CCL_NAMESPACE_END
CCL_NAMESPACE_BEGIN typedef std::mutex thread_mutex
tbb::spin_mutex thread_spin_lock