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