21# define PONCA_MULTIARCH __host__ __device__
22# define PONCA_MULTIARCH_HOST __host__
24# define PONCA_MULTIARCH
25# define PONCA_MULTIARCH_HOST
28# if defined(__GNUC__) && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || (__GNUC__ >= 5))
29# if defined(nullptr_t) || (__cplusplus > 199711L) || defined(HACK_GCC_ITS_CPP0X)
37# define PONCA_MULTIARCH_INCLUDE_STD(FILENAME) "defines.h"
43# define PONCA_MULTIARCH_CU_STD_FUNC(FUNC) using cuda::std::FUNC;
44# define PONCA_MULTIARCH_STD_MATH(FUNC)
45# define PONCA_MULTIARCH_STD_MATH_NAMESPACE(FUNC) FUNC
48# define PONCA_MULTIARCH_CU_STD_NAMESPACE(FUNC) cuda::std::FUNC
49# define PONCA_MULTIARCH_INCLUDE_CU_STD(FILENAME) <cuda/std/FILENAME>
51# define PONCA_CUDA_ARCH
53# define PONCA_MULTIARCH_INCLUDE_STD(FILENAME) <FILENAME>
54# define PONCA_MULTIARCH_CU_STD_FUNC(FUNC) using std::FUNC;
55# define PONCA_MULTIARCH_STD_MATH(FUNC) using std::FUNC;
56# define PONCA_MULTIARCH_STD_MATH_NAMESPACE(FUNC) std::FUNC
57# define PONCA_MULTIARCH_CU_STD_NAMESPACE(FUNC) std::FUNC
58# define PONCA_MULTIARCH_INCLUDE_CU_STD(FILENAME) <FILENAME>
59# define PONCA_CPU_ARCH
63# define STD_SAFE_AT(C, i) C[i]
65# define STD_SAFE_AT(C, i) C.at(i)
70# define M_PI 3.141592653589793238462643383279502884197169399375105820974944592307816406
85 template <
typename T,
typename =
void>
92 struct hasNormal<T, std::
void_t<decltype(std::declval<T>().normal())>> : std::true_type
Aggregator class used to declare specialized structures using CRTP.
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.