Пример #1
0
        internal void Clear()
        {
            Profiler.BeginSample("Clear Index");
            int index_size = m_IndexDim.x * m_IndexDim.y * m_IndexDim.z;

#if USE_INDEX_NATIVE_ARRAY
            NativeArray <int> arr = m_IndexBuffer.BeginWrite <int>(0, index_size);
            for (int i = 0; i < index_size; i++)
            {
                arr[i] = -1;
            }
            m_IndexBuffer.EndWrite <int>(index_size);
#else
            for (int i = 0; i < m_TmpUpdater.Length; i++)
            {
                m_TmpUpdater[i] = -1;
            }

            // TODO: Replace with Array.Fill when available.
            for (int i = 0; i < m_IndexBuffer.count; i += m_TmpUpdater.Length)
            {
                UpdateIndexData(m_TmpUpdater, 0, i, Mathf.Min(m_TmpUpdater.Length, m_IndexBuffer.count - i));
            }
#endif
            m_VoxelToBricks.Clear();
            m_BricksToVoxels.Clear();

            Profiler.EndSample();
        }
Пример #2
0
        internal void Clear()
        {
            Profiler.BeginSample("Clear Index");
            int index_size = kAPVConstantsSize + m_IndexDim.x * (m_IndexDim.y + 1) * m_IndexDim.z;

#if USE_INDEX_NATIVE_ARRAY
            NativeArray <int> arr = m_IndexBuffer.BeginWrite <int>(0, index_size);
            for (int i = 0; i < index_size; i++)
            {
                arr[i] = -1;
            }
            m_IndexBuffer.EndWrite <int>(index_size);
#else
            for (int i = 0; i < m_TmpUpdater.Length; i++)
            {
                m_TmpUpdater[i] = -1;
            }

            for (int i = 0; i < m_IndexBuffer.count; i += m_TmpUpdater.Length)
            {
                m_IndexBuffer.SetData(m_TmpUpdater, 0, i, Mathf.Min(m_TmpUpdater.Length, m_IndexBuffer.count - i));
            }
#endif

            HeightRange hr = new HeightRange()
            {
                min = -1, cnt = 0
            };
            for (int i = 0; i < m_HeightRanges.Length; i++)
            {
                m_HeightRanges[i] = hr;
            }

            m_VoxelToBricks.Clear();
            m_BricksToVoxels.Clear();

            Profiler.EndSample();
        }