Files
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

74 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Components/SceneComponent.h"
#include "Cluster/IDisplayClusterClusterSyncObject.h"
#include "DisplayClusterSceneComponentSync.generated.h"
/**
* Abstract synchronization component
*/
UCLASS(Abstract)
class DISPLAYCLUSTER_API UDisplayClusterSceneComponentSync
: public USceneComponent
, public IDisplayClusterClusterSyncObject
{
GENERATED_BODY()
public:
UDisplayClusterSceneComponentSync(const FObjectInitializer& ObjectInitializer);
virtual ~UDisplayClusterSceneComponentSync()
{ }
public:
//////////////////////////////////////////////////////////////////////////////////////////////
// IDisplayClusterClusterSyncObject
//////////////////////////////////////////////////////////////////////////////////////////////
virtual bool IsActive() const override;
virtual FString GetSyncId() const override
{
return SyncId;
}
virtual bool IsDirty() const override
{
return true;
}
virtual void ClearDirty() override
{ }
public:
//////////////////////////////////////////////////////////////////////////////////////////////
// IDisplayClusterStringSerializable
//////////////////////////////////////////////////////////////////////////////////////////////
virtual FString SerializeToString() const override;
virtual bool DeserializeFromString(const FString& data) override;
public:
virtual void BeginPlay() override;
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
protected:
virtual FString GenerateSyncId();
virtual FTransform GetSyncTransform() const
{ return FTransform(); }
virtual void SetSyncTransform(const FTransform& t)
{ }
protected:
// Caching state
FVector LastSyncLoc;
FRotator LastSyncRot;
FVector LastSyncScale;
private:
FString SyncId;
};