mirror of
https://github.com/AlexMacocian/MonoGame.Extended.git
synced 2026-07-22 10:19:30 +00:00
54 lines
1.3 KiB
C#
54 lines
1.3 KiB
C#
using System;
|
|
using System.Collections;
|
|
|
|
namespace MonoGame.Extended.Entities
|
|
{
|
|
public static class BitArrayExtensions
|
|
{
|
|
public static bool IsEmpty(this BitArray bitArray)
|
|
{
|
|
for (var i = 0; i < bitArray.Length; i++)
|
|
{
|
|
if (bitArray[i])
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public static bool ContainsAll(this BitArray bitArray, BitArray other)
|
|
{
|
|
var otherBitsLength = other.Length;
|
|
var bitsLength = bitArray.Length;
|
|
|
|
for (var i = bitsLength; i < otherBitsLength; i++)
|
|
{
|
|
if (other[i])
|
|
return false;
|
|
}
|
|
|
|
var s = Math.Min(bitsLength, otherBitsLength);
|
|
|
|
for (var i = 0; s > i; i++)
|
|
{
|
|
if ((bitArray[i] & other[i]) != other[i])
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public static bool Intersects(this BitArray bitArray, BitArray other)
|
|
{
|
|
var s = Math.Min(bitArray.Length, other.Length);
|
|
|
|
for (var i = 0; s > i; i++)
|
|
{
|
|
if (bitArray[i] & other[i])
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|
|
} |