Skip to content

File utility.h

File List > ext > geo > lbvh > utility.h

Go to the documentation of this file

#pragma once
#include <muda/muda_def.h>
#include <vector_types.h>
#include <math_constants.h>

namespace muda::lbvh
{
template <typename T>
struct vector_of;
template <>
struct vector_of<float>
{
    using type = float4;
};
template <>
struct vector_of<double>
{
    using type = double4;
};

template <typename T>
using vector_of_t = typename vector_of<T>::type;

template <typename T>
__device__ inline T infinity() noexcept;

template <>
__device__ inline float infinity<float>() noexcept
{
    return CUDART_INF_F;
}
template <>
__device__ inline double infinity<double>() noexcept
{
    return CUDART_INF;
}

}  // namespace muda::lbvh