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/),
|
||||
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
|
||||
|
||||
This patch release focuses exclusively on updates to the documentation.
|
||||
|
||||
@@ -51,7 +51,7 @@ struct SENSEGLOVESETTINGS_API FSGGloveTrackingSettings
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
@@ -58,7 +58,7 @@ struct USGGloveTracker::FImpl
|
||||
{
|
||||
const USGSettings* Settings{USGSettings::GetInstance()};
|
||||
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,
|
||||
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!");
|
||||
|
||||
Reference in New Issue
Block a user