/// <summary>
        /// Initializes a new instance of the <see cref="PointCloudBinarySourceCompositeEnumerator"/> class.
        /// This version does not use a process, so that it can be managed by a composite.
        /// </summary>
        /// <param name="sources">The sources.</param>
        /// <param name="buffer">The buffer.</param>
        public PointCloudBinarySourceCompositeEnumerator(IEnumerable <IPointCloudBinarySourceEnumerable> sources, BufferInstance buffer)
        {
            m_sources = sources.ToArray();
            m_process = null;
            m_buffer  = buffer;
            m_points  = m_sources.Sum(s => s.Count);

            Reset();
        }
        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();
        }
Пример #3
0
        public PointCloudTileSourceEnumerator(PointCloudTileSource source, ProgressManagerProcess process)
        {
            m_source  = source;
            m_buffer  = process.AcquireBuffer(source.MaxTileBufferSize, true);
            m_process = process;

            m_stream = StreamManager.OpenReadStream(source.FilePath, source.PointDataOffset);

            Reset();
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="PointCloudBinarySourceEnumerator"/> class.
        /// This version does not use a process, so that it can be managed by a composite.
        /// </summary>
        /// <param name="source">The source.</param>
        /// <param name="buffer">The buffer.</param>
        public PointCloudBinarySourceEnumerator(IPointCloudBinarySourceSequentialEnumerable source, BufferInstance buffer)
        {
            m_source  = source;
            m_stream  = m_source.GetStreamReader();
            m_buffer  = buffer;
            m_process = null;

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

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

            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();
        }
Пример #6
0
 public IPointCloudBinarySourceEnumerator GetBlockEnumerator(ProgressManagerProcess process)
 {
     return(new PointCloudBinarySourceCompositeEnumerator(m_files, process));
 }
Пример #7
0
 public PointCloudTileSourceEnumerator GetTileEnumerator(ProgressManagerProcess process)
 {
     return(new PointCloudTileSourceEnumerator(this, process));
 }
Пример #8
0
 public IPointCloudBinarySourceEnumerator GetBlockEnumerator(ProgressManagerProcess process)
 {
     return(new PointCloudBinarySourceEnumerator(this, process));
 }