11#include "NetObjectGridFilter.generated.h"
16 class FWorldLocations;
17 struct FRepTagFindInfo;
37 bool operator==(
FName Key)
const {
return FilterProfileName == Key; }
54 uint32 ViewPosRelevancyFrameCount = 2;
57 uint16 DefaultFrameCountBeforeCulling = 4;
60 float CellSizeX = 20000.0f;
63 float CellSizeY = 20000.0f;
67 float DefaultCullDistance = 15000.0f;
74 bool bUseExactCullDistance =
true;
125 IRISCORE_API void RemoveCellInfoForObject(
const FObjectLocationInfo& ObjectInfo);
132 ObjectInfosChunkSize = 64 * 1024,
133 InvalidStateIndex = 65535U,
134 InvalidStateOffset = 65535U,
144 bool operator==(
const FCellBox&)
const;
163 return CullDistanceSq;
174 CullDistance = FPlatformMath::Sqrt(DistanceSq);
175 CullDistanceSq = DistanceSq;
179 float CullDistance = 0.0f;
180 float CullDistanceSq = 0.0f;
200 friend bool operator==(
const FCellCoord&
A,
const FCellCoord&
B)
202 return (
A.X ==
B.X) & (
A.Y ==
B.Y);
216 struct FCellAndTimestamp
222 friend bool operator==(
const FCellAndTimestamp&
A,
const FCellAndTimestamp&
B)
224 return (
A.Cell ==
B.Cell) & (
A.Timestamp ==
B.Timestamp);
228 struct FPerConnectionInfo
238 struct FNetGridFilterStats
240 FNetGridFilterStats() =
default;
242 void Reset() { *
this = FNetGridFilterStats(); }
245 uint64 CullTestingTimeInCycles = 0;
246 uint32 CullTestedObjects = 0;
257 uint16 GetFrameCountBeforeCulling(
FName ProfileName)
const;
259 static bool AreCellsDisjoint(
const FCellBox&
A,
const FCellBox&
B);
260 static bool DoesCellContainCoord(
const FCellBox&
Cell,
const FCellCoord& Coord);
267#if UE_NET_IRIS_CSV_STATS
268 FNetGridFilterStats Stats;
274 struct FDebugUpdateCellInfo
278 FCellBox PrevCellBox;
281 float ObjectCullDistance;
285 FDebugUpdateCellInfo DebugUpdateCellInfo;
290 float MaxNetCullDistance = 0.f;
324 return (MinX !=
Other.MinX) | (MinY !=
Other.MinY) | (MaxX !=
Other.MaxX) | (MaxY !=
Other.MaxY);
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
UE_FORCEINLINE_HINT bool operator!=(const FIndexedPointer &Other) const
Definition LockFreeList.h:76
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition Engine.Build.cs:7
Definition NameTypes.h:617
Definition ChunkedArray.h:56
Definition UnrealString.h.inl:34
Definition StrongObjectPtrTemplates.h:26
Definition NetBitArray.h:74
Definition WorldLocations.h:57
Definition NetObjectFilter.h:121
Definition NetObjectFilter.h:178
Definition NetObjectGridFilter.h:45
Definition NetObjectGridFilter.h:83
virtual void UpdateObjectInfo(FPerObjectInfo &PerObjectInfo, const FObjectLocationInfo &ObjectLocationInfo, const UE::Net::FReplicationInstanceProtocol *InstanceProtocol)
Definition NetObjectGridFilter.h:184
virtual void OnObjectRemoved(uint32 ObjectIndex)
Definition NetObjectGridFilter.h:190
virtual bool BuildObjectInfo(uint32 ObjectIndex, FNetObjectFilterAddObjectParams &Params)
Definition NetObjectGridFilter.h:187
Definition NetObjectGridFilter.h:300
uint32 GetTypeHash(const FKey &Key)
Definition BlackboardKey.h:35
bool operator==(const FCachedAssetKey &A, const FCachedAssetKey &B)
Definition AssetDataMap.h:501
Definition NetworkVersion.cpp:28
@ Config
Property should be loaded/saved to ini file as permanent profile.
Definition ObjectMacros.h:1053
U16 Index
Definition radfft.cpp:71
Definition NetObjectFilter.h:143
Definition NetObjectFilter.h:129
Definition NetObjectFilter.h:101
Definition NetObjectFilter.h:52
Definition NetObjectGridFilter.h:26
Definition NetObjectFilter.h:93
Definition NetObjectFilter.h:81
static CORE_API const TVector< double > ZeroVector
Definition Vector.h:79
Definition ReplicationProtocol.h:42
Definition NetObjectFilter.h:227
Definition NetObjectGridFilter.h:138
int32 MaxY
Definition NetObjectGridFilter.h:142
int32 MaxX
Definition NetObjectGridFilter.h:140
int32 MinX
Definition NetObjectGridFilter.h:139
int32 MinY
Definition NetObjectGridFilter.h:141
bool operator==(const FCellBox &) const
Definition NetObjectGridFilter.h:317
bool operator!=(const FCellBox &) const
Definition NetObjectGridFilter.h:322
Definition NetObjectGridFilter.h:102
bool IsUsingLocationInState() const
Definition NetObjectGridFilter.h:104
void SetLocationStateOffset(uint16 Offset)
Definition NetObjectGridFilter.h:114
bool IsUsingWorldLocations() const
Definition NetObjectGridFilter.h:103
uint16 GetLocationStateIndex() const
Definition NetObjectGridFilter.h:118
void SetInfoIndex(uint32 Index)
Definition NetObjectGridFilter.h:120
void SetLocationStateIndex(uint16 Index)
Definition NetObjectGridFilter.h:117
uint32 GetInfoIndex() const
Definition NetObjectGridFilter.h:121
uint16 GetLocationStateOffset() const
Definition NetObjectGridFilter.h:115
Definition NetObjectGridFilter.h:150
float GetCullDistance() const
Definition NetObjectGridFilter.h:156
FCellBox CellBox
Definition NetObjectGridFilter.h:152
float GetCullDistanceSq() const
Definition NetObjectGridFilter.h:161
void SetCullDistanceSq(float DistanceSq)
Definition NetObjectGridFilter.h:172
void SetCullDistance(float Distance)
Definition NetObjectGridFilter.h:166