コード例 #1
0
        public PointCloudTileSourceEnumeratorChunk(PointCloudTileSourceEnumeratorChunk chunk, int pointCount)
            : this(chunk.m_tile, chunk.m_buffer)
        {
            if (pointCount > m_tile.PointCount)
                throw new Exception("Too many points");

            m_dataEndPtr = m_dataPtr + pointCount * m_pointSizeBytes;
        }
コード例 #2
0
        public PointCloudTileSourceEnumeratorChunk(PointCloudTileSourceEnumeratorChunk chunk, int pointCount)
            : this(chunk.m_tile, chunk.m_buffer)
        {
            if (pointCount > m_tile.PointCount)
            {
                throw new Exception("Too many points");
            }

            m_dataEndPtr = m_dataPtr + pointCount * m_pointSizeBytes;
        }
コード例 #3
0
        public bool MoveNext()
        {
            // check for cancel
            if (m_current != null && m_process != null && !m_process.Update(m_current))
            {
                return(false);
            }

            if (m_tileEnumerator.MoveNext())
            {
                PointCloudTile tile = m_tileEnumerator.Current;
                tile.ReadTile(m_stream, m_buffer.Data);

                m_current = new PointCloudTileSourceEnumeratorChunk(tile, m_buffer);

                return(true);
            }
            return(false);
        }
コード例 #4
0
 public void Dispose()
 {
     m_stream.Dispose();
     m_stream  = null;
     m_current = null;
 }
コード例 #5
0
 public void Reset()
 {
     m_tileEnumerator = m_source.TileSet.GetEnumerator();
     m_current        = null;
 }