Files
UnrealEngine/Engine/Source/Editor/UnrealEd/Private/Cooker/Algo/GraphReachability.h
2025-05-18 13:04:45 +08:00

24 lines
986 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "GraphConvert.h"
namespace Algo::Graph
{
/**
* Calculates the reachability graph for the given input graph: an edge exists in the reachability graph from vertex A
* to vertex B if and only if B is reachable from A by following edges in the input graph.
*
* @param InGraph The input graph
* @param OutReachabilityGraphBuffer Buffer that holds memory for the output graph. It must not be deallocated or
* modified until OutReachabilityGraph is no longer referenced.
* @param OutReachabilityGraph The reachability graph of the input graph. Note that it is in Graph Form but is
* unnormalized: edges for each vertex are arbitrarily ordered according to internal calculations to
* reduce memory use.
*/
void ConstructReachabilityGraph(TConstArrayView<TConstArrayView<FVertex>> InGraph, TArray64<FVertex>& OutReachabilityGraphBuffer,
TArray<TConstArrayView<FVertex>>& OutGraph);
}