public void Write(Cell c) { this.Write(c.SnapNum); this.Write(c.PHKey); this.Write(c.Count); try { this.Write(SqlRealArrayMax.FromArray(c.PosToArray())); this.Write(SqlRealArrayMax.FromArray(c.VelToArray())); this.Write(SqlBigIntArrayMax.FromArray(c.IdToArray())); } catch (OverflowException e) { Console.Write(e.Message); } }
/* For writing a row in a snapshot file using arrays */ public void WriteCell(Cell c) { this.Write(c.SnapNum); this.Write(c.PHKey); this.Write(c.Count); try { this.Write(SqlRealArrayMax.FromArray(c.PosToArray())); this.Write(SqlRealArrayMax.FromArray(c.VelToArray())); this.Write(SqlBigIntArrayMax.FromArray(c.IdToArray())); //don't write out the filter //this.WriteFilter(c.filter); } catch (OverflowException e) { Console.Write(e.Message); } }
public void WriteCellRow(Cell c, int first, int rowSize) { int maxBytes = 8000; long[] idArray = c.IdToArray(); float[] posArray = c.PosToArray(); float[] velArray = c.VelToArray(); long[] curIDs = new long[rowSize]; Array.Copy(idArray, first, curIDs, 0, rowSize); float[] curPos = new float[rowSize]; Array.Copy(posArray, first, curPos, 0, rowSize); float[] curVel = new float[rowSize]; Array.Copy(velArray, first, curVel, 0, rowSize); Debug.Assert(rowSize * sizeof(float) * 3 < maxBytes && rowSize * sizeof(long) < maxBytes, "Array size is too big. It is " + rowSize); this.Write(c.SnapNum); this.Write(c.PHKey); this.Write(rowSize); try { this.Write(SqlRealArray.FromArray(curPos)); this.Write(SqlRealArray.FromArray(curVel)); this.Write(SqlBigIntArray.FromArray(curIDs)); //don't write out the filter //this.WriteFilter(c.filter); } catch (OverflowException e) { Console.Write(e.Message); } }
public void WriteUncompressedCell(Cell c, int phbits, double box) { this.Write(c.SnapNum); this.Write(c.PHKey); this.Write(c.x0); this.Write(c.y0); this.Write(c.z0); this.Write(c.Count); this.Write(c.scaleFactorInv); try { this.Write(SqlRealArrayMax.FromArray(c.PosToArray())); this.Write(SqlRealArrayMax.FromArray(c.VelToArray())); this.Write(SqlBigIntArrayMax.FromArray(c.IdToArray())); } catch (OverflowException e) { // TODO: log this in the summary file Console.Write(e.Message); } }