Apparatus Version 1.23
ECS data-oriented workflow for Unreal Engine.
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Friends | List of all members
FDetailmark Struct Reference

The detail-only fingerprint part. More...

#include <Detailmark.h>

Collaboration diagram for FDetailmark:
Collaboration graph
[legend]

Public Types

typedef TArray< TSubclassOf< UDetail > > DetailsType
 The type of the details array container.
 

Public Member Functions

const DetailsTypeGetDetails () const
 Get the details of the detailmark.
 
 operator const DetailsType & () const
 Convert to an array of detail classes.
 
bool IsEmpty () const
 Check if the detailmark is empty.
 
int32 DetailsNum () const
 The number of details in the detailmark.
 
const FBitMaskGetDetailsMask () const
 Get the details mask of the detailmark.
 
TSubclassOf< UDetailDetailAt (const int32 Index) const
 Get a detail type by its index.
 
TSubclassOf< UDetailoperator[] (const int32 Index) const
 Get a detail type by its index.
 
 operator bool () const
 Check if a detailmark is viable and has any actual effect.
 
bool operator== (const FDetailmark &Other) const
 Compare two detailmarks for equality.
 
bool operator!= (const FDetailmark &Other) const
 Compare two detailmarks for inequality.
 
bool Identical (const FDetailmark *Other, uint32 PortFlags) const
 Compare two detailmarks for equality.
 
FString ToString () const
 Convert a detailmark to a string.
 
Search
int32 IndexOf (const TSubclassOf< UDetail > DetailClass) const
 Get the index of a specific detail class.
 
template<class D >
constexpr int32 IndexOf () const
 Get the index of a specific detail class.
 
template<typename AllocatorT >
EApparatusStatus IndicesOf (const TSubclassOf< UDetail > DetailClass, TArray< int32, AllocatorT > &OutIndices) const
 Find all of the indices of a detail class.
 
bool Contains (const TSubclassOf< UDetail > DetailClass) const
 Check if the detailmark includes a detail class.
 
template<class D >
bool Contains () const
 Check if the detailmark includes a detail class.
 
Mapping
template<typename TAllocatorA , typename TAllocatorB >
EApparatusStatus FindMappingFrom (const TArray< TSubclassOf< UDetail >, TAllocatorA > &InDetailsClasses, TArray< int32, TAllocatorB > &OutMapping) const
 Find an indexing mapping from another detailmark defined by an array of details.
 
template<typename TAllocator , int32 Size>
EApparatusStatus FindMappingFrom (const TArray< TSubclassOf< UDetail >, TAllocator > &InDetailsClasses, std::array< int32, Size > &OutMapping) const
 Find an indexing mapping from another detailmark defined by an array of details.
 
template<typename AllocatorT >
EApparatusStatus FindMappingFrom (const FDetailmark &InDetailmark, TArray< int32, AllocatorT > &OutMapping) const
 Get an indexing mapping from another detailmark's details.
 
template<int32 Size>
EApparatusStatus FindMappingFrom (const FDetailmark &InDetailmark, std::array< int32, Size > &OutMapping) const
 Get an indexing mapping from another detailmark's details.
 
template<typename TAllocatorA , typename TAllocatorB , typename TAllocatorC >
EApparatusStatus FindMappingFrom (const TArray< TSubclassOf< UDetail >, TAllocatorA > &InDetailsClasses, TArray< TArray< int32, TAllocatorC >, TAllocatorB > &OutMapping) const
 Get an indexing multi-mapping from another detailmark defined by an array of details.
 
template<typename TAllocatorA , typename TAllocatorB >
EApparatusStatus FindMappingFrom (const FDetailmark &InDetailmark, TArray< TArray< int32, TAllocatorB >, TAllocatorA > &OutMapping) const
 Get an indexing multi-mapping from another detailmark.
 
template<typename AllocatorT >
EApparatusStatus FindMappingTo (const FDetailmark &InDetailmark, TArray< int32, AllocatorT > &OutMapping) const
 Find an indexing details mapping to another detailmark.
 
template<int32 Size>
EApparatusStatus FindMappingTo (const FDetailmark &InDetailmark, std::array< int32, Size > &OutMapping) const
 Find an indexing details mapping to another detailmark.
 
template<typename TAllocatorA , typename TAllocatorB >
EApparatusStatus FindMappingTo (const FDetailmark &InDetailmark, TArray< TArray< int32, TAllocatorB >, TAllocatorA > &OutMapping) const
 Find a multi-indexing details mapping to another detailmark.
 
Matching
bool Matches (const FFilter &Filter) const
 Check if the detailmark matches a filter.
 
bool Matches (const FDetailmark &InDetailmark) const
 Check if the detailmark matches another detailmark acting as a filter.
 
Assignment
template<EParadigm Paradigm, typename AllocatorT >
TOutcome< Paradigm > Set (const TArray< TSubclassOf< UDetail >, AllocatorT > &InDetailsClasses)
 Set a detailmark to an array of detail classes.
 
template<EParadigm Paradigm, typename AllocatorT >
TOutcome< Paradigm > Set (const TArray< UDetail *, AllocatorT > &InDetails)
 Set a detailmark to an array of active details.
 
template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > Set (FDetailmark &&InDetailmark)
 Move an another detailmark to the detailmark.
 
template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > Set (const FDetailmark &InDetailmark)
 Set the detailmark equal to another detailmark.
 
FDetailmarkoperator= (FDetailmark &&InDetailmark)
 Move a detailmark.
 
FDetailmarkoperator= (const FDetailmark &InDetailmark)
 Set a detailmark equal to another detailmark.
 

Static Public Member Functions

static int32 GetDetailId (const TSubclassOf< UDetail > DetailClass)
 Get a detail's unique identifier.
 
static int32 RegisteredDetailsNum ()
 Get the total number of registered details so far.
 
static const FBitMaskGetDetailMask (const TSubclassOf< UDetail > DetailClass)
 Get the cached mask of a detail type.
 
static const FBitMaskGetExcludedDetailMask (const TSubclassOf< UDetail > DetailClass)
 Get the excluded mask of a detail type.
 
static const FBitMaskGetDetailMask (const UDetail *Detail)
 Get the mask of a detail's class.
 
static const FBitMaskGetExcludedDetailMask (const UDetail *const Detail)
 Get the excluded mask of a details's class.
 
template<class D >
static const FBitMaskGetDetailMask ()
 Get the mask of a detail.
 

Static Public Attributes

static constexpr int32 InvalidDetailId = -1
 Invalid detail identifier.
 
static const FDetailmark Zero
 An empty detailmark constant.
 

Friends

struct FFilter
 
class UChunk
 
struct FSubjectHandle
 
class UBelt
 
class AMechanism
 
class UApparatusFunctionLibrary
 

Serialization

FArchive & operator<< (FArchive &Ar, FDetailmark &Detailmark)
 Serialization operator.
 
bool Serialize (FArchive &Archive)
 Serialize the traitmark to the archive.
 
void PostSerialize (const FArchive &Archive)
 Post-serialize the traitmark updating the mask.
 

Addition

template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > Add (const TSubclassOf< UDetail > DetailClass)
 Add a detail class.
 
template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > Add (std::initializer_list< TSubclassOf< UDetail > > DetailClasses)
 Add detail classes to the detailmark.
 
template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > Add (const FDetailmark &InDetailmark)
 Add a detailmark.
 
template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > AddDecomposed (const TSubclassOf< UDetail > DetailClass)
 Add a detail class while decomposing it with its base classes.
 
template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > AddDecomposed (const FDetailmark &InDetailmark)
 Add a detailmark while decomposing its details to their base classes.
 
template<EParadigm Paradigm, typename AllocatorT >
TOutcome< Paradigm > Add (const TArray< TSubclassOf< UDetail >, AllocatorT > &InDetailsClasses)
 Add an array of detail classes.
 
template<typename AllocatorT >
auto Add (const TArray< TSubclassOf< UDetail >, AllocatorT > &InDetailsClasses)
 Add an array of detail classes.
 
template<EParadigm Paradigm, typename AllocatorT >
TOutcome< Paradigm > Add (const TArray< UDetail *, AllocatorT > &InDetails)
 Add an array of details.
 
template<typename AllocatorT >
auto Add (const TArray< UDetail *, AllocatorT > &InDetails)
 Add an array of details.
 
template<EParadigm Paradigm, class... Ds>
TOutcome< Paradigm > Add ()
 Add detail(s) to the detailmark.
 
template<class... Ds, EParadigm Paradigm = EParadigm::Default>
auto Add ()
 Add detail(s) to the detailmark.
 
FDetailmarkoperator+= (std::initializer_list< TSubclassOf< UDetail > > DetailClasses)
 Add variadic detail classes to the detailmark.
 
FDetailmarkoperator+= (const TArray< TSubclassOf< UDetail > > &DetailClasses)
 Add an array of detail classes to the detailmark.
 
FDetailmarkoperator+= (const TSubclassOf< UDetail > DetailClass)
 Add a single detail class to the detailmark.
 

Removal

template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > Remove (const TSubclassOf< UDetail > DetailClass)
 Remove a detail class from the detailmark.
 
template<EParadigm Paradigm, class... Ds>
TOutcome< Paradigm > Remove ()
 Remove a detail class from the detailmark.
 
template<class... Ds, EParadigm Paradigm = EParadigm::Default>
auto Remove ()
 Remove a detail class from the detailmark.
 
FDetailmarkoperator-= (const TSubclassOf< UDetail > DetailClass)
 Remove a detail type from the detailmark.
 
template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > Reset ()
 Clear the detailmark without any deallocations.
 

Initialization

template<typename... Ds>
static FDetailmark Make ()
 Make a new detailmark with a list of details classes.
 
 FDetailmark ()
 Initialize a new detailmark.
 
 FDetailmark (FDetailmark &&Detailmark)
 Move-initialize a detailmark.
 
 FDetailmark (const FDetailmark &Detailmark)
 Initialize a new detailmark by moving an another one.
 
 FDetailmark (TSubclassOf< UDetail > DetailClass)
 Initialize a new detailmark with a single detail class.
 
 FDetailmark (std::initializer_list< TSubclassOf< UDetail > > InDetailClasses)
 Initialize a new detailmark with an initializer list of detail classes and an optional boot state.
 
template<typename AllocatorT >
 FDetailmark (const TArray< TSubclassOf< UDetail >, AllocatorT > &InDetailClasses)
 Initialize a new detailmark with an array of detail classes and an optional boot state.
 
template<typename AllocatorT >
 FDetailmark (const TArray< UDetail *, AllocatorT > &InDetails)
 Construct a new detailmark with an array of details and an optional boot state.
 

Detailed Description

The detail-only fingerprint part.

Member Typedef Documentation

◆ DetailsType

typedef TArray<TSubclassOf<UDetail> > FDetailmark::DetailsType

The type of the details array container.

Constructor & Destructor Documentation

◆ FDetailmark() [1/7]

FDetailmark::FDetailmark ( )
inline

Initialize a new detailmark.

◆ FDetailmark() [2/7]

FDetailmark::FDetailmark ( FDetailmark &&  Detailmark)
inline

Move-initialize a detailmark.

Parameters
DetailmarkThe detailmark to copy.

◆ FDetailmark() [3/7]

FDetailmark::FDetailmark ( const FDetailmark Detailmark)
inline

Initialize a new detailmark by moving an another one.

Parameters
DetailmarkThe detailmark to move.

◆ FDetailmark() [4/7]

FDetailmark::FDetailmark ( TSubclassOf< UDetail DetailClass)
inline

Initialize a new detailmark with a single detail class.

Parameters
DetailClassA detail class to initialize with.

◆ FDetailmark() [5/7]

FDetailmark::FDetailmark ( std::initializer_list< TSubclassOf< UDetail > >  InDetailClasses)
inline

Initialize a new detailmark with an initializer list of detail classes and an optional boot state.

◆ FDetailmark() [6/7]

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

Initialize a new detailmark with an array of detail classes and an optional boot state.

◆ FDetailmark() [7/7]

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

Construct a new detailmark with an array of details and an optional boot state.

Member Function Documentation

◆ Add() [1/9]

template<EParadigm Paradigm, class... Ds>
TOutcome< Paradigm > FDetailmark::Add ( )
inline

Add detail(s) to the detailmark.

Templated paradigm version.

Template Parameters
ParadigmThe paradigm to work under.
DsThe detail(s) to add.
Returns
The outcome of the operation.

◆ Add() [2/9]

template<class... Ds, EParadigm Paradigm = EParadigm::Default>
auto FDetailmark::Add ( )
inline

Add detail(s) to the detailmark.

Templated version.

Template Parameters
DsThe detail(s) to add.
ParadigmThe paradigm to work under.
Returns
The outcome of the operation.

◆ Add() [3/9]

template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > FDetailmark::Add ( const FDetailmark InDetailmark)
inline

Add a detailmark.

Template Parameters
ParadigmThe paradigm to work under.
Parameters
InDetailmarkThe detailmark to add.
Returns
The outcome of the operation. Returns EApparatusStatus::Noop if nothing was actually changed.

◆ Add() [4/9]

template<EParadigm Paradigm, typename AllocatorT >
TOutcome< Paradigm > FDetailmark::Add ( const TArray< TSubclassOf< UDetail >, AllocatorT > &  InDetailsClasses)
inline

Add an array of detail classes.

Template Parameters
ParadigmThe paradigm to work under.
AllocatorTThe type of the array allocator.
Parameters
InDetailsClassesThe detail classes to add.
Returns
The status of the operation.

◆ Add() [5/9]

template<typename AllocatorT >
auto FDetailmark::Add ( const TArray< TSubclassOf< UDetail >, AllocatorT > &  InDetailsClasses)
inline

Add an array of detail classes.

Template Parameters
AllocatorTThe type of the array allocator.
Parameters
InDetailsClassesThe detail classes to add.
Returns
The status of the operation.

◆ Add() [6/9]

template<EParadigm Paradigm, typename AllocatorT >
TOutcome< Paradigm > FDetailmark::Add ( const TArray< UDetail *, AllocatorT > &  InDetails)
inline

Add an array of details.

Only active details' classes get added.

Template Parameters
ParadigmThe paradigm to work under.
AllocatorTThe type of the array allocator.
Parameters
InDetailsThe details to add.
Returns
The status of the operation.

◆ Add() [7/9]

template<typename AllocatorT >
auto FDetailmark::Add ( const TArray< UDetail *, AllocatorT > &  InDetails)
inline

Add an array of details.

Only active details' classes get added.

Template Parameters
AllocatorTThe type of the array allocator.
Parameters
InDetailsThe details to add.
Returns
The status of the operation.

◆ Add() [8/9]

template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > FDetailmark::Add ( const TSubclassOf< UDetail DetailClass)
inline

Add a detail class.

Template Parameters
ParadigmThe paradigm to work under.
Parameters
DetailClassThe class of the detail to add. May be a nullptr and will ignore it silently in this case.
Returns
The outcome of the operation.

◆ Add() [9/9]

template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > FDetailmark::Add ( std::initializer_list< TSubclassOf< UDetail > >  DetailClasses)
inline

Add detail classes to the detailmark.

Template Parameters
ParadigmThe paradigm to work under.
Parameters
DetailClassesThe detail classes to add.
Returns
The outcome of the operation. Returns EApparatusStatus::Noop if nothing was actually changed.

◆ AddDecomposed() [1/2]

template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > FDetailmark::AddDecomposed ( const FDetailmark InDetailmark)
inline

Add a detailmark while decomposing its details to their base classes.

Template Parameters
ParadigmThe paradigm to work under.
Parameters
InDetailmarkThe detailmark to add.
Returns
The status of the operation. Returns EApparatusStatus::Noop if nothing was actually changed.

◆ AddDecomposed() [2/2]

template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > FDetailmark::AddDecomposed ( const TSubclassOf< UDetail DetailClass)
inline

Add a detail class while decomposing it with its base classes.

Template Parameters
ParadigmThe paradigm to work under.
Parameters
DetailClassA class of the detail to add.
Returns
The status of the operation. Returns EApparatusStatus::Noop if nothing was actually changed.

◆ Contains() [1/2]

template<class D >
bool FDetailmark::Contains ( ) const
inline

Check if the detailmark includes a detail class.

Templated version.

◆ Contains() [2/2]

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

Check if the detailmark includes a detail class.

◆ DetailAt()

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

Get a detail type by its index.

Parameters
IndexThe index of the detail to get.
Returns
The detail at the specified index.

◆ DetailsNum()

int32 FDetailmark::DetailsNum ( ) const
inline

The number of details in the detailmark.

Returns
The number of details currently within the detailmark.

◆ FindMappingFrom() [1/6]

template<int32 Size>
EApparatusStatus FDetailmark::FindMappingFrom ( const FDetailmark InDetailmark,
std::array< int32, Size > &  OutMapping 
) const
inline

Get an indexing mapping from another detailmark's details.

Parameters
InDetailmarkA detailmark to get a mapping from.
OutMappingThe resulting details mapping.
Returns
The status of the operation.

◆ FindMappingFrom() [2/6]

template<typename AllocatorT >
EApparatusStatus FDetailmark::FindMappingFrom ( const FDetailmark InDetailmark,
TArray< int32, AllocatorT > &  OutMapping 
) const
inline

Get an indexing mapping from another detailmark's details.

Parameters
InDetailmarkA detailmark to get a mapping from.
OutMappingThe resulting details mapping.
Returns
The status of the operation.

◆ FindMappingFrom() [3/6]

template<typename TAllocatorA , typename TAllocatorB >
EApparatusStatus FDetailmark::FindMappingFrom ( const FDetailmark InDetailmark,
TArray< TArray< int32, TAllocatorB >, TAllocatorA > &  OutMapping 
) const
inline

Get an indexing multi-mapping from another detailmark.

Parameters
InDetailmarkA detailmark to get a mapping from.
OutMappingThe resulting two-dimensional multi-mapping.

◆ FindMappingFrom() [4/6]

template<typename TAllocator , int32 Size>
EApparatusStatus FDetailmark::FindMappingFrom ( const TArray< TSubclassOf< UDetail >, TAllocator > &  InDetailsClasses,
std::array< int32, Size > &  OutMapping 
) const
inline

Find an indexing mapping from another detailmark defined by an array of details.

Standard array version.

Parameters
InDetailsClassesA detailmark to get a mapping from.
OutMappingThe resulting mapping to output to.

◆ FindMappingFrom() [5/6]

template<typename TAllocatorA , typename TAllocatorB >
EApparatusStatus FDetailmark::FindMappingFrom ( const TArray< TSubclassOf< UDetail >, TAllocatorA > &  InDetailsClasses,
TArray< int32, TAllocatorB > &  OutMapping 
) const
inline

Find an indexing mapping from another detailmark defined by an array of details.

Parameters
InDetailsClassesA detailmark to get a mapping from.
OutMappingThe resulting mapping.

◆ FindMappingFrom() [6/6]

template<typename TAllocatorA , typename TAllocatorB , typename TAllocatorC >
EApparatusStatus FDetailmark::FindMappingFrom ( const TArray< TSubclassOf< UDetail >, TAllocatorA > &  InDetailsClasses,
TArray< TArray< int32, TAllocatorC >, TAllocatorB > &  OutMapping 
) const
inline

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

Parameters
InDetailsClassesA detailmark to get a mapping from.
OutMappingThe resulting two-dimensional multi-mapping.

◆ FindMappingTo() [1/3]

template<int32 Size>
EApparatusStatus FDetailmark::FindMappingTo ( const FDetailmark InDetailmark,
std::array< int32, Size > &  OutMapping 
) const
inline

Find an indexing details mapping to another detailmark.

Standard array output version.

Template Parameters
SizeThe size of output mapping buffer.
Parameters
InDetailmarkA detailmark to get the details mapping to.
OutMappingThe resulting mapping.
Returns
The status of the operation.

◆ FindMappingTo() [2/3]

template<typename AllocatorT >
EApparatusStatus FDetailmark::FindMappingTo ( const FDetailmark InDetailmark,
TArray< int32, AllocatorT > &  OutMapping 
) const
inline

Find an indexing details mapping to another detailmark.

Parameters
InDetailmarkA detailmark to get the details mapping to.
OutMappingThe resulting mapping.
Returns
The status of the operation.

◆ FindMappingTo() [3/3]

template<typename TAllocatorA , typename TAllocatorB >
EApparatusStatus FDetailmark::FindMappingTo ( const FDetailmark InDetailmark,
TArray< TArray< int32, TAllocatorB >, TAllocatorA > &  OutMapping 
) const
inline

Find a multi-indexing details mapping to another detailmark.

Parameters
InDetailmarkA detailmark to get the details mapping to.
OutMappingThe resulting multi-mapping.
Returns
The status of the operation.

◆ GetDetailId()

int32 FDetailmark::GetDetailId ( const TSubclassOf< UDetail DetailClass)
inlinestatic

Get a detail's unique identifier.

◆ GetDetailMask() [1/3]

template<class D >
static const FBitMask & FDetailmark::GetDetailMask ( )
inlinestatic

Get the mask of a detail.

◆ GetDetailMask() [2/3]

const FBitMask & FDetailmark::GetDetailMask ( const TSubclassOf< UDetail DetailClass)
inlinestatic

Get the cached mask of a detail type.

◆ GetDetailMask() [3/3]

const FBitMask & FDetailmark::GetDetailMask ( const UDetail Detail)
inlinestatic

Get the mask of a detail's class.

Cached internally.

◆ GetDetails()

const DetailsType & FDetailmark::GetDetails ( ) const
inline

Get the details of the detailmark.

◆ GetDetailsMask()

const FBitMask & FDetailmark::GetDetailsMask ( ) const
inline

Get the details mask of the detailmark.

Constant version.

Returns
The effective details bit-mask.

◆ GetExcludedDetailMask() [1/2]

const FBitMask & FDetailmark::GetExcludedDetailMask ( const TSubclassOf< UDetail DetailClass)
inlinestatic

Get the excluded mask of a detail type.

◆ GetExcludedDetailMask() [2/2]

static const FBitMask & FDetailmark::GetExcludedDetailMask ( const UDetail *const  Detail)
inlinestatic

Get the excluded mask of a details's class.

Cached internally.

◆ Identical()

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

Compare two detailmarks for equality.

Editor-friendly method.

This compares the details arrays during the editing mode, since it is used for the changes detection.

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

◆ IndexOf() [1/2]

template<class D >
constexpr int32 FDetailmark::IndexOf ( ) const
inlineconstexpr

Get the index of a specific detail class.

Templated version.

Searches for an exact class first, by parental class information second.

Note
The method actually supports non-detail classes, i.e. INDEX_NONE will be safely returned in that case.
Template Parameters
DThe detail to search for.
Returns
The index of the detail class or INDEX_NONE, if there is no such detail within the mark.

◆ IndexOf() [2/2]

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

Get the index of a specific detail class.

Searches for an exact class first, by parental class information second.

Parameters
DetailClassThe detail to search for.
Returns
The index of the detail class or INDEX_NONE, if there is no such detail within or DetailClass is nullptr.

◆ IndicesOf()

template<typename AllocatorT >
EApparatusStatus FDetailmark::IndicesOf ( const TSubclassOf< UDetail DetailClass,
TArray< int32, AllocatorT > &  OutIndices 
) const
inline

Find all of the indices of a detail class.

Parameters
DetailClassA detail class to find the indices of.
OutIndicesThe resulting indices storage.
Returns
The status of the operation.

◆ IsEmpty()

bool FDetailmark::IsEmpty ( ) const
inline

Check if the detailmark is empty.

The detailmark is empty if it has no details in it.

Returns
The state of examination.

◆ Make()

template<typename... Ds>
static FDetailmark FDetailmark::Make ( )
inlinestatic

Make a new detailmark with a list of details classes.

Template Parameters
DsThe classes of details to fill with.
Returns
The resulting detailmark.

◆ Matches() [1/2]

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

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

◆ Matches() [2/2]

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

Check if the detailmark matches a filter.

◆ operator bool()

FDetailmark::operator bool ( ) const
inline

Check if a detailmark is viable and has any actual effect.

◆ operator const DetailsType &()

FDetailmark::operator const DetailsType & ( ) const
inlineexplicit

Convert to an array of detail classes.

◆ operator!=()

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

Compare two detailmarks for inequality.

Two detailmarks are considered to be inequal if their details composition is different (regardless of the ordering).

◆ operator+=() [1/3]

FDetailmark & FDetailmark::operator+= ( const TArray< TSubclassOf< UDetail > > &  DetailClasses)
inline

Add an array of detail classes to the detailmark.

◆ operator+=() [2/3]

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

Add a single detail class to the detailmark.

◆ operator+=() [3/3]

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

Add variadic detail classes to the detailmark.

◆ operator-=()

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

Remove a detail type from the detailmark.

◆ operator=() [1/2]

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

Set a detailmark equal to another detailmark.

◆ operator=() [2/2]

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

Move a detailmark.

◆ operator==()

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

Compare two detailmarks for equality.

Two detailmarks are considered to be equal if their details composition is equal (regardless of the ordering).

◆ operator[]()

TSubclassOf< UDetail > FDetailmark::operator[] ( const int32  Index) const
inline

Get a detail type by its index.

Parameters
IndexThe index of the detail to get.
Returns
The detail at the specified index.
See also
DetailAt()

◆ PostSerialize()

void FDetailmark::PostSerialize ( const FArchive &  Archive)

Post-serialize the traitmark updating the mask.

◆ RegisteredDetailsNum()

int32 FDetailmark::RegisteredDetailsNum ( )
inlinestatic

Get the total number of registered details so far.

◆ Remove() [1/3]

template<EParadigm Paradigm, class... Ds>
TOutcome< Paradigm > FDetailmark::Remove ( )
inline

Remove a detail class from the detailmark.

Templated paradigm version.

Template Parameters
ParadigmThe paradigm to work under.
DsThe classes of the details to remove.
Returns
The outcome of the operation.

◆ Remove() [2/3]

template<class... Ds, EParadigm Paradigm = EParadigm::Default>
auto FDetailmark::Remove ( )
inline

Remove a detail class from the detailmark.

Templated paradigm version.

Template Parameters
ParadigmThe paradigm to work under.
DsThe classes of the details to remove.
Returns
The outcome of the operation.

◆ Remove() [3/3]

template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > FDetailmark::Remove ( const TSubclassOf< UDetail DetailClass)
inline

Remove a detail class from the detailmark.

'

Template Parameters
ParadigmThe paradigm to work under. May be a nullptr and will ignore be ignored silently in that case.
Parameters
DetailClassA detail class to remove.
Returns
Was anything actually changed?

◆ Reset()

template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > FDetailmark::Reset ( )
inline

Clear the detailmark without any deallocations.

Template Parameters
ParadigmThe paradigm to work under.
Returns
The outcome of the operation.
EApparatusStatus::Noop If the detailmark is already empty.

◆ Serialize()

bool FDetailmark::Serialize ( FArchive &  Archive)
inline

Serialize the traitmark to the archive.

◆ Set() [1/4]

template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > FDetailmark::Set ( const FDetailmark InDetailmark)
inline

Set the detailmark equal to another detailmark.

Template Parameters
ParadigmThe paradigm to work under.
Parameters
InDetailmarkThe detailmark to set to.
Returns
The outcome of the operation.

◆ Set() [2/4]

template<EParadigm Paradigm, typename AllocatorT >
TOutcome< Paradigm > FDetailmark::Set ( const TArray< TSubclassOf< UDetail >, AllocatorT > &  InDetailsClasses)
inline

Set a detailmark to an array of detail classes.

Template Parameters
ParadigmThe paradigm to work under.
AllocatorTThe allocator for the array.
Parameters
InDetailsClassesThe classes of the details to set to.
Returns
The outcome of the operation.

◆ Set() [3/4]

template<EParadigm Paradigm, typename AllocatorT >
TOutcome< Paradigm > FDetailmark::Set ( const TArray< UDetail *, AllocatorT > &  InDetails)
inline

Set a detailmark to an array of active details.

Only active details get actually added.

Template Parameters
ParadigmThe paradigm to work under.
Parameters
InDetailsThe details to set to.
Returns
The outcome of the operation.

◆ Set() [4/4]

template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > FDetailmark::Set ( FDetailmark &&  InDetailmark)
inline

Move an another detailmark to the detailmark.

Template Parameters
ParadigmThe paradigm to work under.
Parameters
InDetailmarkThe detailmark to move.
Returns
The outcome of the operation.

◆ ToString()

FString FDetailmark::ToString ( ) const

Convert a detailmark to a string.

Friends And Related Function Documentation

◆ AMechanism

friend class AMechanism
friend

◆ FFilter

friend struct FFilter
friend

◆ FSubjectHandle

friend struct FSubjectHandle
friend

◆ operator<<

FArchive & operator<< ( FArchive &  Ar,
FDetailmark Detailmark 
)
friend

Serialization operator.

◆ UApparatusFunctionLibrary

friend class UApparatusFunctionLibrary
friend

◆ UBelt

friend class UBelt
friend

◆ UChunk

friend class UChunk
friend

Member Data Documentation

◆ InvalidDetailId

constexpr int32 FDetailmark::InvalidDetailId = -1
staticconstexpr

Invalid detail identifier.

◆ Zero

const FDetailmark FDetailmark::Zero
static

An empty detailmark constant.


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