aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJustin Berger <j.david.berger@gmail.com>2018-04-01 12:23:48 -0600
committerJustin Berger <j.david.berger@gmail.com>2018-04-01 16:09:53 -0600
commit47c7fb15182700fb403894f65beaf143a7fad6ab (patch)
treeba4fbdf05864ff080fea937538f67c6bec3924df /include
parent22d40fb360fdb65da7916fb87f9b199f4f401f05 (diff)
downloadlibsurvive-47c7fb15182700fb403894f65beaf143a7fad6ab.tar.gz
libsurvive-47c7fb15182700fb403894f65beaf143a7fad6ab.tar.bz2
Tweaked how reproject / calibate interact
Diffstat (limited to 'include')
-rw-r--r--include/libsurvive/survive.h10
-rw-r--r--include/libsurvive/survive_reproject.h37
2 files changed, 12 insertions, 35 deletions
diff --git a/include/libsurvive/survive.h b/include/libsurvive/survive.h
index e435752..669821d 100644
--- a/include/libsurvive/survive.h
+++ b/include/libsurvive/survive.h
@@ -185,6 +185,13 @@ enum SurviveCalFlag {
SVCal_All = SVCal_Gib | SVCal_Curve | SVCal_Tilt | SVCal_Phase
};
+typedef struct survive_calibration_config {
+ enum SurviveCalFlag use_flag;
+ FLT phase_scale, tilt_scale, curve_scale, gib_scale;
+} survive_calibration_config;
+
+survive_calibration_config survive_calibration_config_ctor();
+
struct SurviveContext {
text_feedback_func faultfunction;
text_feedback_func notefunction;
@@ -222,8 +229,7 @@ struct SurviveContext {
ButtonQueue buttonQueue;
void *user_ptr;
- enum SurviveCalFlag calibration_flag;
- struct survive_calibration_config *calibration_config;
+ struct survive_calibration_config calibration_config;
};
void survive_verify_FLT_size(
diff --git a/include/libsurvive/survive_reproject.h b/include/libsurvive/survive_reproject.h
index c90d39c..6546e66 100644
--- a/include/libsurvive/survive_reproject.h
+++ b/include/libsurvive/survive_reproject.h
@@ -9,35 +9,12 @@
extern "C" {
#endif
-typedef struct {
- bool enable[2];
- bool invert[2];
- bool swap;
-} survive_calibration_options_config;
-
-typedef struct survive_calibration_config {
-
- survive_calibration_options_config phase, tilt, curve, gibMag, gibPhase;
-
- bool gibUseSin;
-
-} survive_calibration_config;
-
-void survive_calibration_options_config_apply(const survive_calibration_options_config *option, const FLT *input,
- FLT *output);
-
-const survive_calibration_config *survive_calibration_default_config(const SurviveContext *ctx);
-
-size_t survive_calibration_config_max_idx();
-
-survive_calibration_config survive_calibration_config_create_from_idx(size_t v);
-
-size_t survive_calibration_config_index(const survive_calibration_config *config);
-
void survive_reproject(const SurviveContext *ctx, int lighthouse, FLT *point3d, FLT *out);
void survive_reproject_from_pose(const SurviveContext *ctx, int lighthouse, const SurvivePose *pose, FLT *point3d,
FLT *out);
+void survive_reproject_from_pose_with_config(const SurviveContext *ctx, struct survive_calibration_config *config,
+ int lighthouse, const SurvivePose *pose, FLT *point3d, FLT *out);
// This is given a lighthouse -- in the same system as stored in BaseStationData, and
// a 3d point and finds what the effective 'angle' value for a given lighthouse syste
@@ -45,18 +22,12 @@ void survive_reproject_from_pose(const SurviveContext *ctx, int lighthouse, cons
// While this is typically opposite of what we want to do -- we want to find the 3d
// position from a 2D coordinate, this is helpful since the minimization of reprojection
// error is a core mechanism to many types of solvers.
-void survive_reproject_from_pose_with_config(const SurviveContext *ctx, const survive_calibration_config *config,
- int lighthouse, const SurvivePose *pose, const FLT *point3d, FLT *out);
void survive_reproject_from_pose_with_bsd(const BaseStationData *bsd, const survive_calibration_config *config,
const SurvivePose *pose, const FLT *point3d, FLT *out);
-void survive_reproject_with_config(const SurviveContext *ctx, const survive_calibration_config *config, int lighthouse,
- const FLT *point3d, FLT *out);
-
-void survive_calibration_config_fprint(FILE *file, const survive_calibration_config *config);
-
-void survive_apply_bsd_calibration_by_flag(SurviveContext *ctx, int lh, enum SurviveCalFlag f, const FLT *in, FLT *out);
+void survive_apply_bsd_calibration_by_flag(SurviveContext *ctx, int lh, struct survive_calibration_config *config,
+ const FLT *in, FLT *out);
void survive_apply_bsd_calibration(SurviveContext *ctx, int lh, const FLT *in, FLT *out);
#ifdef __cplusplus