50 template<
typename TDataType>
54 typedef typename TDataType::Real
Real;
55 typedef typename TDataType::Coord
Coord;
56 typedef typename ::dyno::TAlignedBox3D<Real>
AABB;
57 typedef typename ::dyno::BVHNode
Node;
58 typedef typename ::dyno::BVHNode*
NodePtr;
::dyno::TAlignedBox3D< Real > AABB
void construct(const DArray< AABB > &aabb)
CPU_FUNC DArray< AABB > & getSortedAABBs()
GPU_FUNC AABB getAABB(const uint idx) const
GPU_FUNC NodePtr getRoot() const
::dyno::BVHNode * NodePtr
DArray< uint64 > mMortonCodes
GPU_FUNC void requestIntersectionIds(List< int > &ids, const AABB &queryAABB, const int queryId=EMPTY) const
GPU_FUNC uint getObjectIdx(const uint idx) const
GPU_FUNC uint requestIntersectionNumber(const AABB &queryAABB, const int queryId=EMPTY) const
DArray< AABB > mSortedAABBs
void release()
Call release() to release allocated memory explicitly, do not call this function from the decontructo...
DArray< uint > mSortedObjectIds
Be aware do not use this structure on GPU if the data size is large.
This is an implementation of AdditiveCCD based on peridyno.
Array< T, DeviceType::GPU > DArray