#pragma once

#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"


/**
 * Defines the calibration pose type.
 */
UENUM( BlueprintType )
enum class ECalibrationPose :uint8
{
	//GCP_Unknown = -1,
	GCP_TPose = 0,
	GCP_APose,
	GCP_PPose,
	GCP_BPose,
	GCP_CPose,
};

/**
 * Defines the hand type.
 */
UENUM( BlueprintType )
enum class EGloveMod :uint8
{
	GlM_BothGloves = 0,
	GlM_LeftGlove,
	GlM_RightGlove,
};

/**
 * Defines the type of Hi5 Glove's position data source.
 */
UENUM( BlueprintType )
enum class EGlovePositionSource :uint8
{
	VivePosition = 0,	///< Hi5 Glove's position is supplied by HTC vive.
	AlicePosition,		///< Not used now.
	Other				///< Not used now.
};

/**
 * Defines Hi5 Glove's battery level.
 */
UENUM( BlueprintType )
enum class EGlovePowerLevel :uint8
{
	Unknown,	///< Cannot get battery info
	Low,		///< Battery level is low.
	Normal,		///< Battery level is normal and enough for normal use.
	Full,		///< Battery level is enough for normal use.
};

/**
 * Defines Hi5 Glove's magnetization level.
 */
UENUM( BlueprintType )
enum class EGloveMagneticedState :uint8
{
	Unknown,
	Bad,		///< Serious magnetization
	Warn,		///< Medium magnetization
	Normal,		///< No magnetization
};
