From 4f3ed27aded26f11ecc1a39b15998a5b2ce326b4 Mon Sep 17 00:00:00 2001
From: pnossol <patrick.nossol@gmail.com>
Date: Thu, 2 Feb 2023 22:52:27 +0100
Subject: [PATCH] compiling corrections for 5.1

---
 Source/MoCapPlugin/MoCapPlugin.Build.cs       |  2 +-
 .../MoCapPlugin/Private/MCCalibrationNode.cpp |  2 +-
 Source/MoCapPlugin/Private/MCController.cpp   | 29 +++++++++-------
 Source/MoCapPlugin/Private/MCPawn.cpp         |  2 +-
 Source/MoCapPlugin/Private/MCRigUnits.cpp     | 33 +++++++++++--------
 Source/MoCapPlugin/Private/MoCapPlugin.cpp    |  2 +-
 6 files changed, 41 insertions(+), 29 deletions(-)

diff --git a/Source/MoCapPlugin/MoCapPlugin.Build.cs b/Source/MoCapPlugin/MoCapPlugin.Build.cs
index 0a03bd6..848ecc8 100644
--- a/Source/MoCapPlugin/MoCapPlugin.Build.cs
+++ b/Source/MoCapPlugin/MoCapPlugin.Build.cs
@@ -28,7 +28,7 @@ public class MoCapPlugin : ModuleRules
 				"CharacterPlugin",
                 "ControlRig",
                 "RigVM"
-			}
+            }
 			);
 			
 		
diff --git a/Source/MoCapPlugin/Private/MCCalibrationNode.cpp b/Source/MoCapPlugin/Private/MCCalibrationNode.cpp
index 29cd52c..7ee8f8c 100644
--- a/Source/MoCapPlugin/Private/MCCalibrationNode.cpp
+++ b/Source/MoCapPlugin/Private/MCCalibrationNode.cpp
@@ -144,7 +144,7 @@ void FMCCalibrationNode::InitializeBoneReferences(const FBoneContainer& Required
     DECLARE_SCOPE_HIERARCHICAL_COUNTER_ANIMNODE(InitializeBoneReferences)
     for (int i = 0; i < BonesToModify.Num(); i++) {
         BonesToModify[i].Initialize(RequiredBones);
-        if (!BonesToModify[i].IsValid(RequiredBones)) {
+        if (!BonesToModify[i].IsValidToEvaluate(RequiredBones)) {
             BonesToModify.RemoveAt(i);
             i--;
         }
diff --git a/Source/MoCapPlugin/Private/MCController.cpp b/Source/MoCapPlugin/Private/MCController.cpp
index 05e8468..f6e318e 100644
--- a/Source/MoCapPlugin/Private/MCController.cpp
+++ b/Source/MoCapPlugin/Private/MCController.cpp
@@ -11,7 +11,8 @@
 #include "IUniversalLogging.h"
 #include "Engine/Engine.h"
 #include "Kismet/GameplayStatics.h"
-#include "AssetRegistryModule.h"
+#include "AssetRegistryModule.h" 	
+#include "SteamVRInputDeviceFunctionLibrary.h"
 
 
 AMCController::AMCController() {
@@ -56,7 +57,7 @@ void AMCController::BeginPlay() {
 		Pawn->GetAnimInstance()->RightFootPlane = RightFootPlane->GetActorTransform();
 	}
 	if (bFingerTrackingEnabled) {
-		USteamVRInputDeviceFunctionLibrary::SetCurlsAndSplaysState(true, true);
+		UDEPRECATED_USteamVRInputDeviceFunctionLibrary::SetCurlsAndSplaysState(true, true);
 	}
 
 	if (SpectatorCam && !UHeadMountedDisplayFunctionLibrary::IsHeadMountedDisplayEnabled()) {
@@ -1111,6 +1112,8 @@ UAnimSequence* AMCController::SaveAsAnimSequence(const FSnapshotAnimations& Reco
 	if (AnimationSequence == nullptr) {
 		AnimationSequence = NewObject<UAnimSequence>(Package, UAnimSequence::StaticClass(), *AnimName, RF_Public | RF_Standalone);
 		if (AnimationSequence) {
+
+			IAnimationDataController& Controller = AnimationSequence->GetController();
 			
 			AnimationSequence->SetSkeleton(AnimSaveState.Pawn->GetSkeleton());
 
@@ -1118,9 +1121,10 @@ UAnimSequence* AMCController::SaveAsAnimSequence(const FSnapshotAnimations& Reco
 			int32 PelvisIndex = AnimationSequence->GetSkeleton()->GetSkeletonBoneIndexFromMeshBoneIndex(AnimSaveState.Pawn->SkeletalMesh->SkeletalMesh, RefPelvisIndex);
 			AnimationSequence->GetSkeleton()->SetBoneTranslationRetargetingMode(PelvisIndex, EBoneTranslationRetargetingMode::Animation, false);
 
-			AnimationSequence->SetRawNumberOfFrame(Recording.Snapshots.Num());
-			AnimationSequence->SequenceLength = (Recording.EndTime - Recording.StartTime).GetTotalSeconds();
-			
+			AnimationSequence->SetSequenceLength((Recording.EndTime - Recording.StartTime).GetTotalSeconds());
+			Controller.SetPlayLength((Recording.EndTime - Recording.StartTime).GetTotalSeconds());
+			Controller.SetFrameRate(FFrameRate((Recording.EndTime - Recording.StartTime).GetTotalSeconds(), Recording.Snapshots.Num()));
+
 			SetBonesAnimationInAnimSeq(Recording, AnimationSequence);
 
 			FAssetRegistryModule::AssetCreated(AnimationSequence);
@@ -1149,6 +1153,8 @@ void AMCController::SetBonesAnimationInAnimSeq(const FSnapshotAnimations& Record
 		}
 	}
 
+	IAnimationDataController& Controller = AnimSequence->GetController();
+
 	for (const FName& BoneName : BoneNames) {
 
 		FRawAnimSequenceTrack Track;
@@ -1159,12 +1165,12 @@ void AMCController::SetBonesAnimationInAnimSeq(const FSnapshotAnimations& Record
 			int32 Index = Snapshot.BoneNames.IndexOfByKey(BoneName);
 
 			if (Index != INDEX_NONE) {
-				Track.RotKeys.Add(Snapshot.LocalTransforms[Index].GetRotation());
-				Track.PosKeys.Add(Snapshot.LocalTransforms[Index].GetLocation());
+				Track.RotKeys.Add(FQuat4f(Snapshot.LocalTransforms[Index].GetRotation()));
+				Track.PosKeys.Add(FVector3f(Snapshot.LocalTransforms[Index].GetLocation()));
 			}
 			else if (Frame == 0) {
-				Track.RotKeys.Add(FRotator::ZeroRotator.Quaternion());
-				Track.PosKeys.Add(FVector::ZeroVector);
+				Track.RotKeys.Add(FQuat4f(FRotator::ZeroRotator.Quaternion()));
+				Track.PosKeys.Add(FVector3f(FVector::ZeroVector));
 			}
 			else {
 				Track.RotKeys.Add(Track.RotKeys[Frame - 1]);
@@ -1173,7 +1179,8 @@ void AMCController::SetBonesAnimationInAnimSeq(const FSnapshotAnimations& Record
 
 		}
 
-		AnimSequence->AddNewRawTrack(BoneName, &Track);
+		Controller.AddBoneTrack(BoneName);
+		Controller.SetBoneTrackKeys(BoneName, Track.PosKeys, Track.RotKeys, {});
 	}
 
 #endif
@@ -1188,7 +1195,7 @@ void AMCController::PostEditChangeProperty(FPropertyChangedEvent& PropertyChange
 	FFloatProperty* fprop = CastField<FFloatProperty>(prop);
 	if (fprop != nullptr) {
 
-		float* val = nullptr;
+		double* val = nullptr;
 		{
 			if (LastAddOffsets.HeadRotOffset.Roll != AdditionalOffsets.HeadRotOffset.Roll) {
 				val = &AdditionalOffsets.HeadRotOffset.Roll;
diff --git a/Source/MoCapPlugin/Private/MCPawn.cpp b/Source/MoCapPlugin/Private/MCPawn.cpp
index ba69d77..f710657 100644
--- a/Source/MoCapPlugin/Private/MCPawn.cpp
+++ b/Source/MoCapPlugin/Private/MCPawn.cpp
@@ -394,7 +394,7 @@ void AMCPawn::AddFingerDataToJson(TSharedPtr<FJsonObject> JsonObjectFull, ESkele
 
 		FSteamVRFingerCurls Curls;
 		FSteamVRFingerSplays Splays;
-		USteamVRInputDeviceFunctionLibrary::GetFingerCurlsAndSplays(VRHand, Curls, Splays, FingerTrackingMethod);
+		UDEPRECATED_USteamVRInputDeviceFunctionLibrary::GetFingerCurlsAndSplays(VRHand, Curls, Splays, FingerTrackingMethod);
 
 		TSharedPtr<FJsonObject> JsonObject = MAKE_JSON;
 
diff --git a/Source/MoCapPlugin/Private/MCRigUnits.cpp b/Source/MoCapPlugin/Private/MCRigUnits.cpp
index 5c0391c..1b2b6b2 100644
--- a/Source/MoCapPlugin/Private/MCRigUnits.cpp
+++ b/Source/MoCapPlugin/Private/MCRigUnits.cpp
@@ -23,15 +23,16 @@ FRigUnit_ApplyFingerData::FRigUnit_ApplyFingerData() {
 	
 }
 
-void AddRotation(const FName& BoneName, float Angle, FRigBoneHierarchy* Hierarchy, const FName& Axis = "Y") {
+void AddRotation(const FName& BoneName, float Angle, URigHierarchy* Hierarchy, const FName& Axis = "Y") {
+	FRigElementKey Rigement(BoneName, ERigElementType::Bone);
 	if (Axis == "X") {
-		Hierarchy->SetLocalTransform(BoneName, FTransform(Hierarchy->GetLocalTransform(BoneName).GetRotation().Rotator().Add(0, 0, -Angle), Hierarchy->GetLocalTransform(BoneName).GetTranslation()));
+		Hierarchy->SetLocalTransform(Rigement, FTransform(Hierarchy->GetLocalTransform(Rigement).GetRotation().Rotator().Add(0, 0, -Angle), Hierarchy->GetLocalTransform(Rigement).GetTranslation()));
 	}
 	else if (Axis == "Y") {
-		Hierarchy->SetLocalTransform(BoneName, FTransform(Hierarchy->GetLocalTransform(BoneName).GetRotation().Rotator().Add(0, -Angle, 0), Hierarchy->GetLocalTransform(BoneName).GetTranslation()));
+		Hierarchy->SetLocalTransform(Rigement, FTransform(Hierarchy->GetLocalTransform(Rigement).GetRotation().Rotator().Add(0, -Angle, 0), Hierarchy->GetLocalTransform(Rigement).GetTranslation()));
 	}
 	else if (Axis == "Z") {
-		Hierarchy->SetLocalTransform(BoneName, FTransform(Hierarchy->GetLocalTransform(BoneName).GetRotation().Rotator().Add(-Angle, 0, 0), Hierarchy->GetLocalTransform(BoneName).GetTranslation()));
+		Hierarchy->SetLocalTransform(Rigement, FTransform(Hierarchy->GetLocalTransform(Rigement).GetRotation().Rotator().Add(-Angle, 0, 0), Hierarchy->GetLocalTransform(Rigement).GetTranslation()));
 	}
 }
 
@@ -55,7 +56,7 @@ FRigUnit_ApplyFingerData_Execute() {
 	float Middle_Ring_Angle_N = Middle_Ring_Angle;
 	float Ring_Pinky_Angle_N = Ring_Pinky_Angle;
 
-	FRigBoneHierarchy* Hierarchy = ExecuteContext.GetBones();
+	URigHierarchy* Hierarchy = ExecuteContext.Hierarchy;
 	
 	if (Hierarchy) {
 
@@ -167,10 +168,9 @@ FRigUnit_FootLocking::FRigUnit_FootLocking() {
 FRigUnit_FootLocking_Execute() {
 	DECLARE_SCOPE_HIERARCHICAL_COUNTER_RIGUNIT()
 
-	FRigBoneHierarchy* Bones = ExecuteContext.GetBones();
-	FRigControlHierarchy* Controls = ExecuteContext.GetControls();
+	URigHierarchy* Hierarchy = ExecuteContext.Hierarchy;
 
-	if (Bones && Controls) {
+	if (Hierarchy) {
 
 		FName FootBoneName;
 		bool* Locked = nullptr;
@@ -189,8 +189,10 @@ FRigUnit_FootLocking_Execute() {
 				LockedTrans = &LockedTransRight;
 			}
 
-			FTransform Root = Bones->GetGlobalTransform("root");
-			FTransform Foot = Controls->GetGlobalTransform(FootBoneName);
+			FRigElementKey RootElement("root", ERigElementType::Bone);
+			FRigElementKey FootElement(FootBoneName, ERigElementType::Control);
+			FTransform Root = Hierarchy->GetGlobalTransform(RootElement);
+			FTransform Foot = Hierarchy->GetGlobalTransform(FootElement);
 
 			FVector RootTrans2D = Root.GetLocation();
 			float RootHeight = RootTrans2D.Z;
@@ -207,7 +209,7 @@ FRigUnit_FootLocking_Execute() {
 					*Locked = false;
 				}
 				else {
-					Controls->SetGlobalTransform(FootBoneName, *LockedTrans);
+					Hierarchy->SetGlobalTransform(FootElement, *LockedTrans);
 				}
 
 			}
@@ -258,7 +260,7 @@ struct OffsetHelperEntry {
 FRigUnit_AdditionalOffsets_Execute() {
 	DECLARE_SCOPE_HIERARCHICAL_COUNTER_RIGUNIT()
 
-	FRigControlHierarchy* Hierarchy = ExecuteContext.GetControls();
+	URigHierarchy* Hierarchy = ExecuteContext.Hierarchy;
 
 	if (Hierarchy) {
 
@@ -275,13 +277,16 @@ FRigUnit_AdditionalOffsets_Execute() {
 		};
 
 		for (const auto& Offset : Offsets) {
-			FTransform Transform = Hierarchy->GetGlobalTransform(Offset.name);
+
+			FRigElementKey OffsetElement(Offset.name, ERigElementType::Control);
+
+			FTransform Transform = Hierarchy->GetGlobalTransform(OffsetElement);
 
 			FQuat NormOffsetRot = (*Offset.rot).Quaternion();
 			NormOffsetRot.Normalize();
 			FTransform OffsetTransform(NormOffsetRot, *Offset.pos);
 			
-			Hierarchy->SetGlobalTransform(Offset.name, OffsetTransform * Transform);
+			Hierarchy->SetGlobalTransform(OffsetElement, OffsetTransform * Transform);
 		}
 
 	}
diff --git a/Source/MoCapPlugin/Private/MoCapPlugin.cpp b/Source/MoCapPlugin/Private/MoCapPlugin.cpp
index 88d1398..2e33580 100644
--- a/Source/MoCapPlugin/Private/MoCapPlugin.cpp
+++ b/Source/MoCapPlugin/Private/MoCapPlugin.cpp
@@ -23,7 +23,7 @@ void FMoCapPluginModule::ShutdownModule()
 
 void FMoCapPluginModule::AskForSettings()
 {
-	bIsMaster = IDisplayCluster::Get().GetClusterMgr() != nullptr && IDisplayCluster::Get().GetClusterMgr()->IsMaster();
+	bIsMaster = IDisplayCluster::Get().GetClusterMgr() != nullptr && IDisplayCluster::Get().GetClusterMgr()->IsPrimary();
 	bPluginInitialized = true;
 }
 
-- 
GitLab