Lluvia
ImageAxis.h
Go to the documentation of this file.
1 
8 #ifndef LLUVIA_CORE_IMAGE_IMAGE_AXIS_H_
9 #define LLUVIA_CORE_IMAGE_IMAGE_AXIS_H_
10 
12 
13 namespace ll {
14 
18 enum class ImageAxis : ll::enum_t {
19  U = 0,
20  V = 1,
21  W = 2
22 };
23 
24 namespace impl {
25 
31  constexpr const std::array<std::tuple<const char*, ll::ImageAxis>, 3> ImageAxisStrings {{
32  std::make_tuple("U", ll::ImageAxis::U),
33  std::make_tuple("V", ll::ImageAxis::V),
34  std::make_tuple("W", ll::ImageAxis::W),
35  }};
36 
37 } // namespace impl
38 
39 template <typename T = std::string>
40 inline T imageAxisToString(ll::ImageAxis&& axis) noexcept
41 {
42  return impl::enumToString<ll::ImageAxis, ll::impl::ImageAxisStrings.size(), ll::impl::ImageAxisStrings>(std::forward<ll::ImageAxis>(axis));
43 }
44 
45 template <typename T>
46 inline ll::ImageAxis stringToImageAxis(T&& stringValue)
47 {
48  return impl::stringToEnum<ll::ImageAxis, T, ll::impl::ImageAxisStrings.size(), ll::impl::ImageAxisStrings>(std::forward<T>(stringValue));
49 }
50 
51 } // namespace ll
52 
53 #endif // LLUVIA_CORE_IMAGE_IMAGE_AXIS_H_
Enums.
E stringToEnum(T &&stringValue)
Definition: enums.h:172
std::string enumToString(E &&value) noexcept
Definition: enums.h:146
constexpr const std::array< std::tuple< const char *, ll::ImageAxis >, 3 > ImageAxisStrings
Image axis strings used for converting ll::ImageAxis to std::string and vice-versa.
Definition: ImageAxis.h:31
Definition: Buffer.h:28
T imageAxisToString(ll::ImageAxis &&axis) noexcept
Definition: ImageAxis.h:40
ll::ImageAxis stringToImageAxis(T &&stringValue)
Definition: ImageAxis.h:46
ImageAxis
Image axis enumeration.
Definition: ImageAxis.h:18
uint32_t enum_t
Definition: enums.h:23