Files
Plugin/Source/ThirdParty/include/SenseGlove/Core/NovaGloveCalibration.hpp
T

67 lines
1.8 KiBLFS
C++

/**
* @file
*
* @author Max Lammers <max@senseglove.com>
* @author Mamadou Babaei <mamadou@senseglove.com>
*
* @section LICENSE
*
* Copyright (c) 2020 - 2023 SenseGlove
*
* @section DESCRIPTION
*
*
*/
#pragma once
#include <vector>
#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:
/// <summary> Apply a glove's default interpolation values to a profile, using the 'default' hand angles from calibration. </summary>
static void ApplyDefaultCalibrationInterpolationValues(
const std::vector<Kinematics::Vect3D>& retractedValues,
const std::vector<Kinematics::Vect3D>& extendedValues,
const Nova::NovaGloveHandProfile& profile);
/// <summary> Apply a set of sensor-to-joint-angle interpolations to a nova profile. </summary>
/// <param name="retractedValues"></param>
/// <param name="extendedValues"></param>
/// <param name="retractedAngles"></param>
/// <param name="extendedAngles"></param>
/// <param name="profile"></param>
static void ApplyInterpolationValues(
const std::vector<Kinematics::Vect3D>& retractedValues,
const std::vector<Kinematics::Vect3D>& extendedValues,
const std::vector<std::vector<Kinematics::Vect3D>>& retractedAngles,
const std::vector<std::vector<Kinematics::Vect3D>>& extendedAngles,
const Nova::NovaGloveHandProfile& profile);
public:
NovaGloveCalibration() = delete;
virtual ~NovaGloveCalibration() = delete;
};