Skip to content

File hmd_config.hpp

File List > data_format > hmd_config.hpp

Go to the documentation of this file

#pragma once

#ifdef __cplusplus
#    include "illixr/switchboard.hpp"

#    include 
#else
#    include 
#endif
struct hmd_config {
    uint32_t recommended_image_width;
    uint32_t recommended_image_height;

    float fov_angle_left[2];
    float fov_angle_right[2];
    float fov_angle_up[2];
    float fov_angle_down[2];
};

#ifdef __cplusplus
namespace ILLIXR::data_format {

struct hmd_config_data : public switchboard::event {
    hmd_config config;

    void get_cfg(hmd_config& cfg, float overscan = 1.f) const {
        cfg.recommended_image_width  = (uint32_t) (config.recommended_image_width * overscan);
        cfg.recommended_image_height = (uint32_t) (config.recommended_image_height * overscan);

        for (auto i = 0; i < 2; i++) {
            cfg.fov_angle_left[i]  = config.fov_angle_left[i] * overscan;
            cfg.fov_angle_right[i] = config.fov_angle_right[i] * overscan;
            cfg.fov_angle_up[i]    = config.fov_angle_up[i] * overscan;
            cfg.fov_angle_down[i]  = config.fov_angle_down[i] * overscan;
        }
    }
};
} // namespace ILLIXR::data_format
#endif