HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CE_BVH Class Reference

#include <CE_BVH.h>

Public Types

enum  PrimType { PrimType::TRI, PrimType::QUAD, PrimType::TET, PrimType::POINT }
 

Public Member Functions

 CE_BVH ()
 
 ~CE_BVH ()
 
void build (const CE_Int32Array &trisingrp, const cl::Buffer &primptsidx, const cl::Buffer &primpts, const cl::Buffer &P, PrimType primtype=PrimType::TRI, bool refitTets=true)
 
void buildPoints (const CE_Int32Array &pts, const cl::Buffer &P)
 Convenience overload for point BVH — no prim connectivity needed. More...
 
void buildEmpty ()
 
void refit (const CE_Int32Array &trisingrp, const cl::Buffer &primptsidx, const cl::Buffer &primpts, const cl::Buffer &P)
 
void clear ()
 
bool isBuilt () const
 
const cl::BuffernodeBuffer () const
 
const cl::BufferverticesBuffer () const
 
const cl::BufferprimIdxBuffer () const
 
const cl::BufferptsBuffer () const
 

Detailed Description

Definition at line 26 of file CE_BVH.h.

Member Enumeration Documentation

enum CE_BVH::PrimType
strong
Enumerator
TRI 
QUAD 
TET 
POINT 

Definition at line 32 of file CE_BVH.h.

Constructor & Destructor Documentation

CE_BVH::CE_BVH ( )
CE_BVH::~CE_BVH ( )

Member Function Documentation

void CE_BVH::build ( const CE_Int32Array trisingrp,
const cl::Buffer primptsidx,
const cl::Buffer primpts,
const cl::Buffer P,
PrimType  primtype = PrimType::TRI,
bool  refitTets = true 
)
void CE_BVH::buildEmpty ( )

Build a valid but empty point BVH. All traversal queries return zero results immediately (the root node's child AABBs are at infinity so the distance check in BVH_TRAVERSE_BEGIN exceeds any finite threshold). All four kernel buffers (nodes, verts, idx, pts) are non-null so they can be bound to kernel arguments without error.

void CE_BVH::buildPoints ( const CE_Int32Array pts,
const cl::Buffer P 
)

Convenience overload for point BVH — no prim connectivity needed.

void CE_BVH::clear ( )
bool CE_BVH::isBuilt ( ) const
const cl::Buffer& CE_BVH::nodeBuffer ( ) const
inline

Definition at line 66 of file CE_BVH.h.

const cl::Buffer& CE_BVH::primIdxBuffer ( ) const
inline

Definition at line 72 of file CE_BVH.h.

const cl::Buffer& CE_BVH::ptsBuffer ( ) const
inline

Definition at line 78 of file CE_BVH.h.

void CE_BVH::refit ( const CE_Int32Array trisingrp,
const cl::Buffer primptsidx,
const cl::Buffer primpts,
const cl::Buffer P 
)
const cl::Buffer& CE_BVH::verticesBuffer ( ) const
inline

Definition at line 69 of file CE_BVH.h.


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