Blender  V3.3
Public Member Functions | Public Attributes | Protected Member Functions | Friends | List of all members
BVH2 Class Reference

#include <bvh2.h>

Inheritance diagram for BVH2:
BVH

Public Member Functions

void build (Progress &progress, Stats *stats)
 
void refit (Progress &progress)
 
- Public Member Functions inherited from BVH
virtual ~BVH ()
 
virtual void replace_geometry (const vector< Geometry * > &geometry, const vector< Object * > &objects)
 

Public Attributes

PackedBVH pack
 
- Public Attributes inherited from BVH
BVHParams params
 
vector< Geometry * > geometry
 
vector< Object * > objects
 

Protected Member Functions

 BVH2 (const BVHParams &params, const vector< Geometry * > &geometry, const vector< Object * > &objects)
 
virtual BVHNodewiden_children_nodes (const BVHNode *root)
 
void pack_nodes (const BVHNode *root)
 
void pack_leaf (const BVHStackEntry &e, const LeafNode *leaf)
 
void pack_inner (const BVHStackEntry &e, const BVHStackEntry &e0, const BVHStackEntry &e1)
 
void pack_aligned_inner (const BVHStackEntry &e, const BVHStackEntry &e0, const BVHStackEntry &e1)
 
void pack_aligned_node (int idx, const BoundBox &b0, const BoundBox &b1, int c0, int c1, uint visibility0, uint visibility1)
 
void pack_unaligned_inner (const BVHStackEntry &e, const BVHStackEntry &e0, const BVHStackEntry &e1)
 
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)
 
void refit_nodes ()
 
void refit_node (int idx, bool leaf, BoundBox &bbox, uint &visibility)
 
void refit_primitives (int start, int end, BoundBox &bbox, uint &visibility)
 
void pack_primitives ()
 
void pack_triangle (int idx, float4 storage[3])
 
void pack_instances (size_t nodes_size, size_t leaf_nodes_size)
 
- Protected Member Functions inherited from BVH
 BVH (const BVHParams &params, const vector< Geometry * > &geometry, const vector< Object * > &objects)
 

Friends

class BVH
 

Additional Inherited Members

- Static Public Member Functions inherited from BVH
static BVHcreate (const BVHParams &params, const vector< Geometry * > &geometry, const vector< Object * > &objects, Device *device)
 

Detailed Description

Definition at line 33 of file bvh2.h.

Constructor & Destructor Documentation

◆ BVH2()

BVH2::BVH2 ( const BVHParams params,
const vector< Geometry * > &  geometry,
const vector< Object * > &  objects 
)
protected

Definition at line 30 of file bvh2.cpp.

Member Function Documentation

◆ build()

void BVH2::build ( Progress progress,
Stats stats 
)

◆ pack_aligned_inner()

void BVH2::pack_aligned_inner ( const BVHStackEntry e,
const BVHStackEntry e0,
const BVHStackEntry e1 
)
protected

◆ pack_aligned_node()

void BVH2::pack_aligned_node ( int  idx,
const BoundBox b0,
const BoundBox b1,
int  c0,
int  c1,
uint  visibility0,
uint  visibility1 
)
protected

◆ pack_inner()

void BVH2::pack_inner ( const BVHStackEntry e,
const BVHStackEntry e0,
const BVHStackEntry e1 
)
protected

Definition at line 129 of file bvh2.cpp.

References e, BVHNode::is_unaligned, BVHStackEntry::node, pack_aligned_inner(), and pack_unaligned_inner().

Referenced by pack_nodes().

◆ pack_instances()

void BVH2::pack_instances ( size_t  nodes_size,
size_t  leaf_nodes_size 
)
protected

◆ pack_leaf()

void BVH2::pack_leaf ( const BVHStackEntry e,
const LeafNode leaf 
)
protected

◆ pack_nodes()

void BVH2::pack_nodes ( const BVHNode root)
protected

◆ pack_primitives()

void BVH2::pack_primitives ( )
protected

◆ pack_triangle()

void BVH2::pack_triangle ( int  idx,
float4  storage[3] 
)
protected

◆ pack_unaligned_inner()

void BVH2::pack_unaligned_inner ( const BVHStackEntry e,
const BVHStackEntry e0,
const BVHStackEntry e1 
)
protected

◆ pack_unaligned_node()

void BVH2::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 
)
protected

◆ refit()

void BVH2::refit ( Progress progress)

◆ refit_node()

void BVH2::refit_node ( int  idx,
bool  leaf,
BoundBox bbox,
uint visibility 
)
protected

◆ refit_nodes()

void BVH2::refit_nodes ( )
protected

Definition at line 304 of file bvh2.cpp.

References BoundBox::empty, pack, BVH::params, refit_node(), PackedBVH::root_index, and BVHParams::top_level.

Referenced by refit().

◆ refit_primitives()

void BVH2::refit_primitives ( int  start,
int  end,
BoundBox bbox,
uint visibility 
)
protected

◆ widen_children_nodes()

BVHNode * BVH2::widen_children_nodes ( const BVHNode root)
protectedvirtual

Definition at line 101 of file bvh2.cpp.

Referenced by build().

Friends And Related Function Documentation

◆ BVH

friend class BVH
friend

Definition at line 42 of file bvh2.h.

Member Data Documentation

◆ pack

PackedBVH BVH2::pack

The documentation for this class was generated from the following files: