| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #ifndef DEPTHGUIDE_AUGMENT_MANAGER_V2_IMPL_H
- #define DEPTHGUIDE_AUGMENT_MANAGER_V2_IMPL_H
- #include "module/augment_manager_v2.h"
- #include <imGuIZMOquat.h>
- struct augment_manager_v2::impl {
- using item_base_type = create_config::item_type;
- struct item_store_type : public item_base_type {
- // for all
- bool visible = true;
- float alpha = 1.0f;
- // for image
- bool flip_y = false;
- // for mesh
- float ambient_factor = 0.5f;
- bool enable_depth_alpha = false;
- float alpha_factor = 0.1;
- // for pc
- float point_size = 1.0f;
- // for mesh and pc
- glm::vec3 color = {1.0f, 0.0f, 0.0f};
- glm::vec3 extra_offset;
- glm::vec3 extra_rotation;
- glm::mat4 base_transform = glm::mat4(1.0f);
- bool is_tracked = true;
- // combined from extra_offset and extra_rotation
- glm::mat4 extra_transform() const;
- glm::mat4 get_transform() const;
- void update_transform(impl *pimpl);
- };
- augment_manager_v2 *q_this = nullptr;
- create_config conf;
- bool player_allow_control = false;
- using item_list_type =
- std::vector<item_store_type>;
- item_list_type item_list;
- scene_ptr last_scene_info;
- using sophiar_conn_type = create_config::sophiar_conn_type;
- sophiar_conn_type *sophiar_conn = nullptr;
- smart_cuda_stream *stream = 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 = {0.0f, 0.0f, -1.0f};
- camera_augment_helper_v2 *cam_helper = nullptr;
- // low-level GL_POINT info
- struct {
- GLfloat min, max;
- } ps_range;
- GLfloat ps_interval;
- explicit impl(const create_config &conf);
- void update(const camera_info &info, bool no_commit = false);
- void render();
- void show();
- };
- #endif //DEPTHGUIDE_AUGMENT_MANAGER_V2_IMPL_H
|