/** * @file * * @author Max Lammers * @author Mamadou Babaei * * @section LICENSE * * Copyright (c) 2020 - 2022 SenseGlove * * @section DESCRIPTION * * */ #pragma once #include #include "Platform.hpp" namespace SGCore { namespace Calibration { class SGCORE_API NovaGloveCalibration; }// namespace Calibration namespace Kinematics { class Vect3D; }// namespace Kinematics namespace Nova { class NovaGloveHandProfile; }// namespace Nova }// namespace SGCore class SGCORE_API SGCore::Calibration::NovaGloveCalibration { public: /// Apply a glove's default interpolation values to a profile, using the 'default' hand angles from calibration. static void ApplyDefaultCalibrationInterpolationValues( const std::vector& retractedValues, const std::vector& extendedValues, const Nova::NovaGloveHandProfile& profile); /// Apply a set of sensor-to-joint-angle interpolations to a nova profile. /// /// /// /// /// static void ApplyInterpolationValues( const std::vector& retractedValues, const std::vector& extendedValues, const std::vector>& retractedAngles, const std::vector>& extendedAngles, const Nova::NovaGloveHandProfile& profile); public: NovaGloveCalibration() = delete; virtual ~NovaGloveCalibration() = delete; };