public BitMask(BitMask mask) { bytes = new uint[mask.bytes.Length]; for (var i = 0; i < mask.bytes.Length; i++) { bytes[i] = mask.bytes[i]; } }
public BitMask And(BitMask mask) { for (var i = 0; i < mask.bytes.Length; i++) { bytes[i] = bytes[i] & mask.bytes[i]; } return(this); }
public BitMask Xor(BitMask mask) { Debug.Assert(bytes.Length == mask.bytes.Length, "BitMasks must be the same size"); for (var i = 0; i < mask.bytes.Length; i++) { bytes[i] = bytes[i] ^ mask.bytes[i]; } return(this); }
private static bool _isEqual(BitMask m1, BitMask m2) { // BitMasks need to be the same size if (m1.bytes.Length != m2.bytes.Length) { return(false); } // Compare all elements in each BitMask's _byte array for (var i = 0; i < m1.bytes.Length; i++) { if (m1.bytes[i] != m2.bytes[i]) { return(false); } } return(true); }