7#include "Containers/Array.h"
9#include "Containers/Map.h"
13#include "Templates/IdentityFunctor.h"
14#include "Templates/Invoke.h"
128template <
typename RangeType,
typename GetKeyEdgesType>
155 OutGraph.EdgeLists.Empty(NumVertices);
159 OutGraph.EdgeLists.Reset(NumVertices);
227template <
typename RangeType,
typename ProjectionType>
247 OutGraph.EdgeLists.Empty(NumVertices);
252 OutGraph.EdgeLists.Reset(NumVertices);
276template <
typename RangeType>
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
AUTORTFM_INFER UE_FORCEINLINE_HINT constexpr auto Invoke(FuncType &&Func, ArgTypes &&... Args) -> decltype(((FuncType &&) Func)((ArgTypes &&) Args...))
Definition Invoke.h:44
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
typename TElementType< T >::Type TElementType_T
Definition ElementType.h:57
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define MAX_int32
Definition NumericLimits.h:25
auto GetNum(const TStringConversion< Converter, DefaultConversionSize > &Conversion) -> decltype(Conversion.Length())
Definition StringConv.h:808
auto GetData(const TStringConversion< Converter, DefaultConversionSize > &Conversion) -> decltype(Conversion.Get())
Definition StringConv.h:802
Definition ArrayView.h:139
UE_NODEBUG UE_FORCEINLINE_HINT SIZE_T GetAllocatedSize(void) const
Definition Array.h:1059
Definition UnrealString.h.inl:34
UE_REWRITE void Sort(RangeType &&Range)
Definition Sort.h:16
Definition GraphConvert.cpp:12
FGraph ConvertToSingleBufferGraph(RangeType &&Graph, ProjectionType Proj, EConvertToGraphOptions Options=EConvertToGraphOptions::None)
Definition GraphConvert.h:228
int32 FVertex
Definition GraphConvert.h:22
FGraph ConstructPartialTransposeGraph(TConstArrayView< TConstArrayView< FVertex > > Graph, TArrayView< FVertex > InVertices, int64 MaxOutGraphEdges, TArray< FVertex > &OutInputVerticesPresentInOutputGraph)
Definition GraphConvert.cpp:359
constexpr FVertex MaxVertex
Definition GraphConvert.h:26
bool TryConstructCondensationGraph(TConstArrayView< TConstArrayView< FVertex > > Graph, FGraph &OutGraph, FMappingOneToMany *OutCondensationVertexToInputVertex, FMappingManyToOne *OutInputVertexToCondensedVertex, EConvertToGraphOptions Options)
Definition GraphConvert.cpp:67
FGraph ConstructTransposeGraph(TConstArrayView< TConstArrayView< FVertex > > Graph, EConvertToGraphOptions Options)
Definition GraphConvert.cpp:14
FGraph ConvertToGraph(const RangeType &UniqueKeys, GetKeyEdgesType GetKeyEdges, EConvertToGraphOptions Options=EConvertToGraphOptions::None)
Definition GraphConvert.h:129
constexpr FVertex InvalidVertex
Definition GraphConvert.h:27
EConvertToGraphOptions
Definition GraphConvert.h:101
Definition IdentityFunctor.h:11
Definition BlendSpaceHelpers.h:20
Definition GraphConvert.h:35
FGraph & operator=(FGraph &&)=default
FGraph(FGraph &&)=default
FGraph & operator=(const FGraph &)=delete
FGraph(const FGraph &)=delete
SIZE_T GetAllocatedSize() const
Definition GraphConvert.h:48
TArray< TConstArrayView< FVertex > > EdgeLists
Definition GraphConvert.h:39
TArray64< FVertex > Buffer
Definition GraphConvert.h:37
Definition GraphConvert.h:85
FMappingManyToOne()=default
SIZE_T GetAllocatedSize() const
Definition GraphConvert.h:94
FMappingManyToOne & operator=(FMappingManyToOne &&)=default
FMappingManyToOne(const FMappingManyToOne &)=default
FMappingManyToOne & operator=(const FMappingManyToOne &)=default
FMappingManyToOne(FMappingManyToOne &&)=default
TArray< FVertex > Mapping
Definition GraphConvert.h:86
Definition GraphConvert.h:61
FMappingOneToMany & operator=(const FMappingOneToMany &)=delete
FMappingOneToMany & operator=(FMappingOneToMany &&)=default
SIZE_T GetAllocatedSize() const
Definition GraphConvert.h:72
TArray64< FVertex > Buffer
Definition GraphConvert.h:62
FMappingOneToMany()=default
FMappingOneToMany(FMappingOneToMany &&)=default
FMappingOneToMany(const FMappingOneToMany &)=delete
TArray< TConstArrayView< FVertex > > Mapping
Definition GraphConvert.h:63