1#ifndef _CHRONOPTICS_TOF_PROCESSING_CONFIG_H_
2#define _CHRONOPTICS_TOF_PROCESSING_CONFIG_H_
4#include <chronoptics/tof/error.h>
12enum tof_flying_shape {
13 TOF_FLYING_SHAPE_PLUS = 0,
14 TOF_FLYING_SHAPE_BOX = 1,
19enum tof_mp_sort_mode {
20 TOF_MP_SORT_MODE_DARKEST = 0,
21 TOF_MP_SORT_MODE_SHORTEST = 1,
22 TOF_MP_SORT_MODE_BRIGHTEST = 2,
23 TOF_MP_SORT_MODE_LONGEST = 3,
24 TOF_MP_SORT_MODE_AGGRESSOR = 4,
25 TOF_MP_SORT_MODE_ADAPTIVE_SHORT_V0 = 5,
26 TOF_MP_SORT_MODE_ADAPTIVE_SHORT_V1 = 6,
27 TOF_MP_SORT_MODE_AGGRESSOR_V2 = 7,
32enum tof_binning_mode {
33 TOF_BINNING_MODE_NORMAL = 0,
34 TOF_BINNING_MODE_SMART = 1,
39enum tof_xyz_dimension {
40 TOF_XYZ_DIMENSION_MILLIMETER = 0,
41 TOF_XYZ_DIMENSION_METER = 1,
46typedef struct tof_processing_config* tof_processing_config_t;
48typedef struct tof_processing_config const* tof_processing_config_ct;
51TOF_EXPORT
void tof_processing_config_delete(tof_processing_config_t ptr);
58TOF_EXPORT tof_processing_config_t tof_processing_config_new_default(tof_error_t *error);
66TOF_EXPORT tof_processing_config_t tof_processing_config_new_from_disk(
const char* file_location, tof_error_t *error);
73TOF_EXPORT
void tof_processing_config_write(tof_processing_config_ct ptr,
const char* file_location, tof_error_t *error);
80TOF_EXPORT
bool tof_processing_config_get_gpu(tof_processing_config_ct ptr, tof_error_t *error);
87TOF_EXPORT
void tof_processing_config_set_gpu(tof_processing_config_t ptr,
bool gpu, tof_error_t *error);
94TOF_EXPORT
bool tof_processing_config_get_calibration_enabled(tof_processing_config_ct ptr, tof_error_t *error);
101TOF_EXPORT
void tof_processing_config_set_calibration_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
108TOF_EXPORT
bool tof_processing_config_get_phase_unwrapping_enabled(tof_processing_config_ct ptr, tof_error_t *error);
115TOF_EXPORT
void tof_processing_config_set_phase_unwrapping_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
122TOF_EXPORT
double tof_processing_config_get_phase_unwrapping_max_offset(tof_processing_config_ct ptr, tof_error_t *error);
129TOF_EXPORT
void tof_processing_config_set_phase_unwrapping_max_offset(tof_processing_config_t ptr,
double max_offset, tof_error_t *error);
138TOF_EXPORT
bool tof_processing_config_get_basic_phase_unwrapping_enabled(tof_processing_config_ct ptr, tof_error_t *error);
147TOF_EXPORT
void tof_processing_config_set_basic_phase_unwrapping_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
154TOF_EXPORT
double tof_processing_config_get_basic_phase_unwrapping_max_offset(tof_processing_config_ct ptr, tof_error_t *error);
161TOF_EXPORT
void tof_processing_config_set_basic_phase_unwrapping_max_offset(tof_processing_config_t ptr,
double offset, tof_error_t *error);
168TOF_EXPORT
bool tof_processing_config_get_mpi_detect_enabled(tof_processing_config_ct ptr, tof_error_t *error);
175TOF_EXPORT
void tof_processing_config_set_mpi_detect_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
182TOF_EXPORT
float tof_processing_config_get_mpi_detect_aratio(tof_processing_config_ct ptr, tof_error_t *error);
189TOF_EXPORT
void tof_processing_config_set_mpi_detect_aratio(tof_processing_config_t ptr,
float aratio, tof_error_t *error);
196TOF_EXPORT
float tof_processing_config_get_mpi_detect_phi_diff(tof_processing_config_ct ptr, tof_error_t *error);
203TOF_EXPORT
void tof_processing_config_set_mpi_detect_phi_diff(tof_processing_config_t ptr,
float phi_diff, tof_error_t *error);
210TOF_EXPORT
bool tof_processing_config_get_mixed_pixel_enabled(tof_processing_config_ct ptr, tof_error_t *error);
217TOF_EXPORT
void tof_processing_config_set_mixed_pixel_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
224TOF_EXPORT
const char* tof_processing_config_get_mixed_pixel_lut_file(tof_processing_config_ct ptr, tof_error_t *error);
231TOF_EXPORT
void tof_processing_config_set_mixed_pixel_lut_file(tof_processing_config_t ptr,
const char* file_location, tof_error_t *error);
238TOF_EXPORT
double tof_processing_config_get_mixed_pixel_amp_min(tof_processing_config_ct ptr, tof_error_t *error);
245TOF_EXPORT
void tof_processing_config_set_mixed_pixel_amp_min(tof_processing_config_t ptr,
double amp_min, tof_error_t *error);
252TOF_EXPORT
enum tof_mp_sort_mode tof_processing_config_get_mixed_pixel_sort_mode(tof_processing_config_ct ptr, tof_error_t *error);
259TOF_EXPORT
void tof_processing_config_set_mixed_pixel_sort_mode(tof_processing_config_t ptr,
enum tof_mp_sort_mode sort_mode, tof_error_t *error);
266TOF_EXPORT
double tof_processing_config_get_mixed_pixel_aratio(tof_processing_config_ct ptr, tof_error_t *error);
273TOF_EXPORT
void tof_processing_config_set_mixed_pixel_aratio(tof_processing_config_t ptr,
double aratio, tof_error_t *error);
280TOF_EXPORT
double tof_processing_config_get_mixed_pixel_phi_diff(tof_processing_config_ct ptr, tof_error_t *error);
287TOF_EXPORT
void tof_processing_config_set_mixed_pixel_phi_diff(tof_processing_config_t ptr,
double phi_diff, tof_error_t *error);
294TOF_EXPORT
double tof_processing_config_get_mixed_pixel_aggressor_threshold(tof_processing_config_ct ptr, tof_error_t *error);
301TOF_EXPORT
void tof_processing_config_set_mixed_pixel_aggressor_threshold(tof_processing_config_t ptr,
double threshold, tof_error_t *error);
309TOF_EXPORT int32_t tof_processing_config_get_mixed_pixel_min_aggressor_size(tof_processing_config_ct ptr, tof_error_t *error);
317TOF_EXPORT
void tof_processing_config_set_mixed_pixel_min_aggressor_size(tof_processing_config_t ptr, int32_t size, tof_error_t *error);
324TOF_EXPORT
double tof_processing_config_get_mixed_pixel_max_error_3f(tof_processing_config_ct ptr, tof_error_t *error);
331TOF_EXPORT
void tof_processing_config_set_mixed_pixel_max_error_3f(tof_processing_config_t ptr,
double max_error_3f, tof_error_t *error);
338TOF_EXPORT
double tof_processing_config_get_mixed_pixel_adaptive_amp_max(tof_processing_config_ct ptr, tof_error_t *error);
345TOF_EXPORT
void tof_processing_config_set_mixed_pixel_adaptive_amp_max(tof_processing_config_t ptr,
double adaptive_amp_max, tof_error_t *error);
352TOF_EXPORT
double tof_processing_config_get_mixed_pixel_adaptive_amp_min(tof_processing_config_ct ptr, tof_error_t *error);
359TOF_EXPORT
void tof_processing_config_set_mixed_pixel_adaptive_amp_min(tof_processing_config_t ptr,
double adaptive_amp_min, tof_error_t *error);
366TOF_EXPORT
double tof_processing_config_get_mixed_pixel_aratio_min(tof_processing_config_ct ptr, tof_error_t *error);
373TOF_EXPORT
void tof_processing_config_set_mixed_pixel_aratio_min(tof_processing_config_t ptr,
double aratio_min, tof_error_t *error);
381TOF_EXPORT
double tof_processing_config_get_mixed_pixel_aggressor_phi_offset(tof_processing_config_ct ptr, tof_error_t *error);
389TOF_EXPORT
void tof_processing_config_set_mixed_pixel_aggressor_phi_offset(tof_processing_config_t ptr,
double aggressor_phi_offset, tof_error_t *error);
398TOF_EXPORT
bool tof_processing_config_get_hdr_enabled(tof_processing_config_ct ptr, tof_error_t *error);
407TOF_EXPORT
void tof_processing_config_set_hdr_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
415TOF_EXPORT
bool tof_processing_config_get_average_enabled(tof_processing_config_ct ptr, tof_error_t *error);
423TOF_EXPORT
void tof_processing_config_set_average_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
430TOF_EXPORT
size_t tof_processing_config_get_average_nframes(tof_processing_config_ct ptr, tof_error_t *error);
437TOF_EXPORT
void tof_processing_config_set_average_nframes(tof_processing_config_t ptr,
size_t nframes, tof_error_t *error);
446TOF_EXPORT
bool tof_processing_config_get_temporal_enabled(tof_processing_config_ct ptr, tof_error_t *error);
455TOF_EXPORT
void tof_processing_config_set_temporal_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
462TOF_EXPORT
double tof_processing_config_get_temporal_sigma(tof_processing_config_ct ptr, tof_error_t *error);
469TOF_EXPORT
void tof_processing_config_set_temporal_sigma(tof_processing_config_t ptr,
double sigma, tof_error_t *error);
477TOF_EXPORT
bool tof_processing_config_get_temporal_use_common(tof_processing_config_ct ptr, tof_error_t *error);
485TOF_EXPORT
void tof_processing_config_set_temporal_use_common(tof_processing_config_t ptr,
bool use_common, tof_error_t *error);
492TOF_EXPORT
size_t tof_processing_config_get_temporal_nframes(tof_processing_config_ct ptr, tof_error_t *error);
499TOF_EXPORT
void tof_processing_config_set_temporal_nframes(tof_processing_config_t ptr,
size_t nframes, tof_error_t *error);
507TOF_EXPORT
bool tof_processing_config_get_gaussian_enabled(tof_processing_config_ct ptr, tof_error_t *error);
515TOF_EXPORT
void tof_processing_config_set_gaussian_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
522TOF_EXPORT
size_t tof_processing_config_get_gaussian_size(tof_processing_config_ct ptr, tof_error_t *error);
529TOF_EXPORT
void tof_processing_config_set_gaussian_size(tof_processing_config_t ptr,
size_t size, tof_error_t *error);
536TOF_EXPORT
double tof_processing_config_get_gaussian_sigma(tof_processing_config_ct ptr, tof_error_t *error);
543TOF_EXPORT
void tof_processing_config_set_gaussian_sigma(tof_processing_config_t ptr,
double sigma, tof_error_t *error);
551TOF_EXPORT
bool tof_processing_config_get_median_enabled(tof_processing_config_ct ptr, tof_error_t *error);
559TOF_EXPORT
void tof_processing_config_set_median_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
566TOF_EXPORT
size_t tof_processing_config_get_median_size(tof_processing_config_ct ptr, tof_error_t *error);
573TOF_EXPORT
void tof_processing_config_set_median_size(tof_processing_config_t ptr,
size_t size, tof_error_t *error);
582TOF_EXPORT
bool tof_processing_config_get_bilateral_enabled(tof_processing_config_ct ptr, tof_error_t *error);
591TOF_EXPORT
void tof_processing_config_set_bilateral_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
598TOF_EXPORT
size_t tof_processing_config_get_bilateral_size(tof_processing_config_ct ptr, tof_error_t *error);
605TOF_EXPORT
void tof_processing_config_set_bilateral_size(tof_processing_config_t ptr,
size_t size, tof_error_t *error);
612TOF_EXPORT
double tof_processing_config_get_bilateral_sigma(tof_processing_config_ct ptr, tof_error_t *error);
619TOF_EXPORT
void tof_processing_config_set_bilateral_sigma(tof_processing_config_t ptr,
double sigma, tof_error_t *error);
626TOF_EXPORT
bool tof_processing_config_get_local_means_enabled(tof_processing_config_ct ptr, tof_error_t *error);
633TOF_EXPORT
void tof_processing_config_set_local_means_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
640TOF_EXPORT
size_t tof_processing_config_get_local_means_size(tof_processing_config_ct ptr, tof_error_t *error);
647TOF_EXPORT
void tof_processing_config_set_local_means_size(tof_processing_config_t ptr,
size_t size, tof_error_t *error);
654TOF_EXPORT
double tof_processing_config_get_local_means_sigma(tof_processing_config_ct ptr, tof_error_t *error);
661TOF_EXPORT
void tof_processing_config_set_local_means_sigma(tof_processing_config_t ptr,
double sigma, tof_error_t *error);
669TOF_EXPORT
bool tof_processing_config_get_flying_enabled(tof_processing_config_ct ptr, tof_error_t *error);
677TOF_EXPORT
void tof_processing_config_set_flying_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
684TOF_EXPORT
enum tof_flying_shape tof_processing_config_get_flying_shape(tof_processing_config_ct ptr, tof_error_t *error);
691TOF_EXPORT
void tof_processing_config_set_flying_shape(tof_processing_config_t ptr,
enum tof_flying_shape shape, tof_error_t *error);
698TOF_EXPORT
size_t tof_processing_config_get_flying_distance(tof_processing_config_ct ptr, tof_error_t *error);
705TOF_EXPORT
void tof_processing_config_set_flying_distance(tof_processing_config_t ptr,
size_t distance, tof_error_t *error);
712TOF_EXPORT
size_t tof_processing_config_get_flying_edges(tof_processing_config_ct ptr, tof_error_t *error);
719TOF_EXPORT
void tof_processing_config_set_flying_edges(tof_processing_config_t ptr,
size_t edges, tof_error_t *error);
726TOF_EXPORT
float tof_processing_config_get_flying_distance_scaled(tof_processing_config_ct ptr, tof_error_t *error);
733TOF_EXPORT
void tof_processing_config_set_flying_distance_scaled(tof_processing_config_t ptr,
float scale, tof_error_t *error);
741TOF_EXPORT
bool tof_processing_config_get_amp_threshold_enabled(tof_processing_config_ct ptr, tof_error_t *error);
749TOF_EXPORT
void tof_processing_config_set_amp_threshold_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
756TOF_EXPORT
double tof_processing_config_get_amp_threshold_min(tof_processing_config_ct ptr, tof_error_t *error);
763TOF_EXPORT
void tof_processing_config_set_amp_threshold_min(tof_processing_config_t ptr,
double min, tof_error_t *error);
770TOF_EXPORT
double tof_processing_config_get_amp_threshold_max(tof_processing_config_ct ptr, tof_error_t *error);
777TOF_EXPORT
void tof_processing_config_set_amp_threshold_max(tof_processing_config_t ptr,
double max, tof_error_t *error);
785TOF_EXPORT
bool tof_processing_config_get_dist_threshold_enabled(tof_processing_config_ct ptr, tof_error_t *error);
793TOF_EXPORT
void tof_processing_config_set_dist_threshold_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
800TOF_EXPORT
double tof_processing_config_get_dist_threshold_min(tof_processing_config_ct ptr, tof_error_t *error);
807TOF_EXPORT
void tof_processing_config_set_dist_threshold_min(tof_processing_config_t ptr,
double min, tof_error_t *error);
814TOF_EXPORT
double tof_processing_config_get_dist_threshold_max(tof_processing_config_ct ptr, tof_error_t *error);
821TOF_EXPORT
void tof_processing_config_set_dist_threshold_max(tof_processing_config_t ptr,
double max, tof_error_t *error);
831TOF_EXPORT
bool tof_processing_config_get_amp_dot_segment_enabled(tof_processing_config_ct ptr, tof_error_t *error);
841TOF_EXPORT
void tof_processing_config_set_amp_dot_segment_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
848TOF_EXPORT
float tof_processing_config_get_amp_dot_segment_threshold(tof_processing_config_ct ptr, tof_error_t *error);
855TOF_EXPORT
void tof_processing_config_set_amp_dot_segment_threshold(tof_processing_config_t ptr,
float threshold, tof_error_t *error);
862TOF_EXPORT
float tof_processing_config_get_amp_dot_segment_midpoint(tof_processing_config_ct ptr, tof_error_t *error);
869TOF_EXPORT
void tof_processing_config_set_amp_dot_segment_midpoint(tof_processing_config_t ptr,
float midpoint, tof_error_t *error);
877TOF_EXPORT
float tof_processing_config_get_amp_dot_segment_max_correction(tof_processing_config_ct ptr, tof_error_t *error);
885TOF_EXPORT
void tof_processing_config_set_amp_dot_segment_max_correction(tof_processing_config_t ptr,
float correction, tof_error_t *error);
896TOF_EXPORT
bool tof_processing_config_get_common_amp_ratio_enabled(tof_processing_config_ct ptr, tof_error_t *error);
907TOF_EXPORT
void tof_processing_config_set_common_amp_ratio_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
914TOF_EXPORT
float tof_processing_config_get_common_amp_ratio_threshold(tof_processing_config_ct ptr, tof_error_t *error);
921TOF_EXPORT
void tof_processing_config_set_common_amp_ratio_threshold(tof_processing_config_t ptr,
float threshold, tof_error_t *error);
929TOF_EXPORT
bool tof_processing_config_get_morph_erode_enabled(tof_processing_config_ct ptr, tof_error_t *error);
937TOF_EXPORT
void tof_processing_config_set_morph_erode_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
944TOF_EXPORT
enum tof_flying_shape tof_processing_config_get_morph_erode_shape(tof_processing_config_ct ptr, tof_error_t *error);
951TOF_EXPORT
void tof_processing_config_set_morph_erode_shape(tof_processing_config_t ptr,
enum tof_flying_shape shape, tof_error_t *error);
958TOF_EXPORT
float tof_processing_config_get_radial_scale(tof_processing_config_ct ptr, tof_error_t *error);
965TOF_EXPORT
void tof_processing_config_set_radial_scale(tof_processing_config_t ptr,
float scale, tof_error_t *error);
972TOF_EXPORT
float tof_processing_config_get_radial_add(tof_processing_config_ct ptr, tof_error_t *error);
979TOF_EXPORT
void tof_processing_config_set_radial_add(tof_processing_config_t ptr,
float addition, tof_error_t *error);
986TOF_EXPORT
float tof_processing_config_get_intensity_scale(tof_processing_config_ct ptr, tof_error_t *error);
993TOF_EXPORT
void tof_processing_config_set_intensity_scale(tof_processing_config_t ptr,
float scale, tof_error_t *error);
1000TOF_EXPORT
float tof_processing_config_get_intensity_add(tof_processing_config_ct ptr, tof_error_t *error);
1007TOF_EXPORT
void tof_processing_config_set_intensity_add(tof_processing_config_t ptr,
float addition, tof_error_t *error);
1015TOF_EXPORT
double tof_processing_config_get_char_add(tof_processing_config_ct ptr, tof_error_t *error);
1023TOF_EXPORT
void tof_processing_config_set_char_add(tof_processing_config_t ptr,
double addition, tof_error_t *error);
1031TOF_EXPORT
double tof_processing_config_get_char_mult(tof_processing_config_ct ptr, tof_error_t *error);
1039TOF_EXPORT
void tof_processing_config_set_char_mult(tof_processing_config_t ptr,
double multiplication, tof_error_t *error);
1046TOF_EXPORT
bool tof_processing_config_get_binning_enabled(tof_processing_config_ct ptr, tof_error_t *error);
1053TOF_EXPORT
void tof_processing_config_set_binning_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
1060TOF_EXPORT
size_t tof_processing_config_get_binning_size(tof_processing_config_ct ptr, tof_error_t *error);
1067TOF_EXPORT
void tof_processing_config_set_binning_size(tof_processing_config_t ptr,
size_t size, tof_error_t *error);
1074TOF_EXPORT
enum tof_binning_mode tof_processing_config_get_binning_mode(tof_processing_config_ct ptr, tof_error_t *error);
1081TOF_EXPORT
void tof_processing_config_set_binning_mode(tof_processing_config_t ptr,
enum tof_binning_mode mode, tof_error_t *error);
1089TOF_EXPORT
float tof_processing_config_get_binning_sigma(tof_processing_config_ct ptr, tof_error_t *error);
1097TOF_EXPORT
void tof_processing_config_set_binning_sigma(tof_processing_config_t ptr,
float sigma, tof_error_t *error);
1104TOF_EXPORT
enum tof_xyz_dimension tof_processing_config_get_xyz_dimension(tof_processing_config_ct ptr, tof_error_t *error);
1111TOF_EXPORT
void tof_processing_config_set_xyz_dimension(tof_processing_config_t ptr,
enum tof_xyz_dimension dimension, tof_error_t *error);
1118TOF_EXPORT
bool tof_processing_config_get_rigid_transformation_enabled(tof_processing_config_ct ptr, tof_error_t *error);
1125TOF_EXPORT
void tof_processing_config_set_rigid_transformation_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
1132TOF_EXPORT
const float* tof_processing_config_get_rigid_transformation_matrix(tof_processing_config_ct ptr, tof_error_t *error);
1139TOF_EXPORT
void tof_processing_config_set_rigid_transformation_matrix(tof_processing_config_t ptr,
const float* matrix, tof_error_t *error);
1146TOF_EXPORT
bool tof_processing_config_get_rad_dist_threshold_enabled(tof_processing_config_ct ptr, tof_error_t *error);
1153TOF_EXPORT
void tof_processing_config_set_rad_dist_threshold_enabled(tof_processing_config_t ptr,
bool enabled, tof_error_t *error);
1160TOF_EXPORT
double tof_processing_config_get_rad_dist_threshold_min(tof_processing_config_ct ptr, tof_error_t *error);
1167TOF_EXPORT
void tof_processing_config_set_rad_dist_threshold_min(tof_processing_config_t ptr,
double min, tof_error_t *error);
1174TOF_EXPORT
double tof_processing_config_get_rad_dist_threshold_max(tof_processing_config_ct ptr, tof_error_t *error);
1181TOF_EXPORT
void tof_processing_config_set_rad_dist_threshold_max(tof_processing_config_t ptr,
double max, tof_error_t *error);