|
Apparatus
Version 1.23
ECS data-oriented workflow for Unreal Engine.
|
The detail-only fingerprint part. More...
#include <Detailmark.h>

Public Types | |
| typedef TArray< TSubclassOf< UDetail > > | DetailsType |
| The type of the details array container. | |
Public Member Functions | |
| const DetailsType & | GetDetails () 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 FBitMask & | GetDetailsMask () const |
| Get the details mask of the detailmark. | |
| TSubclassOf< UDetail > | DetailAt (const int32 Index) const |
| Get a detail type by its index. | |
| TSubclassOf< UDetail > | operator[] (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. | |
| FDetailmark & | operator= (FDetailmark &&InDetailmark) |
| Move a detailmark. | |
| FDetailmark & | operator= (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 FBitMask & | GetDetailMask (const TSubclassOf< UDetail > DetailClass) |
| Get the cached mask of a detail type. | |
| static const FBitMask & | GetExcludedDetailMask (const TSubclassOf< UDetail > DetailClass) |
| Get the excluded mask of a detail type. | |
| static const FBitMask & | GetDetailMask (const UDetail *Detail) |
| Get the mask of a detail's class. | |
| static const FBitMask & | GetExcludedDetailMask (const UDetail *const Detail) |
| Get the excluded mask of a details's class. | |
| template<class D > | |
| static const FBitMask & | GetDetailMask () |
| 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. | |
| FDetailmark & | operator+= (std::initializer_list< TSubclassOf< UDetail > > DetailClasses) |
| Add variadic detail classes to the detailmark. | |
| FDetailmark & | operator+= (const TArray< TSubclassOf< UDetail > > &DetailClasses) |
| Add an array of detail classes to the detailmark. | |
| FDetailmark & | operator+= (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. | |
| FDetailmark & | operator-= (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. | |
The detail-only fingerprint part.
| typedef TArray<TSubclassOf<UDetail> > FDetailmark::DetailsType |
The type of the details array container.
|
inline |
Initialize a new detailmark.
|
inline |
Move-initialize a detailmark.
| Detailmark | The detailmark to copy. |
|
inline |
Initialize a new detailmark by moving an another one.
| Detailmark | The detailmark to move. |
|
inline |
Initialize a new detailmark with a single detail class.
| DetailClass | A detail class to initialize with. |
|
inline |
Initialize a new detailmark with an initializer list of detail classes and an optional boot state.
|
inline |
Initialize a new detailmark with an array of detail classes and an optional boot state.
|
inline |
Construct a new detailmark with an array of details and an optional boot state.
Add detail(s) to the detailmark.
Templated paradigm version.
| Paradigm | The paradigm to work under. |
| Ds | The detail(s) to add. |
|
inline |
Add detail(s) to the detailmark.
Templated version.
| Ds | The detail(s) to add. |
| Paradigm | The paradigm to work under. |
|
inline |
Add a detailmark.
| Paradigm | The paradigm to work under. |
| InDetailmark | The detailmark to add. |
|
inline |
Add an array of detail classes.
| Paradigm | The paradigm to work under. |
| AllocatorT | The type of the array allocator. |
| InDetailsClasses | The detail classes to add. |
|
inline |
Add an array of detail classes.
| AllocatorT | The type of the array allocator. |
| InDetailsClasses | The detail classes to add. |
|
inline |
Add an array of details.
Only active details' classes get added.
| Paradigm | The paradigm to work under. |
| AllocatorT | The type of the array allocator. |
| InDetails | The details to add. |
|
inline |
Add an array of details.
Only active details' classes get added.
| AllocatorT | The type of the array allocator. |
| InDetails | The details to add. |
|
inline |
Add a detail class.
| Paradigm | The paradigm to work under. |
| DetailClass | The class of the detail to add. May be a nullptr and will ignore it silently in this case. |
|
inline |
Add detail classes to the detailmark.
| Paradigm | The paradigm to work under. |
| DetailClasses | The detail classes to add. |
|
inline |
Add a detailmark while decomposing its details to their base classes.
| Paradigm | The paradigm to work under. |
| InDetailmark | The detailmark to add. |
|
inline |
Add a detail class while decomposing it with its base classes.
| Paradigm | The paradigm to work under. |
| DetailClass | A class of the detail to add. |
Check if the detailmark includes a detail class.
Templated version.
Check if the detailmark includes a detail class.
|
inline |
Get a detail type by its index.
| Index | The index of the detail to get. |
|
inline |
The number of details in the detailmark.
|
inline |
Get an indexing mapping from another detailmark's details.
| InDetailmark | A detailmark to get a mapping from. |
| OutMapping | The resulting details mapping. |
|
inline |
Get an indexing mapping from another detailmark's details.
| InDetailmark | A detailmark to get a mapping from. |
| OutMapping | The resulting details mapping. |
|
inline |
Get an indexing multi-mapping from another detailmark.
| InDetailmark | A detailmark to get a mapping from. |
| OutMapping | The resulting two-dimensional multi-mapping. |
|
inline |
Find an indexing mapping from another detailmark defined by an array of details.
Standard array version.
| InDetailsClasses | A detailmark to get a mapping from. |
| OutMapping | The resulting mapping to output to. |
|
inline |
Find an indexing mapping from another detailmark defined by an array of details.
| InDetailsClasses | A detailmark to get a mapping from. |
| OutMapping | The resulting mapping. |
|
inline |
Get an indexing multi-mapping from another detailmark defined by an array of details.
| InDetailsClasses | A detailmark to get a mapping from. |
| OutMapping | The resulting two-dimensional multi-mapping. |
|
inline |
Find an indexing details mapping to another detailmark.
Standard array output version.
| Size | The size of output mapping buffer. |
| InDetailmark | A detailmark to get the details mapping to. |
| OutMapping | The resulting mapping. |
|
inline |
Find an indexing details mapping to another detailmark.
| InDetailmark | A detailmark to get the details mapping to. |
| OutMapping | The resulting mapping. |
|
inline |
Find a multi-indexing details mapping to another detailmark.
| InDetailmark | A detailmark to get the details mapping to. |
| OutMapping | The resulting multi-mapping. |
|
inlinestatic |
Get a detail's unique identifier.
Get the mask of a detail.
|
inlinestatic |
Get the cached mask of a detail type.
Get the mask of a detail's class.
Cached internally.
|
inline |
Get the details of the detailmark.
|
inline |
Get the details mask of the detailmark.
Constant version.
|
inlinestatic |
Get the excluded mask of a detail type.
|
inlinestatic |
Get the excluded mask of a details's class.
Cached internally.
|
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.
| Other | The other detailmark to compare to. |
| PortFlags | The contextual port flags. |
|
inlineconstexpr |
Get the index of a specific detail class.
Templated version.
Searches for an exact class first, by parental class information second.
INDEX_NONE will be safely returned in that case.| D | The detail to search for. |
INDEX_NONE, if there is no such detail within the mark.
|
inline |
Get the index of a specific detail class.
Searches for an exact class first, by parental class information second.
| DetailClass | The detail to search for. |
INDEX_NONE, if there is no such detail within or DetailClass is nullptr.
|
inline |
Find all of the indices of a detail class.
| DetailClass | A detail class to find the indices of. |
| OutIndices | The resulting indices storage. |
|
inline |
Check if the detailmark is empty.
The detailmark is empty if it has no details in it.
|
inlinestatic |
Make a new detailmark with a list of details classes.
| Ds | The classes of details to fill with. |
|
inline |
Check if the detailmark matches another detailmark acting as a filter.
Check if the detailmark matches a filter.
|
inline |
Check if a detailmark is viable and has any actual effect.
|
inlineexplicit |
Convert to an array of detail classes.
|
inline |
Compare two detailmarks for inequality.
Two detailmarks are considered to be inequal if their details composition is different (regardless of the ordering).
|
inline |
Add an array of detail classes to the detailmark.
|
inline |
Add a single detail class to the detailmark.
|
inline |
Add variadic detail classes to the detailmark.
|
inline |
Remove a detail type from the detailmark.
|
inline |
Set a detailmark equal to another detailmark.
|
inline |
Move a detailmark.
|
inline |
Compare two detailmarks for equality.
Two detailmarks are considered to be equal if their details composition is equal (regardless of the ordering).
|
inline |
Get a detail type by its index.
| Index | The index of the detail to get. |
| void FDetailmark::PostSerialize | ( | const FArchive & | Archive | ) |
Post-serialize the traitmark updating the mask.
|
inlinestatic |
Get the total number of registered details so far.
Remove a detail class from the detailmark.
Templated paradigm version.
| Paradigm | The paradigm to work under. |
| Ds | The classes of the details to remove. |
|
inline |
Remove a detail class from the detailmark.
Templated paradigm version.
| Paradigm | The paradigm to work under. |
| Ds | The classes of the details to remove. |
|
inline |
Remove a detail class from the detailmark.
'
| Paradigm | The paradigm to work under. May be a nullptr and will ignore be ignored silently in that case. |
| DetailClass | A detail class to remove. |
|
inline |
Clear the detailmark without any deallocations.
| Paradigm | The paradigm to work under. |
|
inline |
Serialize the traitmark to the archive.
|
inline |
Set the detailmark equal to another detailmark.
| Paradigm | The paradigm to work under. |
| InDetailmark | The detailmark to set to. |
|
inline |
Set a detailmark to an array of detail classes.
| Paradigm | The paradigm to work under. |
| AllocatorT | The allocator for the array. |
| InDetailsClasses | The classes of the details to set to. |
|
inline |
Set a detailmark to an array of active details.
Only active details get actually added.
| Paradigm | The paradigm to work under. |
| InDetails | The details to set to. |
|
inline |
Move an another detailmark to the detailmark.
| Paradigm | The paradigm to work under. |
| InDetailmark | The detailmark to move. |
| FString FDetailmark::ToString | ( | ) | const |
Convert a detailmark to a string.
|
friend |
|
friend |
|
friend |
|
friend |
Serialization operator.
|
friend |
|
friend |
|
friend |
|
staticconstexpr |
Invalid detail identifier.
|
static |
An empty detailmark constant.