public void LoadFrom(Stream stream)
        {
            BinaryReader reader = new BinaryReader(stream);

            m_ChildPositionArray      = reader.ReadVector2Array(reader.ReadInt32());
            m_ChildMagnitudeArray     = reader.ReadSingleArray(reader.ReadInt32());
            m_ChildPairVectorArray    = reader.ReadVector2Array(reader.ReadInt32());
            m_ChildPairAvgMagInvArray = reader.ReadSingleArray(reader.ReadInt32());

            int numNeighbours = reader.ReadInt32();

            m_ChildNeighborListArray = new MotionNeighborList[numNeighbours];
            for (int i = 0; i < numNeighbours; i++)
            {
                m_ChildNeighborListArray[i] = new MotionNeighborList(stream);
            }
        }
        public void LoadFrom(Stream stream)
        {
            BinaryReader reader = new BinaryReader(stream);
            m_ChildPositionArray = reader.ReadVector2Array(reader.ReadInt32());
            m_ChildMagnitudeArray = reader.ReadSingleArray(reader.ReadInt32());
            m_ChildPairVectorArray = reader.ReadVector2Array(reader.ReadInt32());
            m_ChildPairAvgMagInvArray = reader.ReadSingleArray(reader.ReadInt32());

            int numNeighbours = reader.ReadInt32();
            m_ChildNeighborListArray = new MotionNeighborList[numNeighbours];
            for (int i = 0; i < numNeighbours; i++)
            {
                m_ChildNeighborListArray[i] = new MotionNeighborList(stream);
            }
        }