public void Dispose() { m_stream.Dispose(); m_current = null; }
public bool MoveNext() { // check for cancel if (m_current != null && m_process != null && !m_process.Update(m_current)) return false; if (m_stream.Position < m_endPosition) { int bytesRead = m_stream.Read(m_buffer.Data, 0, m_usableBytesPerBuffer); if (bytesRead == 0) throw new Exception("I did something wrong"); if (m_stream.Position > m_endPosition) bytesRead -= (int)(m_stream.Position - m_endPosition); int index = (m_current != null) ? m_current.Index + 1 : 0; m_current = new PointCloudBinarySourceEnumeratorChunk(index, m_buffer, bytesRead, m_source.PointSizeBytes, (float)(m_stream.Position - m_source.PointDataOffset) / (m_endPosition - m_source.PointDataOffset)); return true; } return false; }
public void Reset() { m_stream.Seek(m_source.PointDataOffset); m_current = null; }