Monado OpenXR Runtime
Loading...
Searching...
No Matches
htc_config.cpp File Reference

Code to parse and handle the modern non-LH HTC configuration data. More...

#include "util/u_json.hpp"
#include "util/u_logging.h"
#include "util/u_debug.h"
#include "math/m_api.h"
#include "htc_config.h"
#include <string.h>
#include <math.h>
#include <optional>
Include dependency graph for htc_config.cpp:

Functions

static const char * htc_colour_name (int colour)
 
static bool htc_get_distortion_parameter_count (enum htc_distortion_model model, size_t &radial, size_t &tangential, size_t &prism, size_t &wvr, bool &modify)
 
static void htc_get_grow_for_undistort (htc_config &config, int eye, float grow_for_undistort[4])
 
static void htc_eye_default_params (htc_eye_distortion &eye, bool left)
 
static bool htc_eye_parse (JSONNode &node, htc_eye_distortion &eye, bool left)
 
static void htc_eye_compute_warp_parameters (htc_eye_distortion &eye, xrt_vec2_i32 &resolution)
 
static void htc_to_lens_pixels (htc_config *config, int eye, const xrt_vec2 *in_uv, xrt_vec2 *out_pixels)
 
static void htc_grow_remap (htc_eye_distortion &dist, int eye, xrt_vec2 *inout_uv)
 
static void apply_pre_warp (htc_eye_distortion &dist, float x, float y, float &out_x, float &out_y)
 
static void apply_traditional (htc_eye_distortion &dist, int channel, int parameters, float x, float y, float &out_x, float &out_y)
 
static void apply_tangential (htc_eye_distortion &dist, int channel, float &x, float &y)
 
static void apply_prism (htc_eye_distortion &dist, int channel, float &x, float &y)
 
static void apply_post_warp (htc_eye_distortion &dist, float x, float y, float &out_x, float &out_y)
 
static void htc_traditional (htc_eye_distortion &dist, int channel, xrt_vec2 *inout_pixels)
 
static void htc_traditional_tangential (htc_eye_distortion &dist, int channel, xrt_vec2 *inout_pixels)
 
static void htc_radial_tangential_prism (htc_eye_distortion &dist, int channel, xrt_vec2 *inout_pixels)
 
static bool htc_strengthen_high_order (htc_eye_distortion &dist, int channel, xrt_vec2 *inout_pixels)
 
static bool htc_distort_internal (htc_config *config, int eye, int channel, const xrt_vec2 *in, xrt_vec2 *out)
 
enum htc_distortion_model htc_string_to_distortion_model (const char *model_str)
 Converts a string to an HTC distortion model enum value.
 
bool htc_config_parse (const char *config_data, size_t config_size, struct htc_config *out_config)
 
bool htc_config_compute_distortion (struct htc_config *config, int eye, const struct xrt_vec2 *in, struct xrt_uv_triplet *out_result)
 
void htc_config_get_fov (htc_config *config, int eye, xrt_fov *out_fov)
 

Variables

static htc_eye_distortion default_distortions [2]
 

Detailed Description

Code to parse and handle the modern non-LH HTC configuration data.

Author
Beyley Cardellio ep1cm.nosp@m.1n10.nosp@m.n123@.nosp@m.gmai.nosp@m.l.com

Function Documentation

◆ htc_string_to_distortion_model()

enum htc_distortion_model htc_string_to_distortion_model ( const char *  model_str)

Converts a string to an HTC distortion model enum value.

Parameters
model_strThe string representation of the distortion model.
Returns
The corresponding htc_distortion_model enum value, or HTC_DISTORTION_MODEL_INVALID if the string is unrecognized.

References U_LOG_W.