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);
     }
 }