fix a chain of glove and hand-tracking bugs that render the hand-tracking state invalid at certain times
This commit is contained in:
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
This patch release addresses a few issues with both glove and hand-tracking.
|
||||||
|
|
||||||
|
# Fixed
|
||||||
|
|
||||||
|
- Fixed a chain of critical bugs that gets triggered due to `GloveConnectivityCheckInterval` getting passed as seconds to the engine rather than milliseconds. Thus, the default or any large value for `GloveConnectivityCheckInterval` causes noticeable long delays between glove-connectivity-check intervals and consequently renders the hand-tracking state invalid in certain situations when the `bFallbackToHandTrackingIfNoGloveDetected` option is false.
|
||||||
|
|
||||||
## [2.2.1] - 2024-10-23
|
## [2.2.1] - 2024-10-23
|
||||||
|
|
||||||
This patch release focuses exclusively on updates to the documentation.
|
This patch release focuses exclusively on updates to the documentation.
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ struct SENSEGLOVESETTINGS_API FSGGloveTrackingSettings
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* The interval in which the tracking module checks for glove connectivity.
|
* The interval in which the tracking module checks for glove connectivity (in milliseconds).
|
||||||
*
|
*
|
||||||
* The default is 16.666666f which means 60 times per second.
|
* The default is 16.666666f which means 60 times per second.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ struct USGGloveTracker::FImpl
|
|||||||
{
|
{
|
||||||
const USGSettings* Settings{USGSettings::GetInstance()};
|
const USGSettings* Settings{USGSettings::GetInstance()};
|
||||||
ensureAlwaysMsgf(Settings, TEXT("The settings subsystem has not been initialized!"));
|
ensureAlwaysMsgf(Settings, TEXT("The settings subsystem has not been initialized!"));
|
||||||
return Settings->GetTrackingSettings().GloveTrackingSettings.GloveConnectivityCheckInterval;
|
return Settings->GetTrackingSettings().GloveTrackingSettings.GloveConnectivityCheckInterval * 0.001f;
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************
|
/************************
|
||||||
@@ -137,7 +137,16 @@ void USGGloveTracker::Initialize(FSubsystemCollectionBase& Collection)
|
|||||||
Pimpl->GloveConnectivityCheckTimer, GloveConnectivityCheckHandler, GloveConnectivityCheckInterval,
|
Pimpl->GloveConnectivityCheckTimer, GloveConnectivityCheckHandler, GloveConnectivityCheckInterval,
|
||||||
true, -1.0f);
|
true, -1.0f);
|
||||||
|
|
||||||
SGLOG("The glove connectivity check timer has been started successfully!");
|
if (ensureAlwaysMsgf(TimerManager.IsTimerActive(Pimpl->GloveConnectivityCheckTimer),
|
||||||
|
TEXT("GloveConnectivityCheckTimer is not active")))
|
||||||
|
{
|
||||||
|
SGLOG("The glove connectivity check timer has been started successfully!");
|
||||||
|
SGLOG("The glove connectivity timer interval is: ", GloveConnectivityCheckInterval);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SGLOG_ERROR("The glove connectivity check timer has failed to start!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SGLOG("The SenseGlove tracking singleton has been successfully initialized with the world lifetime!");
|
SGLOG("The SenseGlove tracking singleton has been successfully initialized with the world lifetime!");
|
||||||
|
|||||||
Reference in New Issue
Block a user