gtsam_points
Loading...
Searching...
No Matches
texture_renderer_input.hpp
Go to the documentation of this file.
1#ifndef GLK_TEXTURE_RENDERER_INPUT_HPP
2#define GLK_TEXTURE_RENDERER_INPUT_HPP
3
4#include <array>
5#include <optional>
6#include <unordered_map>
7
8#include <Eigen/Core>
9
10namespace glk {
11
13 using Ptr = std::shared_ptr<TextureRendererInput>;
14
18
19 template<typename T>
20 void set(const std::string& name, const T& value);
21
22 template<typename T>
23 std::optional<T> get(const std::string& name) const;
24
25private:
26 std::unordered_map<std::string, unsigned int> params_int;
27 std::unordered_map<std::string, std::array<float, 16>> params_16f;
28};
29
30template<>
31inline void TextureRendererInput::set(const std::string& name, const Eigen::Matrix4f& value) {
32 std::copy(value.data(), value.data() + 16, params_16f[name].begin());
33}
34
35template <>
36inline std::optional<Eigen::Matrix4f> TextureRendererInput::get(const std::string& name) const {
37 auto found = params_16f.find(name);
38 if(found == params_16f.end()) {
39 return std::nullopt;
40 }
41
42 return Eigen::Map<const Eigen::Matrix4f>(found->second.data()).eval();
43}
44
45template<>
46inline void TextureRendererInput::set(const std::string& name, const unsigned int& value) {
47 params_int[name] = value;
48}
49
50template<>
51inline std::optional<unsigned int> TextureRendererInput::get(const std::string& name) const {
52 auto found = params_int.find(name);
53 if(found == params_int.end()) {
54 return std::nullopt;
55 }
56
57 return found->second;
58}
59} // namespace glk
60
61#endif
Definition async_buffer_copy.hpp:6
std::enable_if_t< needs_aligned_allocator< T >::value, std::shared_ptr< T > > make_shared(Args &&... args)
Definition make_shared.hpp:20
Definition texture_renderer_input.hpp:12
std::optional< T > get(const std::string &name) const
std::shared_ptr< TextureRendererInput > Ptr
Definition texture_renderer_input.hpp:13
void set(const std::string &name, const T &value)
EIGEN_MAKE_ALIGNED_OPERATOR_NEW TextureRendererInput()
Definition texture_renderer_input.hpp:16
~TextureRendererInput()
Definition texture_renderer_input.hpp:17