aboutsummaryrefslogtreecommitdiff
path: root/src/poser_general_optimizer.h
diff options
context:
space:
mode:
authorCNLohr <charles@cnlohr.com>2018-04-15 20:41:22 -0400
committerGitHub <noreply@github.com>2018-04-15 20:41:22 -0400
commit69b31d3c3b1957e59d7962722a4145bfb0db16f9 (patch)
tree927d843a553ef53217c283f19f16728b0ca51c50 /src/poser_general_optimizer.h
parentc73823e20c9ed2f2f8f6a13c2031971d8b7d7be2 (diff)
parent39a63badbb5864314a9d9e18c0871718ac5d2912 (diff)
downloadlibsurvive-69b31d3c3b1957e59d7962722a4145bfb0db16f9.tar.gz
libsurvive-69b31d3c3b1957e59d7962722a4145bfb0db16f9.tar.bz2
Merge branch 'master' into tcc_build
Diffstat (limited to 'src/poser_general_optimizer.h')
-rw-r--r--src/poser_general_optimizer.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/poser_general_optimizer.h b/src/poser_general_optimizer.h
new file mode 100644
index 0000000..6d4d906
--- /dev/null
+++ b/src/poser_general_optimizer.h
@@ -0,0 +1,29 @@
+#include <stdlib.h>
+#include <survive.h>
+
+typedef struct GeneralOptimizerData {
+ int failures_to_reset;
+ int failures_to_reset_cntr;
+ int successes_to_reset;
+ int successes_to_reset_cntr;
+
+ FLT max_error;
+
+ struct {
+ int runs;
+ int poser_seed_runs;
+ int error_failures;
+ } stats;
+
+ PoserCB seed_poser;
+ SurviveObject *so;
+} GeneralOptimizerData;
+
+void general_optimizer_data_init(GeneralOptimizerData *d, SurviveObject *so);
+void general_optimizer_data_dtor(GeneralOptimizerData *d);
+
+void general_optimizer_data_record_failure(GeneralOptimizerData *d);
+bool general_optimizer_data_record_success(GeneralOptimizerData *d, FLT error);
+void general_optimizer_data_record_imu(GeneralOptimizerData *d, PoserDataIMU *imu);
+bool general_optimizer_data_record_current_pose(GeneralOptimizerData *d, PoserData *hdr, size_t len_hdr,
+ SurvivePose *p);