UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Mass::FRelationManager Struct Reference

#include <MassRelationManager.h>

Classes

struct  FHierarchyEntitiesContainer
 

Public Member Functions

UE_API FRelationManager (FMassEntityManager &EntityManager)
 
template<UE::Mass::CRelation T>
FMassEntityHandle CreateRelationInstance (FMassEntityHandle Subject, FMassEntityHandle Object)
 
FMassEntityHandle CreateRelationInstance (const FTypeHandle RelationTypeHandle, FMassEntityHandle Subject, FMassEntityHandle Object)
 
TArray< FMassEntityHandleCreateRelationInstances (TNotNull< const UScriptStruct * > RelationType, TArrayView< FMassEntityHandle > Subjects, TArrayView< FMassEntityHandle > Objects)
 
UE_API TArray< FMassEntityHandleCreateRelationInstances (const FTypeHandle RelationTypeHandle, TArrayView< FMassEntityHandle > Subjects, TArrayView< FMassEntityHandle > Objects)
 
UE_API bool DestroyRelationInstance (const FTypeHandle RelationTypeHandle, const FMassEntityHandle Subject, const FMassEntityHandle Object)
 
UE_API bool DestroyRelationInstance (FMassRelationRoleInstanceHandle RelationHandle) const
 
TArray< FMassEntityHandleGetRelationSubjects (TNotNull< const UScriptStruct * > RelationType, const FMassEntityHandle ObjectEntity) const
 
TArray< FMassEntityHandleGetRelationSubjects (const FTypeHandle RelationTypeHandle, const FMassEntityHandle ObjectEntity) const
 
TArray< FMassEntityHandleGetRelationObjects (TNotNull< const UScriptStruct * > RelationType, const FMassEntityHandle SubjectEntity) const
 
TArray< FMassEntityHandleGetRelationObjects (const FTypeHandle RelationTypeHandle, const FMassEntityHandle SubjectEntity) const
 
TArray< FMassEntityHandleGetRelationEntities (TConstArrayView< FMassRelationRoleInstanceHandle > RelationEntitiesContainer) const
 
void GetRelationEntities (TConstArrayView< FMassRelationRoleInstanceHandle > RelationEntitiesContainer, TArray< FMassEntityHandle > &InOutEntityHandles) const
 
TArray< FMassEntityHandleGetRoleEntities (TConstArrayView< FMassRelationRoleInstanceHandle > RelationEntitiesContainer) const
 
void GetRoleEntities (TConstArrayView< FMassRelationRoleInstanceHandle > RelationEntitiesContainer, TArray< FMassEntityHandle > &InOutEntityHandles) const
 
FTypeHandle GetRelationTypeHandle (TNotNull< const UScriptStruct * > RelationType) const
 
UE_API bool IsSubjectOfRelation (const FTypeHandle RelationTypeHandle, const FMassEntityHandle Subject, const FMassEntityHandle Object) const
 
UE_API bool IsSubjectOfRelation (const FRelationData &RelationDataInstance, const FMassEntityHandle Subject, const FMassEntityHandle Object) const
 
UE_API bool IsSubjectOfRelationRecursive (const FTypeHandle RelationTypeHandle, const FMassEntityHandle Subject, const FMassEntityHandle Object) const
 
UE_API bool IsSubjectOfRelationRecursive (const FRelationData &RelationDataInstance, const FMassEntityHandle Subject, const FMassEntityHandle Object) const
 
void OnRelationTypeRegistered (const FTypeHandle RegisteredTypeHandle, const FRelationTypeTraits &RelationTypeTraits)
 
const FRelationDataGetRelationDataChecked (const FTypeHandle RelationTypeHandle) const
 
FRelationDataGetRelationDataChecked (const FTypeHandle RelationTypeHandle)
 

Protected Member Functions

FRelationDataCreateRelationData (const FTypeHandle RelationTypeHandle)
 
UE_API TArray< FMassEntityHandleGetRelationObjects (const FRelationData &RelationData, const FMassEntityHandle SubjectEntity) const
 
UE_API TArray< FMassEntityHandleGetRelationSubjects (const FRelationData &RelationData, const FMassEntityHandle ObjectEntity) const
 
const FRelationDataGetRelationData (const FTypeHandle RelationTypeHandle) const
 
void GatherHierarchy (const FRelationData &RelationData, const FMassEntityHandle SubjectHandle, FHierarchyEntitiesContainer &SubSubjects, uint32 Depth=0) const
 

Protected Attributes

FMassEntityManagerEntityManager
 
const FTypeManagerTypeManager
 
TMap< FTypeHandle, FRelationDataRelationsDataMap
 

Constructor & Destructor Documentation

◆ FRelationManager()

UE::Mass::FRelationManager::FRelationManager ( FMassEntityManager EntityManager)
explicit

Member Function Documentation

◆ CreateRelationData()

FRelationData & UE::Mass::FRelationManager::CreateRelationData ( const FTypeHandle  RelationTypeHandle)
protected

◆ CreateRelationInstance() [1/2]

FMassEntityHandle UE::Mass::FRelationManager::CreateRelationInstance ( const FTypeHandle  RelationTypeHandle,
FMassEntityHandle  Subject,
FMassEntityHandle  Object 
)
inline

◆ CreateRelationInstance() [2/2]

template<UE::Mass::CRelation T>
FMassEntityHandle UE::Mass::FRelationManager::CreateRelationInstance ( FMassEntityHandle  Subject,
FMassEntityHandle  Object 
)

◆ CreateRelationInstances() [1/2]

TArray< FMassEntityHandle > UE::Mass::FRelationManager::CreateRelationInstances ( const FTypeHandle  RelationTypeHandle,
TArrayView< FMassEntityHandle Subjects,
TArrayView< FMassEntityHandle Objects 
)

Creates valid relation instances of type RelationTypeHandle, binding Subjects and Objects Note that the input arrays can have their order modified by the function, all the relation pairs that are not valid, are moved to the back of the arrays The number of elements in Subjects and Objects must match.

◆ CreateRelationInstances() [2/2]

TArray< FMassEntityHandle > UE::Mass::FRelationManager::CreateRelationInstances ( TNotNull< const UScriptStruct * >  RelationType,
TArrayView< FMassEntityHandle Subjects,
TArrayView< FMassEntityHandle Objects 
)
inline

Creates a relation type handle with RelationType, and calls the other CreateRelationInstances implementation

◆ DestroyRelationInstance() [1/2]

bool UE::Mass::FRelationManager::DestroyRelationInstance ( const FTypeHandle  RelationTypeHandle,
const FMassEntityHandle  Subject,
const FMassEntityHandle  Object 
)

◆ DestroyRelationInstance() [2/2]

bool UE::Mass::FRelationManager::DestroyRelationInstance ( FMassRelationRoleInstanceHandle  RelationHandle) const

◆ GatherHierarchy()

void UE::Mass::FRelationManager::GatherHierarchy ( const FRelationData RelationData,
const FMassEntityHandle  SubjectHandle,
FHierarchyEntitiesContainer SubSubjects,
uint32  Depth = 0 
) const
protected

◆ GetRelationData()

const FRelationData * UE::Mass::FRelationManager::GetRelationData ( const FTypeHandle  RelationTypeHandle) const
inlineprotected

◆ GetRelationDataChecked() [1/2]

FRelationData & UE::Mass::FRelationManager::GetRelationDataChecked ( const FTypeHandle  RelationTypeHandle)
inline

◆ GetRelationDataChecked() [2/2]

const FRelationData & UE::Mass::FRelationManager::GetRelationDataChecked ( const FTypeHandle  RelationTypeHandle) const
inline

◆ GetRelationEntities() [1/2]

TArray< FMassEntityHandle > UE::Mass::FRelationManager::GetRelationEntities ( TConstArrayView< FMassRelationRoleInstanceHandle RelationEntitiesContainer) const

◆ GetRelationEntities() [2/2]

void UE::Mass::FRelationManager::GetRelationEntities ( TConstArrayView< FMassRelationRoleInstanceHandle RelationEntitiesContainer,
TArray< FMassEntityHandle > &  InOutEntityHandles 
) const

◆ GetRelationObjects() [1/3]

TArray< FMassEntityHandle > UE::Mass::FRelationManager::GetRelationObjects ( const FRelationData RelationData,
const FMassEntityHandle  SubjectEntity 
) const
protected

◆ GetRelationObjects() [2/3]

TArray< FMassEntityHandle > UE::Mass::FRelationManager::GetRelationObjects ( const FTypeHandle  RelationTypeHandle,
const FMassEntityHandle  SubjectEntity 
) const
inline

◆ GetRelationObjects() [3/3]

TArray< FMassEntityHandle > UE::Mass::FRelationManager::GetRelationObjects ( TNotNull< const UScriptStruct * >  RelationType,
const FMassEntityHandle  SubjectEntity 
) const
inline

Fetch all the entities that are "objects" in instances of the given relation type, where SubjectEntity is the "subject" of the relation

◆ GetRelationSubjects() [1/3]

TArray< FMassEntityHandle > UE::Mass::FRelationManager::GetRelationSubjects ( const FRelationData RelationData,
const FMassEntityHandle  ObjectEntity 
) const
protected

◆ GetRelationSubjects() [2/3]

TArray< FMassEntityHandle > UE::Mass::FRelationManager::GetRelationSubjects ( const FTypeHandle  RelationTypeHandle,
const FMassEntityHandle  ObjectEntity 
) const
inline

◆ GetRelationSubjects() [3/3]

TArray< FMassEntityHandle > UE::Mass::FRelationManager::GetRelationSubjects ( TNotNull< const UScriptStruct * >  RelationType,
const FMassEntityHandle  ObjectEntity 
) const
inline

Fetch all the entities that are "subjects" in instances of the given relation type, where ObjectEntity is the "object" of the relation

◆ GetRelationTypeHandle()

FTypeHandle UE::Mass::FRelationManager::GetRelationTypeHandle ( TNotNull< const UScriptStruct * >  RelationType) const
inline

◆ GetRoleEntities() [1/2]

TArray< FMassEntityHandle > UE::Mass::FRelationManager::GetRoleEntities ( TConstArrayView< FMassRelationRoleInstanceHandle RelationEntitiesContainer) const

◆ GetRoleEntities() [2/2]

void UE::Mass::FRelationManager::GetRoleEntities ( TConstArrayView< FMassRelationRoleInstanceHandle RelationEntitiesContainer,
TArray< FMassEntityHandle > &  InOutEntityHandles 
) const

◆ IsSubjectOfRelation() [1/2]

bool UE::Mass::FRelationManager::IsSubjectOfRelation ( const FRelationData RelationDataInstance,
const FMassEntityHandle  Subject,
const FMassEntityHandle  Object 
) const

◆ IsSubjectOfRelation() [2/2]

bool UE::Mass::FRelationManager::IsSubjectOfRelation ( const FTypeHandle  RelationTypeHandle,
const FMassEntityHandle  Subject,
const FMassEntityHandle  Object 
) const

◆ IsSubjectOfRelationRecursive() [1/2]

bool UE::Mass::FRelationManager::IsSubjectOfRelationRecursive ( const FRelationData RelationDataInstance,
const FMassEntityHandle  Subject,
const FMassEntityHandle  Object 
) const

◆ IsSubjectOfRelationRecursive() [2/2]

bool UE::Mass::FRelationManager::IsSubjectOfRelationRecursive ( const FTypeHandle  RelationTypeHandle,
const FMassEntityHandle  Subject,
const FMassEntityHandle  Object 
) const

◆ OnRelationTypeRegistered()

void UE::Mass::FRelationManager::OnRelationTypeRegistered ( const FTypeHandle  RegisteredTypeHandle,
const FRelationTypeTraits RelationTypeTraits 
)

Member Data Documentation

◆ EntityManager

FMassEntityManager& UE::Mass::FRelationManager::EntityManager
protected

◆ RelationsDataMap

TMap<FTypeHandle, FRelationData> UE::Mass::FRelationManager::RelationsDataMap
protected

◆ TypeManager

const FTypeManager& UE::Mass::FRelationManager::TypeManager
protected

The documentation for this struct was generated from the following files: