22# define PONCA_MULTIARCH __host__ __device__
23# define PONCA_MULTIARCH_HOST __host__
25# define PONCA_MULTIARCH
26# define PONCA_MULTIARCH_HOST
29# if defined(__GNUC__) && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || (__GNUC__ >= 5))
30# if defined(nullptr_t) || (__cplusplus > 199711L) || defined(HACK_GCC_ITS_CPP0X)
38 #define PONCA_MULTIARCH_INCLUDE_STD(FILENAME) "defines.h"
39 #define PONCA_MULTIARCH_STD_MATH(FUNC)
40 #define PONCA_MULTIARCH_STD_MATH_NAMESPACE(FUNC) FUNC
43 #define PONCA_MULTIARCH_CU_STD_NAMESPACE(FUNC) cuda::std::FUNC
44 #define PONCA_MULTIARCH_INCLUDE_CU_STD(FILENAME) <cuda/std/FILENAME>
46 #define PONCA_CUDA_ARCH
48 #define PONCA_MULTIARCH_INCLUDE_STD(FILENAME) <FILENAME>
49 #define PONCA_MULTIARCH_STD_MATH(FUNC) using std::FUNC;
50 #define PONCA_MULTIARCH_STD_MATH_NAMESPACE(FUNC) std::FUNC
51 #define PONCA_MULTIARCH_CU_STD_NAMESPACE(FUNC) std::FUNC
52 #define PONCA_MULTIARCH_INCLUDE_CU_STD(FILENAME) <FILENAME>
53 #define PONCA_CPU_ARCH
57#define STD_SAFE_AT(C,i) C[i]
59#define STD_SAFE_AT(C,i) C.at(i)
74 template <
typename T,
typename =
void>
79 struct hasNormal<T, std::void_t<decltype(std::declval<T>().normal())>> : std::true_type {};
This Source Code Form is subject to the terms of the Mozilla Public License, v.
Utility structure used to detect if a Point has a normal field.