|  | Apparatus
   Version 1.3.0
    ECS data-driven workflow for Unreal Engine. | 
A memory-efficient bit mask. More...
#include <BitMask.h>
| Classes | |
| struct | Iterator | 
| The bit mask iterator.  More... | |
| Public Member Functions | |
| int32 | Num () const | 
| The current number of meaningful bits in the mask.  More... | |
| FBitMask () | |
| Construct a new empty bit mask.  More... | |
| FBitMask (const FBitMask &InBitMask) | |
| Copy-construct the bit mask.  More... | |
| FBitMask (FBitMask &&InBitMask) | |
| Move-construct the bit mask.  More... | |
| FBitMask (const int32 Capacity) | |
| Initialize a new instance of a mask with bit capacity.  More... | |
| bool | At (const int32 Index) const | 
| Get the bit flag at the specified index.  More... | |
| bool | operator[] (const int32 Index) const | 
| Get a bit element by its index.  More... | |
| void | SetAt (const int32 Index, const bool Value) | 
| Set a bit at a specific index.  More... | |
| bool | IsNonZero () const | 
| Check if there are any non-zero bits in the mask.  More... | |
| EApparatusStatus | Trim () const | 
| Trim the meaningless high groups.  More... | |
| bool | IsAllZeroes () const | 
| Check if all of the bits in the mask are zeroes or none.  More... | |
| int32 | CountNonZeroGroups () const | 
| Get the number of meaningful (non-zero) bit groups.  More... | |
| EApparatusStatus | Set (FBitMask &&InBitMask) | 
| Move the bit mask to this bit mask.  More... | |
| EApparatusStatus | Set (const FBitMask &InBitMask) | 
| Set this bit mask equal to another bit mask.  More... | |
| FBitMask & | operator= (FBitMask &&InBitMask) | 
| Move the bit mask.  More... | |
| FBitMask & | operator= (const FBitMask &InBitMask) | 
| Set this bit mask equal to another bit mask.  More... | |
| int32 | DifferencesCount (const FBitMask &BitMask) const | 
| Get the number of different bits in two masks.  More... | |
| int32 | InclusionsCount (const FBitMask &BitMask) const | 
| Get the number of included bits in two masks.  More... | |
| bool | Includes (const FBitMask &BitMask) const | 
| Does the mask has all of the bits set in the supplied mask.  More... | |
| bool | IncludesPartially (const FBitMask &BitMask) const | 
| Check if the mask has any of the bits set in the supplied mask.  More... | |
| bool | Contains (const bool bit) const | 
| Does a bit mask contain the specified bit?  More... | |
| Iterator | begin () | 
| Iterator | end () | 
| int32 | IndexOf (const bool bit) const | 
| Get the index of the first matching bit in the mask.  More... | |
| void | EnsureGroupsNum (int32 InGroupsCount) | 
| Ensure a bit group count.  More... | |
| void | EnsureGroupsForBitAt (const int32 BitIndex) | 
| Ensure that there is enough bit groups for an index.  More... | |
| int32 | Max () const | 
| Get the current maximum number of bits that can be stored without any additional allocations.  More... | |
| void | Reserve (const int32 BitCapacity) | 
| Reserve space for a given number of bits.  More... | |
| void | Add (const bool Bit) | 
| Add a bit to the end of the mask.  More... | |
| void | Empty (const int32 Slack=0) | 
| Empties the array.  More... | |
| void | Reset (const int32 NewSize=0) | 
| Same as empty, but doesn't change memory allocations, unless the new size is larger than the current array.  More... | |
| void | SetMasked (const FBitMask &Mask, const bool State) | 
| Set the bits based on a mask.  More... | |
| void | CopyTo (bool *Array, int32 Offset) const | 
| Copy the bits to an array, with a specified offset.  More... | |
| void | Insert (const int32 Index, const bool Bit) | 
| Insert a bit at the specified index.  More... | |
| void | Remove (const bool Bit) | 
| Remove the first occurrence of the specified bit from the mask.  More... | |
| void | RemoveAt (const int32 Index) | 
| Remove the bit at the specified index.  More... | |
| void | Erase (const int32 Index) | 
| Remove an element at the specified index.  More... | |
| void | CopyTo (TArray< bool > &OutArray, const int32 Offset=0) | 
| Copy to an array with a supplied offset.  More... | |
| FBitMask & | AndWith (const FBitMask &InMask) | 
| And the bitmask with a given mask.  More... | |
| FBitMask & | operator&= (const FBitMask &InMask) | 
| And the bitmask with a given mask.  More... | |
| FBitMask & | OrWith (const FBitMask &InMask) | 
| Or the bitmask with a given mask.  More... | |
| FBitMask & | operator|= (const FBitMask &InMask) | 
| Or the bitmask with a given mask.  More... | |
| FString | ToString () const | 
| Convert the bit mask to a string representation.  More... | |
| uint32 | CalcHash () const | 
| Calculate the bit mask hash.  More... | |
| Public Attributes | |
| friend | Iterator | 
| Friends | |
| class | StaticConstructor | 
| uint32 | GetTypeHash (const FBitMask &bm) | 
| std::ostream & | operator<< (std::ostream &Str, const FBitMask &v) | 
| bool | operator== (const FBitMask &a, const FBitMask &b) | 
| bool | operator!= (const FBitMask &a, const FBitMask &b) | 
| FBitMask | operator& (const FBitMask &a, const FBitMask &b) | 
| FBitMask | operator| (const FBitMask &a, const FBitMask &b) | 
A memory-efficient bit mask.
Please, not that this is not a bit array and serves different purposes.
| 
 | inline | 
Construct a new empty bit mask.
| 
 | inline | 
Copy-construct the bit mask.
| 
 | inline | 
Move-construct the bit mask.
| 
 | inline | 
Initialize a new instance of a mask with bit capacity.
| void FBitMask::Add | ( | const bool | Bit | ) | 
Add a bit to the end of the mask.
| 
 | inline | 
Get the bit flag at the specified index.
| Index | The index of the bit to get. If it's out of the number of elements, falseis returned. | 
| 
 | inline | 
| 
 | inline | 
Calculate the bit mask hash.
| bool FBitMask::Contains | ( | const bool | bit | ) | const | 
Does a bit mask contain the specified bit?
| 
 | inline | 
Copy the bits to an array, with a specified offset.
| 
 | inline | 
Copy to an array with a supplied offset.
| 
 | inline | 
Get the number of meaningful (non-zero) bit groups.
| int32 FBitMask::DifferencesCount | ( | const FBitMask & | BitMask | ) | const | 
Get the number of different bits in two masks.
| 
 | inline | 
Empties the array.
It calls the destructors on held flags if needed.
| Slack | (Optional) The expected usage size in bits after empty operation. Default is 0. | 
| 
 | inline | 
| 
 | inline | 
Ensure that there is enough bit groups for an index.
| 
 | inline | 
Ensure a bit group count.
| 
 | inline | 
Remove an element at the specified index.
| Index | An index of the element to erase. | 
| 
 | inline | 
Does the mask has all of the bits set in the supplied mask.
The same as a bitwise A & B == B.
| 
 | inline | 
Check if the mask has any of the bits set in the supplied mask.
The same as a bitwise A & B != 0.
| int32 FBitMask::InclusionsCount | ( | const FBitMask & | BitMask | ) | const | 
Get the number of included bits in two masks.
| int32 FBitMask::IndexOf | ( | const bool | bit | ) | const | 
Get the index of the first matching bit in the mask.
| void FBitMask::Insert | ( | const int32 | Index, | 
| const bool | Bit | ||
| ) | 
Insert a bit at the specified index.
| 
 | inline | 
Check if all of the bits in the mask are zeroes or none.
| 
 | inline | 
Check if there are any non-zero bits in the mask.
| 
 | inline | 
Get the current maximum number of bits that can be stored without any additional allocations.
| 
 | inline | 
The current number of meaningful bits in the mask.
This value doesn't play any role when comparing the masks.
Set this bit mask equal to another bit mask.
| 
 | inline | 
Get a bit element by its index.
| void FBitMask::Remove | ( | const bool | Bit | ) | 
Remove the first occurrence of the specified bit from the mask.
| void FBitMask::RemoveAt | ( | const int32 | Index | ) | 
Remove the bit at the specified index.
| Index | The index of the bit to remove. | 
| 
 | inline | 
Reserve space for a given number of bits.
| 
 | inline | 
Same as empty, but doesn't change memory allocations, unless the new size is larger than the current array.
| NewSize | The expected usage size in bits after calling this function. | 
| 
 | inline | 
Set this bit mask equal to another bit mask.
| 
 | inline | 
Move the bit mask to this bit mask.
| 
 | inline | 
Set a bit at a specific index.
| 
 | inline | 
Set the bits based on a mask.
| Mask | The mask to use. | 
| State | The state to set. | 
| 
 | inline | 
Convert the bit mask to a string representation.
| 
 | inline | 
Trim the meaningless high groups.
| 
 | friend | 
| 
 | friend | 
| 
 | friend | 
| friend FBitMask::Iterator |