16 #define BVH_NODE_SIZE 4
17 #define BVH_NODE_LEAF_SIZE 1
18 #define BVH_UNALIGNED_NODE_SIZE 7
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
void pack_instances(size_t nodes_size, size_t leaf_nodes_size)
void pack_aligned_inner(const BVHStackEntry &e, const BVHStackEntry &e0, const BVHStackEntry &e1)
void refit_node(int idx, bool leaf, BoundBox &bbox, uint &visibility)
void pack_triangle(int idx, float4 storage[3])
void pack_leaf(const BVHStackEntry &e, const LeafNode *leaf)
void refit_primitives(int start, int end, BoundBox &bbox, uint &visibility)
void pack_aligned_node(int idx, const BoundBox &b0, const BoundBox &b1, int c0, int c1, uint visibility0, uint visibility1)
void pack_inner(const BVHStackEntry &e, const BVHStackEntry &e0, const BVHStackEntry &e1)
virtual BVHNode * widen_children_nodes(const BVHNode *root)
void pack_unaligned_inner(const BVHStackEntry &e, const BVHStackEntry &e0, const BVHStackEntry &e1)
void pack_nodes(const BVHNode *root)
void refit(Progress &progress)
void pack_unaligned_node(int idx, const Transform &aligned_space0, const Transform &aligned_space1, const BoundBox &b0, const BoundBox &b1, int c0, int c1, uint visibility0, uint visibility1)
BVH2(const BVHParams ¶ms, const vector< Geometry * > &geometry, const vector< Object * > &objects)
void build(Progress &progress, Stats *stats)
vector< Geometry * > geometry
vector< Object * > objects
#define CCL_NAMESPACE_END
BVHStackEntry(const BVHNode *n=0, int i=0)