Apparatus Version 1.22
ECS data-oriented workflow for Unreal Engine.
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Friends | List of all members
FFingerprint Struct Reference

The traits/details fingerprint. More...

#include <Fingerprint.h>

Inheritance diagram for FFingerprint:
Inheritance graph
[legend]
Collaboration diagram for FFingerprint:
Collaboration graph
[legend]

Public Types

typedef FTraitmark::TraitsType TraitsType
 The type of traits array. More...
 
typedef FDetailmark::DetailsType DetailsType
 The type of details array. More...
 

Public Member Functions

const TraitsTypeGetTraits () const
 Get the traits of the fingerprint. More...
 
const DetailsTypeGetDetails () const
 Get the details of the fingerprint. More...
 
int32 TraitsNum () const
 The number of traits in the fingerprint. More...
 
int32 DetailsNum () const
 The number of details in the fingerprint. More...
 
const FTraitmarkGetTraitmark () const
 Get the traitmark part of the fingerprint. More...
 
const FDetailmarkGetDetailmark () const
 Get the detailmark part of the fingerprint. More...
 
 operator const FTraitmark & () const
 Convert a fingerprint to a traitmark. More...
 
 operator const FDetailmark & () const
 Convert a fingerprint to a detailmark. More...
 
const FBitMaskGetTraitsMask () const
 Get the traits mask of the fingerprint. More...
 
const FBitMaskGetDetailsMask () const
 Get the details mask of the fingerprint. More...
 
UScriptStruct * TraitAt (const int32 Index) const
 Get a trait by its index. More...
 
TSubclassOf< UDetailDetailAt (const int32 Index) const
 Get a detail by its index. More...
 
 operator TraitsType () const
 Convert to an array of trait types. More...
 
 operator DetailsType () const
 Convert to an array of detail classes. More...
 
bool IsEmpty () const
 Check if the fingerprint is completely empty. More...
 
 operator bool () const
 Check if a fingerprint is viable and has any effect. More...
 
EApparatusStatus FindDetailsMappingFrom (const TArray< TSubclassOf< UDetail > > &InDetailClasses, TArray< int32 > &OutMapping) const
 Get an indexing mapping from another fingerprint defined by an array of details. More...
 
void FindTraitsMappingFrom (const TArray< UScriptStruct * > &InTraitmark, TArray< int32 > &OutMapping) const
 Get an indexing mapping from another traitmark defined by an array of traits. More...
 
EApparatusStatus FindDetailsMappingFrom (const TArray< TSubclassOf< UDetail > > &InDetailClasses, TArray< TArray< int32 > > &OutMapping) const
 Get an indexing multi-mapping from another fingerprint defined by an array of details. More...
 
EApparatusStatus FindDetailsMappingFrom (const FFingerprint &Fingerprint, TArray< int32 > &OutMapping) const
 Get an indexing mapping from another fingerprint. More...
 
EApparatusStatus FindTraitsMappingFrom (const FFingerprint &Fingerprint, TArray< int32 > &OutMapping) const
 Get an indexing mapping from another fingerprint's traits. More...
 
EApparatusStatus FindTraitsMappingFrom (const FTraitmark &InTraitmark, TArray< int32 > &OutMapping) const
 Get an indexing mapping from another traitmark's traits. More...
 
EApparatusStatus FindDetailsMappingTo (const FFingerprint &Fingerprint, TArray< int32 > &OutMapping) const
 Get an indexing details mapping to another fingerprint. More...
 
EApparatusStatus FindTraitsMappingTo (const FTraitmark &InTraitmark, TArray< int32 > &OutMapping) const
 Get an indexing traits mapping to another traitmark. More...
 
EApparatusStatus FindTraitsMappingTo (const FFingerprint &InFingerprint, TArray< int32 > &OutMapping) const
 Get an indexing traits mapping to another traitmark. More...
 
EApparatusStatus FindDetailsMappingFrom (const FFingerprint &Fingerprint, TArray< TArray< int32 > > &OutMapping) const
 Get a detail indexing multi-mapping from another fingerprint. More...
 
EApparatusStatus FindDetailsMappingTo (const FFingerprint &Fingerprint, TArray< TArray< int32 > > &OutMapping) const
 Get an indexing multi-mapping to another fingerprint. More...
 
bool FlagmarkMatches (const FFilter &Filter) const
 Check if the fingerprint's flagmark matches a filter. More...
 
bool TraitsMatch (const FFilter &Filter) const
 Check if the fingerprint's traits part match a filter. More...
 
bool DetailsMatch (const FFilter &Filter) const
 Check if the fingerprint's details part match a filter. More...
 
bool Matches (const EFlagmark IncludingFlagmark, const EFlagmark ExcludingFlagmark=FM_None) const
 Check if the fingerprint matches the flagmarks used as filters. More...
 
bool Matches (const FFilter &Filter) const
 Check if the fingerprint matches a filter. More...
 
bool Matches (const FFilter &Filter, const EFlagmark IncludingFlagmarkOverride, const EFlagmark ExcludingFlagmarkOverride) const
 Check if the fingerprint matches a filter with flagmarks filtering overriden. More...
 
bool Matches (const FFingerprint &InFingerprint) const
 Check if the fingerprint matches another fingerprint acting as a filter. More...
 
bool Matches (const FTraitmark &InTraitmark) const
 Check if the fingerprint matches a traitmark acting as a filter. More...
 
bool Matches (const FDetailmark &InDetailmark) const
 Check if the fingerprint matches a detailmark acting as a filter. More...
 
bool operator== (const FFingerprint &Other) const
 Compare two fingerprints for equality. More...
 
bool operator!= (const FFingerprint &Other) const
 Compare two fingerprint for inequality. More...
 
bool Identical (const FFingerprint *Other, uint32 PortFlags) const
 Compare two fingerprints for equality. More...
 
int32 IndexOf (UScriptStruct *const TraitType) const
 Get the index of a specific trait type. More...
 
int32 IndexOf (const TSubclassOf< UDetail > DetailClass) const
 Get the index of a specific detail class. More...
 
EApparatusStatus IndicesOf (const TSubclassOf< UDetail > DetailClass, TArray< int32 > &OutIndices) const
 Get the indices of a specific detail class. More...
 
EApparatusStatus SetTraitmark (FTraitmark &&InTraitmark)
 Move a traitmark to the fingerprint's traitmark. More...
 
EApparatusStatus SetTraitmark (const FTraitmark &InTraitmark)
 Set the fingerprint's traitmark equal to a traitmark. More...
 
EApparatusStatus SetDetailmark (FDetailmark &&InDetailmark)
 Move a detailmark to the fingerprint's detailmark. More...
 
EApparatusStatus SetDetailmark (const FDetailmark &InDetailmark)
 Set the fingerprint's detailmark equal to a detailmark. More...
 
EApparatusStatus Set (FTraitmark &&InTraitmark, const bool bPreserveFlagmark=true)
 Move a traitmark to the fingerprint. More...
 
EApparatusStatus Set (const FTraitmark &InTraitmark, const bool bPreserveFlagmark=true)
 Set the fingerprint equal to a traitmark. More...
 
EApparatusStatus Set (FDetailmark &&InDetailmark, const bool bPreserveFlagmark=true)
 Move a detailmark to the fingerprint. More...
 
EApparatusStatus Set (const FDetailmark &InDetailmark, const bool bPreserveFlagmark=true)
 Set the fingerprint equal to a detailmark. More...
 
EApparatusStatus Set (FFingerprint &&InFingerprint)
 Move another fingerprint to this one. More...
 
EApparatusStatus Set (const FFingerprint &InFingerprint)
 Set the fingerprint equal to another one. More...
 
template<typename AllocatorT >
EApparatusStatus Set (const TArray< UScriptStruct *, AllocatorT > &InTraits, const EFlagmark InFlagmark)
 Set the fingerprint to an array of traits and a flagmark. More...
 
template<typename AllocatorT >
EApparatusStatus Set (const TArray< TSubclassOf< UDetail >, AllocatorT > &InDetailClasses, const EFlagmark InFlagmark)
 Set a fingerprint to an array of detail classes and a flagmark. More...
 
template<typename AllocatorT >
EApparatusStatus Set (const TArray< UDetail *, AllocatorT > &InDetails, const EFlagmark InFlagmark)
 Set a fingerprint to an array of active-tested details and a flagmark. More...
 
FFingerprintoperator= (FTraitmark &&InTraitmark)
 Move a traitmark to the fingerprint. More...
 
FFingerprintoperator= (const FTraitmark &InTraitmark)
 Set the fingerprint equal to a traitmark. More...
 
FFingerprintoperator= (FDetailmark &&InDetailmark)
 Move a detailmark to the fingerprint. More...
 
FFingerprintoperator= (const FDetailmark &InDetailmark)
 Set the fingerprint equal to a detailmark. More...
 
FFingerprintoperator= (FFingerprint &&Fingerprint)
 Move a fingerprint to this one. More...
 
FFingerprintoperator= (const FFingerprint &Fingerprint)
 Set the fingerprint equal to another fingerprint. More...
 
template<typename AllocatorT >
FFingerprintoperator= (const TArray< UScriptStruct *, AllocatorT > &InTraitTypes)
 Set a fingerprint equal to an array of trait types. More...
 
template<typename AllocatorT >
FFingerprintoperator= (const TArray< TSubclassOf< UDetail >, AllocatorT > &InDetailClasses)
 Set a fingerprint equal to an array of detail classes. More...
 
template<typename AllocatorT >
FFingerprintoperator= (const TArray< UDetail *, AllocatorT > &InDetails)
 Set a fingerprint equal to an array of details. More...
 
EApparatusStatus Add (std::initializer_list< UScriptStruct * > TraitTypes)
 Add trait types to a fingerprint. More...
 
EApparatusStatus Add (std::initializer_list< TSubclassOf< UDetail > > DetailClasses)
 Add detail classes to a fingerprint. More...
 
EApparatusStatus Add (const FFingerprint &InFingerprint)
 Add a fingerprint. More...
 
EApparatusStatus Add (const FFingerprint &InFingerprint, const EFlagmark InFlagmark)
 Add a fingerprint with a flagmark override. More...
 
EApparatusStatus Add (UScriptStruct *const TraitType, const EFlagmark InFlagmark=FM_None)
 Add a trait type and a flagmark to the fingerprint. More...
 
EApparatusStatus Add (const TSubclassOf< UDetail > DetailClass, const EFlagmark InFlagmark=FM_None)
 Add a detail class and a flagmark to the fingerprint. More...
 
template<typename TraitsExtractorT >
EApparatusStatus Add (const TraitsExtractorT &InTraits, const EFlagmark InFlagmark=FM_None)
 Add generic traits and a boot state specification. More...
 
template<typename AllocatorT >
EApparatusStatus Add (const TArray< UScriptStruct *, AllocatorT > &InTraitTypes, const EFlagmark InFlagmark=FM_None)
 Add an array of traits and a flagmark specification. More...
 
template<typename AllocatorT >
EApparatusStatus Add (const TArray< TSubclassOf< UDetail >, AllocatorT > &InDetailClasses, const EFlagmark InFlagmark=FM_None)
 Add an arrary of detail classes and an optional flagmark. More...
 
template<typename AllocatorT >
EApparatusStatus Add (const TArray< UDetail *, AllocatorT > &InDetails, const EFlagmark InFlagmark=FM_None)
 Add an array of details and an optional flagmark. More...
 
template<typename T >
EApparatusStatus AddTrait ()
 Add a trait type. More...
 
template<class T >
EApparatusStatus AddDetail ()
 Add a detail class. More...
 
template<class ... Ts>
EApparatusStatus Add ()
 Add component(s) to a fingerprint. More...
 
FFingerprintoperator+= (std::initializer_list< UScriptStruct * > TraitTypes)
 Add variadic trait types. More...
 
FFingerprintoperator+= (std::initializer_list< TSubclassOf< UDetail > > DetailClasses)
 Add variadic detail classes. More...
 
FFingerprintoperator+= (const FFingerprint &Fingerprint)
 Add a fingerprint specification. More...
 
template<typename AllocatorT >
FFingerprintoperator+= (const TArray< UScriptStruct *, AllocatorT > &TraitTypes)
 Add an array of trait types. More...
 
template<typename AllocatorT >
FFingerprintoperator+= (const TArray< TSubclassOf< UDetail >, AllocatorT > &DetailClasses)
 Add an array of detail classes. More...
 
template<typename AllocatorT >
FFingerprintoperator+= (const TArray< UDetail *, AllocatorT > &InDetails)
 Add active details from an array. More...
 
FFingerprintoperator+= (UScriptStruct *TraitType)
 Add a single trait type. More...
 
FFingerprintoperator+= (TSubclassOf< UDetail > DetailClass)
 Add a single detail class. More...
 
EApparatusStatus Remove (UScriptStruct *const TraitType)
 Remove a trait type from the fingerprint specification. More...
 
EApparatusStatus Remove (const TSubclassOf< UDetail > DetailClass)
 Remove a detail class from the fingerprint specification. More...
 
template<typename T >
EApparatusStatus RemoveTrait ()
 Remove a trait type from a fingerprint. More...
 
template<class D >
EApparatusStatus RemoveDetail ()
 Remove a detail class from a fingerprint. More...
 
template<class ... Cs>
EApparatusStatus Remove ()
 Remove component(s) from the fingerprint. More...
 
EApparatusStatus RemoveAllTraits ()
 Remove all of the traits (if any). More...
 
EApparatusStatus RemoveAllDetails ()
 Remove all of the details (if any). More...
 
FFingerprintoperator-= (UScriptStruct *const TraitType)
 Remove a trait type from the fingerprint. More...
 
FFingerprintoperator-= (const TSubclassOf< UDetail > DetailClass)
 Remove a detail class from a fingerprint. More...
 
bool Contains (const UScriptStruct *const TraitType) const
 Check whether a fingerprint contains a trait specification. More...
 
bool Contains (const TSubclassOf< UDetail > DetailClass) const
 Check whether a fingerprint contains a detail specification. More...
 
template<typename T >
bool ContainsTrait () const
 Check whether a fingerprint contains a trait specification. More...
 
template<class D >
bool ContainsDetail () const
 Check whether a fingerprint contains a detail specification. More...
 
template<typename ... Ts>
bool Contains () const
 Check whether a fingerprint contains a component specification. More...
 
EApparatusStatus Reset (const EFlagmark InFlagmark=FM_None)
 Clear the fingerprint without any deallocations. More...
 
FString ToString () const
 Convert a fingerprint to a string. More...
 
uint32 CalcHash () const
 Calculate the hash sum of the fingerprint. More...
 
bool Serialize (FArchive &Archive)
 Serialize the fingerprint to the archive. More...
 
void PostSerialize (const FArchive &Archive)
 Post-serialize the fingerprint updating its caches. More...
 
 FFingerprint (const int32 InFlagmark=FM_None)
 Construct an empty fingerprint with an optional boot state. More...
 
 FFingerprint (const TSubclassOf< UDetail > DetailClass, const int32 InFlagmark=FM_None)
 Construct a new fingerprint from a single detail class and an optional boot state. More...
 
 FFingerprint (UScriptStruct *const TraitType, const int32 InFlagmark=FM_None)
 Construct a new fingerprint from a single trait type and an optional boot state. More...
 
template<typename AllocatorT >
 FFingerprint (const TArray< UDetail *, AllocatorT > &InDetailClasses, const int32 InFlagmark=FM_None)
 Construct a fingerprint from an array of details and an optional boot state. More...
 
template<typename AllocatorT >
 FFingerprint (const TArray< TSubclassOf< UDetail >, AllocatorT > &InDetailClasses, const int32 InFlagmark=FM_None)
 Construct a fingerprint from an array of detail classes and an optional boot state. More...
 
template<typename AllocatorTA , typename AllocatorTB >
 FFingerprint (const TArray< UScriptStruct *, AllocatorTA > &InTraitTypes, const TArray< TSubclassOf< UDetail >, AllocatorTB > &InDetailClasses, const int32 InFlagmark=FM_None)
 Construct a fingerprint from arrays of detail classes and trait types and also an optional boot state. More...
 
 FFingerprint (std::initializer_list< UScriptStruct * > InTraitTypes, std::initializer_list< TSubclassOf< UDetail > > InDetailClasses, const int32 InFlagmark=FM_None)
 Construct a fingerprint from initializer lists of trait types and detail classes and also an optional boot state. More...
 
 FFingerprint (FFingerprint &&InFingerprint)
 Move-construct a new fingerprint. More...
 
 FFingerprint (const FFingerprint &InFingerprint)
 Construct a fingerprint as a copy of another one. More...
 
template<typename ... Ts>
 FFingerprint (TFingerprint< Ts... > &&InFingerprint)
 Move-construct from a templated fingerprint. More...
 
 FFingerprint (FTraitmark &&InTraitmark, const int32 InFlagmark=FM_None)
 Construct a new fingerprint while moving a traitmark and a flagmark. More...
 
 FFingerprint (FDetailmark &&InDetailmark, const int32 InFlagmark=FM_None)
 Construct a new fingerprint while moving a detailmark and a flagmark. More...
 
 FFingerprint (FTraitmark &&InTraitmark, FDetailmark &&InDetailmark, const int32 InFlagmark=FM_None)
 Construct a new fingerprint while moving a traitmark and a detailmark. More...
 
 FFingerprint (const FTraitmark &InTraitmark, const int32 InFlagmark=FM_None)
 Construct a new fingerprint with a traitmark and a flagmark. More...
 
 FFingerprint (const FDetailmark &InDetailmark, const int32 InFlagmark=FM_None)
 Construct a new fingerprint with a detailmark and a flagmark. More...
 
 FFingerprint (const FTraitmark &InTraitmark, const FDetailmark &InDetailmark, const int32 InFlagmark=FM_None)
 Construct a new fingerprint with a traitmark and a detailmark. More...
 
Flagmark
EFlagmark GetFlagmark () const
 Get the flagmark. More...
 
EFlagmark SetFlagmark (const EFlagmark InFlagmark)
 Set the new active flagmark. More...
 
EApparatusStatus SetFlagmark_Status (const EFlagmark InFlagmark)
 Set the new active flagmark. More...
 
EFlagmark SetFlagmarkMasked (const EFlagmark InFlagmark, const EFlagmark InMask)
 Set the new active flagmark to a masked flagmark. More...
 
EApparatusStatus SetFlagmarkMasked_Status (const EFlagmark InFlagmark, const EFlagmark InMask)
 Set the new active flagmark to a masked flagmark. More...
 
EFlagmark AddToFlagmark (const EFlagmark InFlagmark)
 Add flags to the flagmark. More...
 
EApparatusStatus AddToFlagmark_Status (const EFlagmark InFlagmark)
 Add flags to the flagmark. More...
 
EFlagmark RemoveFromFlagmark (const EFlagmark InFlagmark)
 Remove flags from the flagmark. More...
 
EApparatusStatus RemoveFromFlagmark_Status (const EFlagmark InFlagmark)
 Remove flags from the flagmark. More...
 
bool HasFlag (const EFlagmarkBit Flag) const
 Get the flag state of the fingerprint. More...
 
bool SetFlag (const EFlagmarkBit Flag, const bool bState=true)
 Set a flagmark bit to a specific state. More...
 
EApparatusStatus SetFlag_Status (const EFlagmarkBit Flag, const bool bState=true)
 Set a flagmark bit to a specific state. More...
 
bool ToggleFlag (const EFlagmarkBit Flag)
 Toggle the state of a flagmark bit. More...
 
bool SetBooted (bool bState=true)
 Set the new active boot state. More...
 
bool IsStale () const
 Check if the fingerprint corresponds to a stale entity. More...
 
bool IsBooted () const
 Check if the fingerprint corresponds to a booted entity. More...
 

Static Public Member Functions

template<typename ... Ts>
static FFingerprint Make (const EFlagmark InFlagmark=FM_None)
 Make a fingerprint with components and an optional boot filter. More...
 

Static Public Attributes

static const FFingerprint Zero
 The all-zeroed fingerprint. More...
 

Friends

class UBelt
 
class AMechanism
 
class UApparatusFunctionLibrary
 
class UChunk
 
struct FSubjectHandle
 
struct FFilter
 
uint32 GetTypeHash (const FFingerprint &Fingerprint)
 Get the hash of a fingerprint. More...
 
FArchive & operator<< (FArchive &Ar, FFingerprint &InFingerprint)
 Serialization operator. More...
 

Detailed Description

The traits/details fingerprint.

Member Typedef Documentation

◆ DetailsType

The type of details array.

◆ TraitsType

The type of traits array.

Constructor & Destructor Documentation

◆ FFingerprint() [1/16]

FFingerprint::FFingerprint ( const int32  InFlagmark = FM_None)
inline

Construct an empty fingerprint with an optional boot state.

◆ FFingerprint() [2/16]

FFingerprint::FFingerprint ( const TSubclassOf< UDetail DetailClass,
const int32  InFlagmark = FM_None 
)
inline

Construct a new fingerprint from a single detail class and an optional boot state.

◆ FFingerprint() [3/16]

FFingerprint::FFingerprint ( UScriptStruct *const  TraitType,
const int32  InFlagmark = FM_None 
)
inline

Construct a new fingerprint from a single trait type and an optional boot state.

◆ FFingerprint() [4/16]

template<typename AllocatorT >
FFingerprint::FFingerprint ( const TArray< UDetail *, AllocatorT > &  InDetailClasses,
const int32  InFlagmark = FM_None 
)
inline

Construct a fingerprint from an array of details and an optional boot state.

◆ FFingerprint() [5/16]

template<typename AllocatorT >
FFingerprint::FFingerprint ( const TArray< TSubclassOf< UDetail >, AllocatorT > &  InDetailClasses,
const int32  InFlagmark = FM_None 
)
inline

Construct a fingerprint from an array of detail classes and an optional boot state.

◆ FFingerprint() [6/16]

template<typename AllocatorTA , typename AllocatorTB >
FFingerprint::FFingerprint ( const TArray< UScriptStruct *, AllocatorTA > &  InTraitTypes,
const TArray< TSubclassOf< UDetail >, AllocatorTB > &  InDetailClasses,
const int32  InFlagmark = FM_None 
)
inline

Construct a fingerprint from arrays of detail classes and trait types and also an optional boot state.

◆ FFingerprint() [7/16]

FFingerprint::FFingerprint ( std::initializer_list< UScriptStruct * >  InTraitTypes,
std::initializer_list< TSubclassOf< UDetail > >  InDetailClasses,
const int32  InFlagmark = FM_None 
)
inline

Construct a fingerprint from initializer lists of trait types and detail classes and also an optional boot state.

◆ FFingerprint() [8/16]

FFingerprint::FFingerprint ( FFingerprint &&  InFingerprint)
inline

Move-construct a new fingerprint.

◆ FFingerprint() [9/16]

FFingerprint::FFingerprint ( const FFingerprint InFingerprint)
inline

Construct a fingerprint as a copy of another one.

◆ FFingerprint() [10/16]

template<typename ... Ts>
FFingerprint::FFingerprint ( TFingerprint< Ts... > &&  InFingerprint)
inline

Move-construct from a templated fingerprint.

◆ FFingerprint() [11/16]

FFingerprint::FFingerprint ( FTraitmark &&  InTraitmark,
const int32  InFlagmark = FM_None 
)
inline

Construct a new fingerprint while moving a traitmark and a flagmark.

◆ FFingerprint() [12/16]

FFingerprint::FFingerprint ( FDetailmark &&  InDetailmark,
const int32  InFlagmark = FM_None 
)
inline

Construct a new fingerprint while moving a detailmark and a flagmark.

◆ FFingerprint() [13/16]

FFingerprint::FFingerprint ( FTraitmark &&  InTraitmark,
FDetailmark &&  InDetailmark,
const int32  InFlagmark = FM_None 
)
inline

Construct a new fingerprint while moving a traitmark and a detailmark.

◆ FFingerprint() [14/16]

FFingerprint::FFingerprint ( const FTraitmark InTraitmark,
const int32  InFlagmark = FM_None 
)
inline

Construct a new fingerprint with a traitmark and a flagmark.

◆ FFingerprint() [15/16]

FFingerprint::FFingerprint ( const FDetailmark InDetailmark,
const int32  InFlagmark = FM_None 
)
inline

Construct a new fingerprint with a detailmark and a flagmark.

◆ FFingerprint() [16/16]

FFingerprint::FFingerprint ( const FTraitmark InTraitmark,
const FDetailmark InDetailmark,
const int32  InFlagmark = FM_None 
)
inline

Construct a new fingerprint with a traitmark and a detailmark.

Member Function Documentation

◆ Add() [1/11]

template<class ... Ts>
EApparatusStatus FFingerprint::Add ( )
inline

Add component(s) to a fingerprint.

Templated version.

Returns
The status of the operation.

◆ Add() [2/11]

EApparatusStatus FFingerprint::Add ( const FFingerprint InFingerprint)
inline

Add a fingerprint.

Parameters
InFingerprintThe fingerprint to add.
Returns
The status of the operation.
EApparatusStatus::Noop if nothing was actually changed.

◆ Add() [3/11]

EApparatusStatus FFingerprint::Add ( const FFingerprint InFingerprint,
const EFlagmark  InFlagmark 
)
inline

Add a fingerprint with a flagmark override.

Parameters
InFingerprintThe fingerprint to add.
InFlagmarkThe flagmark to add.
Returns
The status of the operation.
EApparatusStatus::Noop if nothing was actually changed.

◆ Add() [4/11]

template<typename AllocatorT >
EApparatusStatus FFingerprint::Add ( const TArray< TSubclassOf< UDetail >, AllocatorT > &  InDetailClasses,
const EFlagmark  InFlagmark = FM_None 
)
inline

Add an arrary of detail classes and an optional flagmark.

Parameters
InDetailClassesThe detail classes to add.
InFlagmarkThe flagmark to add.
Returns
The status of the operation.

◆ Add() [5/11]

template<typename AllocatorT >
EApparatusStatus FFingerprint::Add ( const TArray< UDetail *, AllocatorT > &  InDetails,
const EFlagmark  InFlagmark = FM_None 
)
inline

Add an array of details and an optional flagmark.

Only the enabled details get actually added.

Template Parameters
AllocatorTThe type of array allocator.
Parameters
InDetailsThe details to add. Only the active ones get actually added.
InFlagmarkThe flagmark to add.
Returns
The status of the operation.
EApparatusStatus::Noop Nothing was actually performed.

◆ Add() [6/11]

template<typename AllocatorT >
EApparatusStatus FFingerprint::Add ( const TArray< UScriptStruct *, AllocatorT > &  InTraitTypes,
const EFlagmark  InFlagmark = FM_None 
)
inline

Add an array of traits and a flagmark specification.

Parameters
InTraitTypesThe traits to add.
InFlagmarkThe flagmark to add.
Returns
The status of the operation.

◆ Add() [7/11]

template<typename TraitsExtractorT >
EApparatusStatus FFingerprint::Add ( const TraitsExtractorT &  InTraits,
const EFlagmark  InFlagmark = FM_None 
)
inline

Add generic traits and a boot state specification.

Parameters
InTraitsThe extracted traits to add.
InFlagmarkThe flagmark to add.
Returns
The status of the operation.
EApparatusStatus::Noop if nothing was actually changed.

◆ Add() [8/11]

EApparatusStatus FFingerprint::Add ( const TSubclassOf< UDetail DetailClass,
const EFlagmark  InFlagmark = FM_None 
)
inline

Add a detail class and a flagmark to the fingerprint.

Parameters
DetailClassThe class of the detail to add.
InFlagmarkThe flagmark to add.
Returns
The status of the operation.
EApparatusStatus::Noop if nothing was actually changed.

◆ Add() [9/11]

EApparatusStatus FFingerprint::Add ( std::initializer_list< TSubclassOf< UDetail > >  DetailClasses)
inline

Add detail classes to a fingerprint.

Returns
The status of the operation.

◆ Add() [10/11]

EApparatusStatus FFingerprint::Add ( std::initializer_list< UScriptStruct * >  TraitTypes)
inline

Add trait types to a fingerprint.

Returns
The status of the operation.

◆ Add() [11/11]

EApparatusStatus FFingerprint::Add ( UScriptStruct *const  TraitType,
const EFlagmark  InFlagmark = FM_None 
)
inline

Add a trait type and a flagmark to the fingerprint.

Parameters
TraitTypeThe type of the trait to add.
InFlagmarkThe flagmark to add.
Returns
The status of the operation.
EApparatusStatus::Noop if nothing was actually changed.

◆ AddDetail()

template<class T >
EApparatusStatus FFingerprint::AddDetail ( )
inline

Add a detail class.

Templated version.

Returns
The status of the operation.

◆ AddToFlagmark()

EFlagmark FFingerprint::AddToFlagmark ( const EFlagmark  InFlagmark)
inline

Add flags to the flagmark.

The method is atomic and thread-safe.

Parameters
InFlagmarkThe flags to add with a binary "or".
Returns
The previous flagmark.
See also
SetFlag()

◆ AddToFlagmark_Status()

EApparatusStatus FFingerprint::AddToFlagmark_Status ( const EFlagmark  InFlagmark)
inline

Add flags to the flagmark.

Status version.

The method is atomic and thread-safe.

Parameters
InFlagmarkThe flags to add with a binary "or".
Returns
The previous flagmark.
See also
AddToFlagmark()

◆ AddTrait()

template<typename T >
EApparatusStatus FFingerprint::AddTrait ( )
inline

Add a trait type.

Templated version.

Returns
The status of the operation.

◆ CalcHash()

uint32 FFingerprint::CalcHash ( ) const
inline

Calculate the hash sum of the fingerprint.

The results are cached internally.

This method is thread-safe for solid state subjects, since their hash won't actually change.

◆ Contains() [1/3]

template<typename ... Ts>
bool FFingerprint::Contains ( ) const
inline

Check whether a fingerprint contains a component specification.

Returns
Returns true, if all of the components are within the fingerprint.

◆ Contains() [2/3]

bool FFingerprint::Contains ( const TSubclassOf< UDetail DetailClass) const
inline

Check whether a fingerprint contains a detail specification.

◆ Contains() [3/3]

bool FFingerprint::Contains ( const UScriptStruct *const  TraitType) const
inline

Check whether a fingerprint contains a trait specification.

◆ ContainsDetail()

template<class D >
bool FFingerprint::ContainsDetail ( ) const
inline

Check whether a fingerprint contains a detail specification.

Templated version.

◆ ContainsTrait()

template<typename T >
bool FFingerprint::ContainsTrait ( ) const
inline

Check whether a fingerprint contains a trait specification.

Templated version.

◆ DetailAt()

TSubclassOf< UDetail > FFingerprint::DetailAt ( const int32  Index) const
inline

Get a detail by its index.

◆ DetailsMatch()

bool FFingerprint::DetailsMatch ( const FFilter Filter) const
inline

Check if the fingerprint's details part match a filter.

◆ DetailsNum()

int32 FFingerprint::DetailsNum ( ) const
inline

The number of details in the fingerprint.

◆ FindDetailsMappingFrom() [1/4]

EApparatusStatus FFingerprint::FindDetailsMappingFrom ( const FFingerprint Fingerprint,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing mapping from another fingerprint.

Parameters
FingerprintA fingerprint to get a mapping from.
OutMappingThe resulting mapping.

◆ FindDetailsMappingFrom() [2/4]

EApparatusStatus FFingerprint::FindDetailsMappingFrom ( const FFingerprint Fingerprint,
TArray< TArray< int32 > > &  OutMapping 
) const
inline

Get a detail indexing multi-mapping from another fingerprint.

Parameters
FingerprintA fingerprint to get a mapping from.
OutMappingThe resulting mapping.

◆ FindDetailsMappingFrom() [3/4]

EApparatusStatus FFingerprint::FindDetailsMappingFrom ( const TArray< TSubclassOf< UDetail > > &  InDetailClasses,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing mapping from another fingerprint defined by an array of details.

Parameters
InDetailClassesA fingerprint to get a mapping from.
OutMappingThe resulting mapping.

◆ FindDetailsMappingFrom() [4/4]

EApparatusStatus FFingerprint::FindDetailsMappingFrom ( const TArray< TSubclassOf< UDetail > > &  InDetailClasses,
TArray< TArray< int32 > > &  OutMapping 
) const
inline

Get an indexing multi-mapping from another fingerprint defined by an array of details.

Parameters
InDetailClassesA fingerprint to get a mapping from.
OutMappingThe resulting two-dimensional multi-mapping.
Returns
The status of the operation.

◆ FindDetailsMappingTo() [1/2]

EApparatusStatus FFingerprint::FindDetailsMappingTo ( const FFingerprint Fingerprint,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing details mapping to another fingerprint.

Parameters
FingerprintA fingerprint to get the details mapping to.
OutMappingThe resulting mapping.

◆ FindDetailsMappingTo() [2/2]

EApparatusStatus FFingerprint::FindDetailsMappingTo ( const FFingerprint Fingerprint,
TArray< TArray< int32 > > &  OutMapping 
) const
inline

Get an indexing multi-mapping to another fingerprint.

Parameters
FingerprintA fingerprint to get a mapping to.
OutMappingThe resulting mapping.

◆ FindTraitsMappingFrom() [1/3]

EApparatusStatus FFingerprint::FindTraitsMappingFrom ( const FFingerprint Fingerprint,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing mapping from another fingerprint's traits.

Parameters
FingerprintA fingerprint to get a mapping from.
OutMappingThe resulting traits mapping.

◆ FindTraitsMappingFrom() [2/3]

EApparatusStatus FFingerprint::FindTraitsMappingFrom ( const FTraitmark InTraitmark,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing mapping from another traitmark's traits.

Parameters
InTraitmarkA traitmark to get a mapping from.
OutMappingThe resulting traits mapping.

◆ FindTraitsMappingFrom() [3/3]

void FFingerprint::FindTraitsMappingFrom ( const TArray< UScriptStruct * > &  InTraitmark,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing mapping from another traitmark defined by an array of traits.

Parameters
InTraitmarkA traitmark to get a mapping from.
OutMappingThe resulting mapping.

◆ FindTraitsMappingTo() [1/2]

EApparatusStatus FFingerprint::FindTraitsMappingTo ( const FFingerprint InFingerprint,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing traits mapping to another traitmark.

Parameters
InFingerprintA fingerprint to get the traits mapping to.
OutMappingThe resulting mapping.

◆ FindTraitsMappingTo() [2/2]

EApparatusStatus FFingerprint::FindTraitsMappingTo ( const FTraitmark InTraitmark,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing traits mapping to another traitmark.

Parameters
InTraitmarkA traitmark to get the traits mapping to.
OutMappingThe resulting mapping.

◆ FlagmarkMatches()

bool FFingerprint::FlagmarkMatches ( const FFilter Filter) const
inline

Check if the fingerprint's flagmark matches a filter.

◆ GetDetailmark()

const FDetailmark & FFingerprint::GetDetailmark ( ) const
inline

Get the detailmark part of the fingerprint.

◆ GetDetails()

const DetailsType & FFingerprint::GetDetails ( ) const
inline

Get the details of the fingerprint.

◆ GetDetailsMask()

const FBitMask & FFingerprint::GetDetailsMask ( ) const
inline

Get the details mask of the fingerprint.

◆ GetFlagmark()

EFlagmark FFingerprint::GetFlagmark ( ) const
inline

Get the flagmark.

See also
SetFlagmark() HasFlag()

◆ GetTraitmark()

const FTraitmark & FFingerprint::GetTraitmark ( ) const
inline

Get the traitmark part of the fingerprint.

◆ GetTraits()

const TraitsType & FFingerprint::GetTraits ( ) const
inline

Get the traits of the fingerprint.

◆ GetTraitsMask()

const FBitMask & FFingerprint::GetTraitsMask ( ) const
inline

Get the traits mask of the fingerprint.

◆ HasFlag()

bool FFingerprint::HasFlag ( const EFlagmarkBit  Flag) const
inline

Get the flag state of the fingerprint.

Parameters
FlagThe flag to examine.
Returns
The current state of the flag.

◆ Identical()

bool FFingerprint::Identical ( const FFingerprint Other,
uint32  PortFlags 
) const
inline

Compare two fingerprints for equality.

Editor-friendly method.

Parameters
OtherThe other fingerprint to compare to.
PortFlagsThe contextual port flags.
Returns
The state of examination.

◆ IndexOf() [1/2]

int32 FFingerprint::IndexOf ( const TSubclassOf< UDetail DetailClass) const
inline

Get the index of a specific detail class.

Also supports parent classes.

Parameters
DetailClassThe detail class to look for.

◆ IndexOf() [2/2]

int32 FFingerprint::IndexOf ( UScriptStruct *const  TraitType) const
inline

Get the index of a specific trait type.

◆ IndicesOf()

EApparatusStatus FFingerprint::IndicesOf ( const TSubclassOf< UDetail DetailClass,
TArray< int32 > &  OutIndices 
) const
inline

Get the indices of a specific detail class.

Also supports searches by the parental classes.

Parameters
DetailClassThe detail class to search for. May also be a base class.
OutIndicesThe indices array to output to.
Returns
The status of the operation.
EApparatusStatus::Noop If there are no such details.

◆ IsBooted()

bool FFingerprint::IsBooted ( ) const
inline

Check if the fingerprint corresponds to a booted entity.

This examination is atomic and thread-safe.

Returns
The state of being booted.

◆ IsEmpty()

bool FFingerprint::IsEmpty ( ) const
inline

Check if the fingerprint is completely empty.

◆ IsStale()

bool FFingerprint::IsStale ( ) const
inline

Check if the fingerprint corresponds to a stale entity.

This examination is atomic and thread-safe.

Returns
The state of being stale.

◆ Make()

template<typename ... Ts>
static FFingerprint FFingerprint::Make ( const EFlagmark  InFlagmark = FM_None)
inlinestatic

Make a fingerprint with components and an optional boot filter.

Template Parameters
TsThe types of components to construct with.
Parameters
InFlagmarkThe flagmark to apply.
Returns
The resulting fingerprint.

◆ Matches() [1/6]

bool FFingerprint::Matches ( const EFlagmark  IncludingFlagmark,
const EFlagmark  ExcludingFlagmark = FM_None 
) const
inline

Check if the fingerprint matches the flagmarks used as filters.

◆ Matches() [2/6]

bool FFingerprint::Matches ( const FDetailmark InDetailmark) const
inline

Check if the fingerprint matches a detailmark acting as a filter.

◆ Matches() [3/6]

bool FFingerprint::Matches ( const FFilter Filter) const
inline

Check if the fingerprint matches a filter.

◆ Matches() [4/6]

bool FFingerprint::Matches ( const FFilter Filter,
const EFlagmark  IncludingFlagmarkOverride,
const EFlagmark  ExcludingFlagmarkOverride 
) const
inline

Check if the fingerprint matches a filter with flagmarks filtering overriden.

◆ Matches() [5/6]

bool FFingerprint::Matches ( const FFingerprint InFingerprint) const
inline

Check if the fingerprint matches another fingerprint acting as a filter.

◆ Matches() [6/6]

bool FFingerprint::Matches ( const FTraitmark InTraitmark) const
inline

Check if the fingerprint matches a traitmark acting as a filter.

◆ operator bool()

FFingerprint::operator bool ( ) const
inline

Check if a fingerprint is viable and has any effect.

◆ operator const FDetailmark &()

FFingerprint::operator const FDetailmark & ( ) const
inline

Convert a fingerprint to a detailmark.

◆ operator const FTraitmark &()

FFingerprint::operator const FTraitmark & ( ) const
inline

Convert a fingerprint to a traitmark.

◆ operator DetailsType()

FFingerprint::operator DetailsType ( ) const
inlineexplicit

Convert to an array of detail classes.

◆ operator TraitsType()

FFingerprint::operator TraitsType ( ) const
inlineexplicit

Convert to an array of trait types.

◆ operator!=()

bool FFingerprint::operator!= ( const FFingerprint Other) const
inline

Compare two fingerprint for inequality.

◆ operator+=() [1/8]

FFingerprint & FFingerprint::operator+= ( const FFingerprint Fingerprint)
inline

Add a fingerprint specification.

◆ operator+=() [2/8]

template<typename AllocatorT >
FFingerprint & FFingerprint::operator+= ( const TArray< TSubclassOf< UDetail >, AllocatorT > &  DetailClasses)
inline

Add an array of detail classes.

◆ operator+=() [3/8]

template<typename AllocatorT >
FFingerprint & FFingerprint::operator+= ( const TArray< UDetail *, AllocatorT > &  InDetails)
inline

Add active details from an array.

◆ operator+=() [4/8]

template<typename AllocatorT >
FFingerprint & FFingerprint::operator+= ( const TArray< UScriptStruct *, AllocatorT > &  TraitTypes)
inline

Add an array of trait types.

◆ operator+=() [5/8]

FFingerprint & FFingerprint::operator+= ( std::initializer_list< TSubclassOf< UDetail > >  DetailClasses)
inline

Add variadic detail classes.

◆ operator+=() [6/8]

FFingerprint & FFingerprint::operator+= ( std::initializer_list< UScriptStruct * >  TraitTypes)
inline

Add variadic trait types.

◆ operator+=() [7/8]

FFingerprint & FFingerprint::operator+= ( TSubclassOf< UDetail DetailClass)
inline

Add a single detail class.

◆ operator+=() [8/8]

FFingerprint & FFingerprint::operator+= ( UScriptStruct *  TraitType)
inline

Add a single trait type.

◆ operator-=() [1/2]

FFingerprint & FFingerprint::operator-= ( const TSubclassOf< UDetail DetailClass)
inline

Remove a detail class from a fingerprint.

◆ operator-=() [2/2]

FFingerprint & FFingerprint::operator-= ( UScriptStruct *const  TraitType)
inline

Remove a trait type from the fingerprint.

◆ operator=() [1/9]

FFingerprint & FFingerprint::operator= ( const FDetailmark InDetailmark)
inline

Set the fingerprint equal to a detailmark.

◆ operator=() [2/9]

FFingerprint & FFingerprint::operator= ( const FFingerprint Fingerprint)
inline

Set the fingerprint equal to another fingerprint.

◆ operator=() [3/9]

FFingerprint & FFingerprint::operator= ( const FTraitmark InTraitmark)
inline

Set the fingerprint equal to a traitmark.

◆ operator=() [4/9]

template<typename AllocatorT >
FFingerprint & FFingerprint::operator= ( const TArray< TSubclassOf< UDetail >, AllocatorT > &  InDetailClasses)
inline

Set a fingerprint equal to an array of detail classes.

The flagmark is preserved.

◆ operator=() [5/9]

template<typename AllocatorT >
FFingerprint & FFingerprint::operator= ( const TArray< UDetail *, AllocatorT > &  InDetails)
inline

Set a fingerprint equal to an array of details.

The flagmark is preserved.

◆ operator=() [6/9]

template<typename AllocatorT >
FFingerprint & FFingerprint::operator= ( const TArray< UScriptStruct *, AllocatorT > &  InTraitTypes)
inline

Set a fingerprint equal to an array of trait types.

The flagmark is preserved.

◆ operator=() [7/9]

FFingerprint & FFingerprint::operator= ( FDetailmark &&  InDetailmark)
inline

Move a detailmark to the fingerprint.

◆ operator=() [8/9]

FFingerprint & FFingerprint::operator= ( FFingerprint &&  Fingerprint)
inline

Move a fingerprint to this one.

◆ operator=() [9/9]

FFingerprint & FFingerprint::operator= ( FTraitmark &&  InTraitmark)
inline

Move a traitmark to the fingerprint.

◆ operator==()

bool FFingerprint::operator== ( const FFingerprint Other) const
inline

Compare two fingerprints for equality.

◆ PostSerialize()

void FFingerprint::PostSerialize ( const FArchive &  Archive)
inline

Post-serialize the fingerprint updating its caches.

◆ Remove() [1/3]

template<class ... Cs>
EApparatusStatus FFingerprint::Remove ( )
inline

Remove component(s) from the fingerprint.

◆ Remove() [2/3]

EApparatusStatus FFingerprint::Remove ( const TSubclassOf< UDetail DetailClass)
inline

Remove a detail class from the fingerprint specification.

Even the base-class-matching details get removed. The result is such that the fingerprint won't contain that passed detail class anymore.

Parameters
DetailClassA detail class to remove. May be a base class.
Returns
Was anything actually changed?

◆ Remove() [3/3]

EApparatusStatus FFingerprint::Remove ( UScriptStruct *const  TraitType)
inline

Remove a trait type from the fingerprint specification.

Parameters
TraitTypeA trait type to remove.
Returns
Was anything actually changed?

◆ RemoveAllDetails()

EApparatusStatus FFingerprint::RemoveAllDetails ( )
inline

Remove all of the details (if any).

◆ RemoveAllTraits()

EApparatusStatus FFingerprint::RemoveAllTraits ( )
inline

Remove all of the traits (if any).

◆ RemoveDetail()

template<class D >
EApparatusStatus FFingerprint::RemoveDetail ( )
inline

Remove a detail class from a fingerprint.

Templated version.

Returns
The status of the operation.

◆ RemoveFromFlagmark()

EFlagmark FFingerprint::RemoveFromFlagmark ( const EFlagmark  InFlagmark)
inline

Remove flags from the flagmark.

The method is atomic and thread-safe.

Parameters
InFlagmarkThe flags to remove.
Returns
The previous flagmark.
See also
SetFlag(), AddToFlagmark(const EFlagmark)

◆ RemoveFromFlagmark_Status()

EApparatusStatus FFingerprint::RemoveFromFlagmark_Status ( const EFlagmark  InFlagmark)
inline

Remove flags from the flagmark.

Status version.

The method is atomic and thread-safe.

Parameters
InFlagmarkThe flags to remove.
Returns
The previous flagmark.
See also
RemoveFromFlagmark(const EFlagmark), AddFromFlagmark_Status(const EFlagmark)

◆ RemoveTrait()

template<typename T >
EApparatusStatus FFingerprint::RemoveTrait ( )
inline

Remove a trait type from a fingerprint.

Templated version.

Returns
The status of the operation.

◆ Reset()

EApparatusStatus FFingerprint::Reset ( const EFlagmark  InFlagmark = FM_None)
inline

Clear the fingerprint without any deallocations.

Parameters
InFlagmarkThe flagmark to re-apply.
Returns
The status of the operation.
EApparatusStatus::Noop is nothing was actually changed at all.

◆ Serialize()

bool FFingerprint::Serialize ( FArchive &  Archive)
inline

Serialize the fingerprint to the archive.

◆ Set() [1/9]

EApparatusStatus FFingerprint::Set ( const FDetailmark InDetailmark,
const bool  bPreserveFlagmark = true 
)
inline

Set the fingerprint equal to a detailmark.

Parameters
InDetailmarkThe detailmark to set to.
bPreserveFlagmarkShould existing flagmark be preserved.
Returns
The status of the operation.
EApparatusStatus::Noop if nothing was actually performed.

◆ Set() [2/9]

EApparatusStatus FFingerprint::Set ( const FFingerprint InFingerprint)
inline

Set the fingerprint equal to another one.

◆ Set() [3/9]

EApparatusStatus FFingerprint::Set ( const FTraitmark InTraitmark,
const bool  bPreserveFlagmark = true 
)
inline

Set the fingerprint equal to a traitmark.

Parameters
InTraitmarkThe traitmark to set to.
bPreserveFlagmarkShould existing flagmark be preserved.
Returns
The status of the operation.
EApparatusStatus::Noop if nothing was actually performed.

◆ Set() [4/9]

template<typename AllocatorT >
EApparatusStatus FFingerprint::Set ( const TArray< TSubclassOf< UDetail >, AllocatorT > &  InDetailClasses,
const EFlagmark  InFlagmark 
)
inline

Set a fingerprint to an array of detail classes and a flagmark.

◆ Set() [5/9]

template<typename AllocatorT >
EApparatusStatus FFingerprint::Set ( const TArray< UDetail *, AllocatorT > &  InDetails,
const EFlagmark  InFlagmark 
)
inline

Set a fingerprint to an array of active-tested details and a flagmark.

◆ Set() [6/9]

template<typename AllocatorT >
EApparatusStatus FFingerprint::Set ( const TArray< UScriptStruct *, AllocatorT > &  InTraits,
const EFlagmark  InFlagmark 
)
inline

Set the fingerprint to an array of traits and a flagmark.

◆ Set() [7/9]

EApparatusStatus FFingerprint::Set ( FDetailmark &&  InDetailmark,
const bool  bPreserveFlagmark = true 
)
inline

Move a detailmark to the fingerprint.

Parameters
InDetailmarkThe detailmark to set to.
bPreserveFlagmarkShould existing flagmark be preserved.
Returns
The status of the operation.
EApparatusStatus::Noop if nothing was actually performed.

◆ Set() [8/9]

EApparatusStatus FFingerprint::Set ( FFingerprint &&  InFingerprint)
inline

Move another fingerprint to this one.

◆ Set() [9/9]

EApparatusStatus FFingerprint::Set ( FTraitmark &&  InTraitmark,
const bool  bPreserveFlagmark = true 
)
inline

Move a traitmark to the fingerprint.

Parameters
InTraitmarkThe traitmark to set to.
bPreserveFlagmarkShould existing flagmark be preserved.
Returns
The status of the operation.
EApparatusStatus::Noop if nothing was actually performed.

◆ SetBooted()

bool FFingerprint::SetBooted ( bool  bState = true)
inline

Set the new active boot state.

Parameters
bStateThe boot state to set.
Returns
The previous state of the boot flag.

◆ SetDetailmark() [1/2]

EApparatusStatus FFingerprint::SetDetailmark ( const FDetailmark InDetailmark)
inline

Set the fingerprint's detailmark equal to a detailmark.

The traitmark is preserved, excluding the boot state.

◆ SetDetailmark() [2/2]

EApparatusStatus FFingerprint::SetDetailmark ( FDetailmark &&  InDetailmark)
inline

Move a detailmark to the fingerprint's detailmark.

The traitmark is preserved, excluding the boot state.

◆ SetFlag()

bool FFingerprint::SetFlag ( const EFlagmarkBit  Flag,
const bool  bState = true 
)
inline

Set a flagmark bit to a specific state.

The method is atomic and thread-safe.

Parameters
FlagThe flag to set or clear.
bStateThe state to set the flag to.
Returns
The previous value of the flag.
See also
AddToFlagmark()

◆ SetFlag_Status()

EApparatusStatus FFingerprint::SetFlag_Status ( const EFlagmarkBit  Flag,
const bool  bState = true 
)
inline

Set a flagmark bit to a specific state.

Status version.

The method is atomic and thread-safe.

Parameters
FlagThe flag to set or clear.
bStateThe state to set the flag to.
Returns
The status of the operation.
See also
AddToFlagmark()

◆ SetFlagmark()

EFlagmark FFingerprint::SetFlagmark ( const EFlagmark  InFlagmark)
inline

Set the new active flagmark.

This operation is atomic and thread-safe.

Parameters
InFlagmarkThe flagmark to set to.
Returns
The previous flagmark.
See also
GetFlagmark() SetFlag()

◆ SetFlagmark_Status()

EApparatusStatus FFingerprint::SetFlagmark_Status ( const EFlagmark  InFlagmark)
inline

Set the new active flagmark.

Status version.

This operation is atomic and thread-safe.

Parameters
InFlagmarkThe flagmark to set to.
Returns
The status of the operation.
EApparatusStatus::Noop if nothing was actually changed.
See also
GetFlagmark() SetFlag()

◆ SetFlagmarkMasked()

EFlagmark FFingerprint::SetFlagmarkMasked ( const EFlagmark  InFlagmark,
const EFlagmark  InMask 
)
inline

Set the new active flagmark to a masked flagmark.

An additional mask argument is used to only change certain bits within the flagmark.

The method is atomic and thread-safe.

Parameters
InFlagmarkThe flagmark to set to. Get masked by the second argument.
InMaskThe bit selection to use. Only the set (1) bits get changed.
Returns
The previous value of the flagmark.
See also
GetFlagmark() SetFlag()

◆ SetFlagmarkMasked_Status()

EApparatusStatus FFingerprint::SetFlagmarkMasked_Status ( const EFlagmark  InFlagmark,
const EFlagmark  InMask 
)
inline

Set the new active flagmark to a masked flagmark.

Status version.

An additional mask argument is used to only change certain bits within the flagmark.

The method is atomic and thread-safe.

Parameters
InFlagmarkThe flagmark to set to. Get masked by the second argument.
InMaskThe bit selection to use. Only the set (1) bits get changed.
Returns
The status of the operation.
EApparatusStatus::Noop if nothing was actually changed.
See also
GetFlagmark() SetFlag()

◆ SetTraitmark() [1/2]

EApparatusStatus FFingerprint::SetTraitmark ( const FTraitmark InTraitmark)
inline

Set the fingerprint's traitmark equal to a traitmark.

◆ SetTraitmark() [2/2]

EApparatusStatus FFingerprint::SetTraitmark ( FTraitmark &&  InTraitmark)
inline

Move a traitmark to the fingerprint's traitmark.

◆ ToggleFlag()

bool FFingerprint::ToggleFlag ( const EFlagmarkBit  Flag)
inline

Toggle the state of a flagmark bit.

The method is atomic and thread-safe.

Parameters
FlagThe flag to toggle.
Returns
The previous state of the flag.
See also
SetFlag()

◆ ToString()

FString FFingerprint::ToString ( ) const

Convert a fingerprint to a string.

◆ TraitAt()

UScriptStruct * FFingerprint::TraitAt ( const int32  Index) const
inline

Get a trait by its index.

◆ TraitsMatch()

bool FFingerprint::TraitsMatch ( const FFilter Filter) const
inline

Check if the fingerprint's traits part match a filter.

◆ TraitsNum()

int32 FFingerprint::TraitsNum ( ) const
inline

The number of traits in the fingerprint.

Friends And Related Function Documentation

◆ AMechanism

friend class AMechanism
friend

◆ FFilter

friend struct FFilter
friend

◆ FSubjectHandle

friend struct FSubjectHandle
friend

◆ GetTypeHash

uint32 GetTypeHash ( const FFingerprint Fingerprint)
friend

Get the hash of a fingerprint.

◆ operator<<

FArchive & operator<< ( FArchive &  Ar,
FFingerprint InFingerprint 
)
friend

Serialization operator.

◆ UApparatusFunctionLibrary

friend class UApparatusFunctionLibrary
friend

◆ UBelt

friend class UBelt
friend

◆ UChunk

friend class UChunk
friend

Member Data Documentation

◆ Zero

const FFingerprint FFingerprint::Zero
static

The all-zeroed fingerprint.


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