From dfffd599921f49d33c8db16b71a678125d9fa383 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Malte=20K=C3=B6gel?= <koegel@vr.rwth-aachen.de>
Date: Tue, 14 Nov 2023 10:53:37 +0100
Subject: [PATCH] Fix fallback to head orientation tracking if eyetracking is
 unavailable, see #102

---
 Source/StudyFrameworkPlugin/Private/Logging/SFLogObject.cpp   | 2 +-
 .../StudyFrameworkPlugin/Public/GazeTracking/SFGazeTracker.h  | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/Source/StudyFrameworkPlugin/Private/Logging/SFLogObject.cpp b/Source/StudyFrameworkPlugin/Private/Logging/SFLogObject.cpp
index caf7358..b403a3b 100644
--- a/Source/StudyFrameworkPlugin/Private/Logging/SFLogObject.cpp
+++ b/Source/StudyFrameworkPlugin/Private/Logging/SFLogObject.cpp
@@ -166,7 +166,7 @@ void USFLogObject::WriteGazeTrackingLogToFile() {
 	}
 
 	USFGazeTracker* GazeTracker = USFGameInstance::Get()->GetGazeTracker();
-	if(!GazeTracker || GazeTracker->DataAlreadyLogged())
+	if(!GazeTracker || (GazeTracker->IsTrackingEyes() && GazeTracker->DataAlreadyLogged()))
 	{
 		return;
 	}
diff --git a/Source/StudyFrameworkPlugin/Public/GazeTracking/SFGazeTracker.h b/Source/StudyFrameworkPlugin/Public/GazeTracking/SFGazeTracker.h
index b6cebcf..d07e3aa 100644
--- a/Source/StudyFrameworkPlugin/Public/GazeTracking/SFGazeTracker.h
+++ b/Source/StudyFrameworkPlugin/Public/GazeTracking/SFGazeTracker.h
@@ -86,7 +86,9 @@ private:
 	UPROPERTY()
 	TArray<AActor*> ActorsToIgnore;
 
-	bool bDataLogged = false;
+	//This is only relevant for when eyetracking is used: Set false once SranipalEyeData is updated, Set true after writing out current eyedata
+	//For Head Rotation, we always get up-to-date info while logging, then bDataLogged is ignored
+	bool bDataLogged = true;
 	float EyeDataGatheringDelay;
 	float TimeSinceLastEyeDataGather = 0.0f;
 #ifdef WITH_SRANIPAL
-- 
GitLab