5#include "Containers/Array.h"
33 template<
typename IsElementFunction>
155 (*GroupIDToCompactIdx)[ID] = NumGroups;
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void Init()
Definition LockFreeList.h:4
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void SetNumUninitialized(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2369
Definition ParametricSurfaceData.h:18
Disjoint set with additional storage to track the size of each set.
Definition SizedDisjointSet.h:12
int32 Union(int32 A, int32 B)
Definition SizedDisjointSet.h:54
int32 Find(int32 Idx)
Definition SizedDisjointSet.h:74
void Init(int32 NumIDs, IsElementFunction IsElement)
Definition SizedDisjointSet.h:34
void Init(int32 NumIDs)
Definition SizedDisjointSet.h:21
int32 FindWithoutCollapse(int32 Idx) const
Definition SizedDisjointSet.h:90
TArray< int32 > Parents
Definition SizedDisjointSet.h:13
int32 GetSize(int32 Idx) const
Definition SizedDisjointSet.h:102
FSizedDisjointSet()=default
TArray< int32 > Sizes
Definition SizedDisjointSet.h:13
int32 CompactedGroupIndexToGroupID(TArray< int32 > *CompactIdxToGroupID, TArray< int32 > *GroupIDToCompactIdx, int32 MinGroupSize=1) const
Definition SizedDisjointSet.h:116
FSizedDisjointSet(int32 NumIDs)
Definition SizedDisjointSet.h:16