public PointCloudBinarySourceCompositeEnumerator(IEnumerable<IPointCloudBinarySourceEnumerable> sources, ProgressManagerProcess process)
        {
            m_sources = sources.ToArray();
            m_process = process;
            m_buffer = m_process.AcquireBuffer(true);
            m_points = m_sources.Sum(s => s.Count);

            Reset();
        }
        public PointCloudBinarySourceEnumerator(IPointCloudBinarySourceSequentialEnumerable source, ProgressManagerProcess process)
        {
            m_source = source;
            m_stream = m_source.GetStreamReader();
            m_buffer = process.AcquireBuffer(true);
            m_process = process;

            m_endPosition = m_source.PointDataOffset + m_source.Count * m_source.PointSizeBytes;

            m_usableBytesPerBuffer = (m_buffer.Length / m_source.PointSizeBytes) * m_source.PointSizeBytes;

            Reset();
        }