/// <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(); }
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(); }
public IPointCloudBinarySourceEnumerator GetBlockEnumerator(ProgressManagerProcess process) { return(new PointCloudBinarySourceCompositeEnumerator(m_files, process)); }
public PointCloudTileSourceEnumerator GetTileEnumerator(ProgressManagerProcess process) { return(new PointCloudTileSourceEnumerator(this, process)); }
public IPointCloudBinarySourceEnumerator GetBlockEnumerator(ProgressManagerProcess process) { return(new PointCloudBinarySourceEnumerator(this, process)); }