Dandelion 1.1.1
A light-weight 3D builder for educational usage
载入中...
搜索中...
未找到
BVH类 参考

Public 成员函数

 BVH (const GL::Mesh &mesh)
 BVH加速结构的构造函数
 
void build ()
 
void recursively_delete (BVHNode *node)
 
size_t count_nodes (BVHNode *node)
 
std::optional< Intersectionintersect (const Ray &ray, const GL::Mesh &mesh, const Eigen::Matrix4f obj_model)
 BVH加速求交的函数调用接口
 
std::optional< Intersectionray_node_intersect (BVHNode *node, const Ray &ray) const
 获取BVH求交的结果
 
BVHNoderecursively_build (std::vector< size_t > faces_idx)
 

Public 属性

BVHNoderoot
 
const GL::Meshmesh
 
std::vector< size_t > primitives
 
Eigen::Matrix4f model
 

构造及析构函数说明

◆ BVH()

BVH::BVH ( const GL::Mesh & mesh)

BVH加速结构的构造函数

传入当前mesh的类型

参数
mesh_typemesh的类型

成员函数说明

◆ build()

void BVH::build ( )

建立整个object的bvh的函数调用接口

◆ count_nodes()

size_t BVH::count_nodes ( BVHNode * node)

统计当前bvh的节点总数

◆ intersect()

optional< Intersection > BVH::intersect ( const Ray & ray,
const GL::Mesh & mesh,
const Eigen::Matrix4f obj_model )

BVH加速求交的函数调用接口

参数
ray求交的射线
mesh当前的mesh
obj_model当前mesh所在object的model矩阵

◆ ray_node_intersect()

optional< Intersection > BVH::ray_node_intersect ( BVHNode * node,
const Ray & ray ) const

获取BVH求交的结果

参数
node求交的节点
ray求交的射线

◆ recursively_build()

BVHNode * BVH::recursively_build ( std::vector< size_t > faces_idx)

建立整个object的bvh的函数具体实现,边界条件为覆盖的面片数<=1

◆ recursively_delete()

void BVH::recursively_delete ( BVHNode * node)

删除建立的整个bvh

类成员变量说明

◆ mesh

const GL::Mesh& BVH::mesh

当前bvh所在object的mesh

◆ model

Eigen::Matrix4f BVH::model

当前bvh所在object的model矩阵

◆ primitives

std::vector<size_t> BVH::primitives

当前mesh的所有图元索引

◆ root

BVHNode* BVH::root

整个bvh的根节点


该类的文档由以下文件生成: