public DBSerial Export() { DBSerial rs = new DBSerial(); rs.width = size.X; rs.height = size.Y; rs.depth = size.Z; int ones = this.OneCount; if (ones == 0) { rs.data = null; } else if (ones == size.Product) { rs.data = new byte[] { 255 } } ; else { int len = grid.Length * 4; rs.data = new byte[len]; Buffer.BlockCopy(grid, 0, rs.data, 0, len); } return(rs); }
public override bool Equals(object obj) { if (!(obj is DBSerial)) { return(false); } DBSerial other = (DBSerial)obj; return(width == other.width && height == other.height && depth == other.depth && Helper.AreEqual(data, other.data)); }
public BitCube(DBSerial serial) { UpdateSize(new Int3(serial.width, serial.height, serial.depth)); if (serial.data != null) { if (serial.data.Length == 1) { //all ones this.SetAllOne(); } else { if (GridSize.Product * 4 != (serial.data.Length)) { throw new ArgumentOutOfRangeException("Got " + (serial.data.Length) + " byte(s), but needed " + GridSize + "*4 = " + GridSize.Product * 4); } Buffer.BlockCopy(serial.data, 0, grid, 0, serial.data.Length); oneCount = -1; } } }
public InconsistencyCoverage(DBSerial serial) : base(serial) { }