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 Dispose() { m_stream.Dispose(); m_current = null; }
public void Reset() { m_stream.Seek(m_source.PointDataOffset); m_current = null; }