From 646a25ce670ff70cbfc37c3d1b5a7fd4a627f936 Mon Sep 17 00:00:00 2001
From: David Gilbert <gilbert@vr.rwth-aachen.de>
Date: Thu, 2 Nov 2023 16:12:44 +0100
Subject: [PATCH] fix(cave): fixes a few issues in sign material and sign
 logic, still a bit broken

---
 .../CAVEOverlay/StopMaterial.uasset           | Bin 10027 -> 15092 bytes
 .../CAVEOverlay/CAVEOverlayController.cpp     |  25 +++++++++++-------
 .../CAVEOverlay/CAVEOverlayController.h       |   2 +-
 .../Private/Pawn/VirtualRealityPawn.cpp       |   2 +-
 4 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/Content/RWTHVRCluster/CAVEOverlay/StopMaterial.uasset b/Content/RWTHVRCluster/CAVEOverlay/StopMaterial.uasset
index 2a47f6b2290842007f7cb856fb2fab9737c87021..02124fe5bf6a340eba994fd314f01de1a1998b4f 100644
GIT binary patch
delta 8673
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

delta 3559
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

diff --git a/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlayController.cpp b/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlayController.cpp
index ab9d4804..44887b1c 100644
--- a/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlayController.cpp
+++ b/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlayController.cpp
@@ -12,6 +12,8 @@
 #include "Materials/MaterialInstanceDynamic.h"
 #include "Pawn/VirtualRealityPawn.h"
 #include "Utility/VirtualRealityUtilities.h"
+#include "MotionControllerComponent.h"
+
 
 DEFINE_LOG_CATEGORY(LogCAVEOverlay);
 
@@ -233,15 +235,13 @@ bool ACAVEOverlayController::PositionInDoorOpening(const FVector& Position) cons
 		                            WallDistance + 10);
 }
 
-void ACAVEOverlayController::SetSignsForHand(UStaticMeshComponent* Hand, UMaterialInstanceDynamic* HandMaterial) const
+void ACAVEOverlayController::SetSignsForHand(UStaticMeshComponent* Sign, const FVector HandPosition, UMaterialInstanceDynamic* HandMaterial) const
 {
-	const FVector HandPosition = Hand->GetRelativeTransform().GetLocation();
-
 	const bool bHandIsCloseToWall = FMath::IsWithinInclusive(HandPosition.GetAbsMax(),
 	                                                         WallDistance - WallCloseDistance, WallDistance);
 	if (bHandIsCloseToWall && !PositionInDoorOpening(HandPosition))
 	{
-		Hand->SetVisibility(true);
+		Sign->SetVisibility(true);
 		HandMaterial->SetScalarParameterValue("SignOpacity",
 		                                      CalculateOpacityFromPosition(HandPosition));
 
@@ -253,12 +253,16 @@ void ACAVEOverlayController::SetSignsForHand(UStaticMeshComponent* Hand, UMateri
 		const double Y = bXWallCloser ? HandPosition.Y : FMath::Sign(HandPosition.Y) * WallDistance;
 		const double Z = HandPosition.Z;
 
-		const FRotator Rot = bXWallCloser ? FRotator(0, 0, 0) : FRotator(0, 0, 90);
-		Hand->SetRelativeLocationAndRotation(FVector(X, Y, Z), Rot);
+		const auto Rot = bXWallCloser ? FRotator(0, 0, 0) : FRotator(0, 0, 90);
+		const auto Pos = FVector(X, Y, Z);
+		Sign->SetRelativeLocationAndRotation(Pos, Rot);
+
+		UE_LOGFMT(LogCAVEOverlay, Log, "HandPos: {Hand} vs SignPos: {Sign}", HandPosition.ToString(), Pos.ToString());
+
 	}
 	else
 	{
-		Hand->SetVisibility(true);
+		Sign->SetVisibility(false);
 	}
 }
 
@@ -298,6 +302,9 @@ void ACAVEOverlayController::Tick(float DeltaTime)
 	}
 
 	// Hand Logic
-	SetSignsForHand(SignRightHand, RightSignMaterialDynamic);
-	SetSignsForHand(SignLeftHand, LeftSignMaterialDynamic);
+	const FVector RightPosition = VRPawn->RightHand->GetRelativeTransform().GetLocation();
+	const FVector LeftPosition = VRPawn->LeftHand->GetRelativeTransform().GetLocation();
+
+	SetSignsForHand(SignRightHand, RightPosition, RightSignMaterialDynamic);
+	SetSignsForHand(SignLeftHand, LeftPosition, LeftSignMaterialDynamic);
 }
diff --git a/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlayController.h b/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlayController.h
index 997922dd..d11422b5 100644
--- a/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlayController.h
+++ b/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlayController.h
@@ -57,7 +57,7 @@ private:
 
 	double CalculateOpacityFromPosition(const FVector& Position) const;
 	bool PositionInDoorOpening(const FVector& Position) const;
-	void SetSignsForHand(UStaticMeshComponent* Hand, UMaterialInstanceDynamic* HandMaterial) const;
+	void SetSignsForHand(UStaticMeshComponent* Sign, const FVector HandPosition, UMaterialInstanceDynamic* HandMaterial) const;
 
 	bool bInitialized = false;
 
diff --git a/Source/RWTHVRToolkit/Private/Pawn/VirtualRealityPawn.cpp b/Source/RWTHVRToolkit/Private/Pawn/VirtualRealityPawn.cpp
index 9daffdcb..4b9f8add 100644
--- a/Source/RWTHVRToolkit/Private/Pawn/VirtualRealityPawn.cpp
+++ b/Source/RWTHVRToolkit/Private/Pawn/VirtualRealityPawn.cpp
@@ -240,7 +240,7 @@ void AVirtualRealityPawn::SetupMotionControllerSources()
 		MotionControllerSourceLeft = FName("Left");
 		MotionControllerSourceRight = FName("Right");
 	}
-	if (UVirtualRealityUtilities::IsRoomMountedMode() && UVirtualRealityUtilities::IsMaster())
+	if (UVirtualRealityUtilities::IsRoomMountedMode())
 	{
 		MotionControllerSourceLeft = LeftSubjectRepresentation.Subject;
 		MotionControllerSourceRight = RightSubjectRepresentation.Subject;
-- 
GitLab