Something went wrong on our end
Select Git revision
executor.py
-
Felix Tomski authoredFelix Tomski authored
RWTHVRClusterUtilities.cpp 2.51 KiB
#include "Utility/RWTHVRClusterUtilities.h"
#include "DisplayClusterConfigurationTypes.h"
#include "DisplayClusterRootActor.h"
#include "IDisplayCluster.h"
#include "Cluster/IDisplayClusterClusterManager.h"
#include "Components/DisplayClusterCameraComponent.h"
#include "Config/IDisplayClusterConfigManager.h"
#include "Engine/Engine.h"
#include "Engine/LocalPlayer.h"
#include "Game/IDisplayClusterGameManager.h"
DEFINE_LOG_CATEGORY(RWTHVRCluster);
bool URWTHVRClusterUtilities::IsRoomMountedMode()
{
return IDisplayCluster::Get().GetOperationMode() == EDisplayClusterOperationMode::Cluster;
}
bool URWTHVRClusterUtilities::IsCave()
{
if (!IsRoomMountedMode())
return false;
const UDisplayClusterConfigurationData* ClusterConfig = IDisplayCluster::Get().GetConfigMgr()->GetConfig();
return ClusterConfig->CustomParameters.Contains("Hardware_Platform") &&
ClusterConfig->CustomParameters.Find("Hardware_Platform")->Equals("aixcave", ESearchCase::IgnoreCase);
}
bool URWTHVRClusterUtilities::IsRolv()
{
if (!IsRoomMountedMode())
return false;
const UDisplayClusterConfigurationData* ClusterConfig = IDisplayCluster::Get().GetConfigMgr()->GetConfig();
return ClusterConfig->CustomParameters.Contains("Hardware_Platform") &&
ClusterConfig->CustomParameters.Find("Hardware_Platform")->Equals("ROLV", ESearchCase::IgnoreCase);
}
/* Return true on the Primary in cluster mode and in a normal desktop session. Otherwise false */
bool URWTHVRClusterUtilities::IsPrimaryNode()
{
if (!IDisplayCluster::IsAvailable())
{
return true;
}
IDisplayClusterClusterManager* Manager = IDisplayCluster::Get().GetClusterMgr();
if (Manager == nullptr)
{
return true; // if we are not in cluster mode, we are always the primary node
}
return Manager->IsPrimary() || !Manager->IsSecondary();
}
bool URWTHVRClusterUtilities::IsSecondaryNode() { return !IsPrimaryNode(); }
FString URWTHVRClusterUtilities::GetNodeName()
{
return IsRoomMountedMode() ? IDisplayCluster::Get().GetClusterMgr()->GetNodeId() : FString(TEXT("Localhost"));
}
float URWTHVRClusterUtilities::GetEyeDistance()
{
const ADisplayClusterRootActor* RootActor = IDisplayCluster::Get().GetGameMgr()->GetRootActor();
return (RootActor) ? RootActor->GetDefaultCamera()->GetInterpupillaryDistance() : 0.0f;
}
EDisplayClusterEyeStereoOffset URWTHVRClusterUtilities::GetNodeEyeType()
{
const ADisplayClusterRootActor* RootActor = IDisplayCluster::Get().GetGameMgr()->GetRootActor();
return (RootActor) ? RootActor->GetDefaultCamera()->GetStereoOffset() : EDisplayClusterEyeStereoOffset::None;
}