Blender V4.3
BVH2 Class Reference

#include <bvh2.h>

Inherits 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 36 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 31 of file bvh2.cpp.

References BVH.

Referenced by pack_instances().

Member Function Documentation

◆ build()

◆ 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 131 of file bvh2.cpp.

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

Referenced by pack_nodes().

◆ pack_instances()

◆ pack_leaf()

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

◆ pack_nodes()

◆ pack_primitives()

void BVH2::pack_primitives ( )
protected

Definition at line 459 of file bvh2.cpp.

References BVH::objects, pack, and Object::visibility_for_tracing().

Referenced by build(), and refit().

◆ 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()

◆ refit_nodes()

void BVH2::refit_nodes ( )
protected

Definition at line 306 of file bvh2.cpp.

References BoundBox::empty, pack, BVH::params, and refit_node().

Referenced by refit().

◆ refit_primitives()

◆ widen_children_nodes()

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

Definition at line 103 of file bvh2.cpp.

Referenced by build().

◆ BVH

friend class BVH
friend

Definition at line 45 of file bvh2.h.

References BVH, e, BVH::geometry, BVH::objects, and BVH::params.

Referenced by BVH, and BVH2().

Member Data Documentation

◆ pack


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