| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #ifndef DEPTHGUIDE_AUGMENT_MANAGER_IMPL_H
- #define DEPTHGUIDE_AUGMENT_MANAGER_IMPL_H
- #include "module/augment_manager.h"
- #include "render_v3/scene_render.h"
- #include <imGuIZMOquat.h>
- #include <Eigen/Geometry>
- struct augment_manager::impl {
- using item_store_base_type = create_config::item_type;
- struct item_store_type : public item_store_base_type {
- using actor_type = scene_render::actor_token_type;
- actor_type actor = nullptr;
- actor_type bg_actor = nullptr;
- bool visible = true;
- glm::vec3 color = {1.0f, 0.0f, 0.0f};
- float ambient_factor = 0.5f;
- float alpha_factor = 0.25f;
- glm::vec3 extra_offset;
- glm::vec3 extra_rotation;
- // combined from extra_offset and extra_rotation
- glm::mat4 extra_transform() const;
- void update_color();
- };
- using item_pool_type =
- std::unordered_map<std::string, item_store_type>;
- item_pool_type item_pool;
- using sophiar_conn_type = create_config::sophiar_conn_type;
- sophiar_conn_type *sophiar_conn = nullptr;
- bool enable = true; // enable this module
- bool enable_light_follow_camera = false;
- bool ignore_missing = false; // show item even if missing from the tracker
- vgm::Vec3 light_direction = {1.0f, 0.0f, 0.0f};
- scene_render ren;
- explicit impl(const create_config &conf);
- void update_scene();
- void render(const camera_info &info);
- void show();
- };
- #endif //DEPTHGUIDE_AUGMENT_MANAGER_IMPL_H
|