13 #include <type_traits>
35 static constexpr
size_t size() noexcept
37 return sizeof...(Elements);
45 static_assert(
I <
sizeof...(Elements));
46 return std::tuple_element_t<I, std::tuple<TypeForValue<T, Elements>...>>::value;
52 template<T Element>
static constexpr
bool contains()
54 return ((Element == Elements) || ...);
66 static constexpr
size_t size() noexcept
74 template<
size_t I>
using at_index = std::tuple_element_t<
I, std::tuple<
T...>>;
79 template<
typename T,
T Value,
size_t...
I>
81 std::index_sequence<I...> )
86 template<
typename T,
T Value1,
T Value2,
size_t... Value1Indices,
size_t...
I>
88 (
ValueSequence<size_t, Value1Indices...>::template contains<I>() ? Value1 :
91 std::index_sequence<I...> )
101 template<
typename T, T Value,
size_t Size>
103 std::make_index_sequence<Size>()));
109 template<
typename T,
T Value1,
T Value2,
size_t Size,
size_t... Value1Indices>
113 namespace parameter_pack_utils_static_tests {
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a producing a negative Combine Generate a color from its and blue Hue Saturation Value
ValueSequence< T,(ValueSequence< size_t, Value1Indices... >::template contains< I >) ? Value1 :Value2)... > make_two_value_sequence_impl(ValueSequence< size_t, Value1Indices... >, std::index_sequence< I... >)
ValueSequence< T,((I==0) ? Value :Value)... > make_value_sequence_impl(std::index_sequence< I... >)
decltype(detail::make_value_sequence_impl< T, Value >(std::make_index_sequence< Size >())) make_value_sequence
decltype(detail::make_two_value_sequence_impl< T, Value1, Value2 >(ValueSequence< size_t, Value1Indices... >(), std::make_index_sequence< Size >())) make_two_value_sequence
static constexpr size_t size() noexcept
std::tuple_element_t< I, std::tuple< T... > > at_index
static constexpr size_t size() noexcept
static constexpr T at_index()
static constexpr bool contains()