Skip to content

Namespace muda::lbvh

Namespace List > muda > lbvh

Namespaces

Type Name
namespace details

Classes

Type Name
struct AABB <typename T>
class BVH <typename Real, typename Object, typename AABBGetter, typename MortonCodeCalculator>
struct DefaultMortonCodeCalculator <typename Real, typename Object>
struct query_nearest <typename Real>
struct query_overlap <typename Real>
struct vector_of <typename T>
struct vector_of< double > <>
struct vector_of< float > <>

Public Types

Type Name
typedef details::BVHViewerBase< false, Real, Object > BVHViewer
typedef details::BVHViewerBase< true, Real, Object > CBVHViewer
typedef typename vector_of< T >::type vector_of_t

Public Functions

Type Name
MUDA_GENERIC vector_of< T >::type centroid (const AABB< T > & box) noexcept
__device__ MUDA_INLINE int common_upper_bits (const unsigned int lhs, const unsigned int rhs) noexcept
__device__ MUDA_INLINE int common_upper_bits (const unsigned long long int lhs, const unsigned long long int rhs) noexcept
MUDA_GENERIC MUDA_INLINE std::uint32_t expand_bits (std::uint32_t v) noexcept
__device__ T infinity () noexcept
__device__ double infinity< double > () noexcept
__device__ float infinity< float > () noexcept
MUDA_GENERIC bool intersects (const AABB< T > & lhs, const AABB< T > & rhs) noexcept
MUDA_GENERIC AABB< double > merge (const AABB< double > & lhs, const AABB< double > & rhs) noexcept
MUDA_GENERIC AABB< float > merge (const AABB< float > & lhs, const AABB< float > & rhs) noexcept
MUDA_GENERIC float mindist (const AABB< float > & lhs, const float4 & rhs) noexcept
MUDA_GENERIC double mindist (const AABB< double > & lhs, const double4 & rhs) noexcept
MUDA_GENERIC float minmaxdist (const AABB< float > & lhs, const float4 & rhs) noexcept
MUDA_GENERIC double minmaxdist (const AABB< double > & lhs, const double4 & rhs) noexcept
MUDA_GENERIC MUDA_INLINE std::uint32_t morton_code (float4 xyz, float resolution=1024.0f) noexcept
MUDA_GENERIC MUDA_INLINE std::uint32_t morton_code (double4 xyz, double resolution=1024.0) noexcept
MUDA_GENERIC query_nearest< float > nearest (const float4 & point) noexcept
MUDA_GENERIC query_nearest< float > nearest (const float3 & point) noexcept
MUDA_GENERIC query_nearest< double > nearest (const double4 & point) noexcept
MUDA_GENERIC query_nearest< double > nearest (const double3 & point) noexcept
MUDA_GENERIC query_overlap< Real > overlaps (const AABB< Real > & region) noexcept
MUDA_HOST uint32_t query (const BVH< Real, Objects, AABBGetter, MortonCodeCalculator > & tree, const query_overlap< Real > q, OutputBackInserter outiter) noexcept
MUDA_HOST std::pair< uint32_t, Real > query (const BVH< Real, Objects, AABBGetter, MortonCodeCalculator > & tree, const query_nearest< Real > & q, DistanceCalculator calc_dist) noexcept

Public Types Documentation

typedef BVHViewer

using muda::lbvh::BVHViewer = typedef details::BVHViewerBase<false, Real, Object>;

typedef CBVHViewer

using muda::lbvh::CBVHViewer = typedef details::BVHViewerBase<true, Real, Object>;

typedef vector_of_t

using muda::lbvh::vector_of_t = typedef typename vector_of<T>::type;

Public Functions Documentation

function centroid

template<typename T>
inline MUDA_GENERIC vector_of < T >::type muda::lbvh::centroid (
    const AABB < T > & box
) noexcept

function common_upper_bits

__device__ MUDA_INLINE int muda::lbvh::common_upper_bits (
    const unsigned int lhs,
    const unsigned int rhs
) noexcept

function common_upper_bits

__device__ MUDA_INLINE int muda::lbvh::common_upper_bits (
    const unsigned long long int lhs,
    const unsigned long long int rhs
) noexcept

function expand_bits

MUDA_GENERIC MUDA_INLINE std::uint32_t muda::lbvh::expand_bits (
    std::uint32_t v
) noexcept

function infinity

template<typename T>
inline __device__ T muda::lbvh::infinity () noexcept

function infinity< double >

template<>
inline __device__ double muda::lbvh::infinity< double > () noexcept

function infinity< float >

template<>
inline __device__ float muda::lbvh::infinity< float > () noexcept

function intersects

template<typename T>
inline MUDA_GENERIC bool muda::lbvh::intersects (
    const AABB < T > & lhs,
    const AABB < T > & rhs
) noexcept

function merge

inline MUDA_GENERIC AABB < double > muda::lbvh::merge (
    const AABB < double > & lhs,
    const AABB < double > & rhs
) noexcept

function merge

inline MUDA_GENERIC AABB < float > muda::lbvh::merge (
    const AABB < float > & lhs,
    const AABB < float > & rhs
) noexcept

function mindist

inline MUDA_GENERIC float muda::lbvh::mindist (
    const AABB < float > & lhs,
    const float4 & rhs
) noexcept

function mindist

inline MUDA_GENERIC double muda::lbvh::mindist (
    const AABB < double > & lhs,
    const double4 & rhs
) noexcept

function minmaxdist

inline MUDA_GENERIC float muda::lbvh::minmaxdist (
    const AABB < float > & lhs,
    const float4 & rhs
) noexcept

function minmaxdist

inline MUDA_GENERIC double muda::lbvh::minmaxdist (
    const AABB < double > & lhs,
    const double4 & rhs
) noexcept

function morton_code

MUDA_GENERIC MUDA_INLINE std::uint32_t muda::lbvh::morton_code (
    float4 xyz,
    float resolution=1024.0f
) noexcept

function morton_code

MUDA_GENERIC MUDA_INLINE std::uint32_t muda::lbvh::morton_code (
    double4 xyz,
    double resolution=1024.0
) noexcept

function nearest

inline MUDA_GENERIC query_nearest < float > muda::lbvh::nearest (
    const float4 & point
) noexcept

function nearest

inline MUDA_GENERIC query_nearest < float > muda::lbvh::nearest (
    const float3 & point
) noexcept

function nearest

inline MUDA_GENERIC query_nearest < double > muda::lbvh::nearest (
    const double4 & point
) noexcept

function nearest

inline MUDA_GENERIC query_nearest < double > muda::lbvh::nearest (
    const double3 & point
) noexcept

function overlaps

template<typename Real>
MUDA_GENERIC query_overlap < Real > muda::lbvh::overlaps (
    const AABB < Real > & region
) noexcept

function query

template<typename Real, typename Objects, typename AABBGetter, typename MortonCodeCalculator, typename OutputBackInserter>
MUDA_HOST uint32_t muda::lbvh::query (
    const BVH < Real, Objects, AABBGetter, MortonCodeCalculator > & tree,
    const query_overlap < Real > q,
    OutputBackInserter outiter
) noexcept

function query

template<typename Real, typename Objects, typename AABBGetter, typename MortonCodeCalculator, typename DistanceCalculator>
MUDA_HOST std::pair< uint32_t, Real > muda::lbvh::query (
    const BVH < Real, Objects, AABBGetter, MortonCodeCalculator > & tree,
    const query_nearest < Real > & q,
    DistanceCalculator calc_dist
) noexcept


The documentation for this class was generated from the following file src/muda/ext/geo/lbvh/aabb.h