internal void UpdateCell(int cellFlatIdx, ProbeBrickIndex.CellIndexUpdateInfo cellUpdateInfo) { int minSubdivCellSize = ProbeReferenceVolume.CellSize(cellUpdateInfo.minSubdivInCell); IndexMetaData metaData = new IndexMetaData(); metaData.minSubdiv = cellUpdateInfo.minSubdivInCell; metaData.minLocalIdx = cellUpdateInfo.minValidBrickIndexForCellAtMaxRes / minSubdivCellSize; metaData.maxLocalIdx = cellUpdateInfo.maxValidBrickIndexForCellAtMaxResPlusOne / minSubdivCellSize; metaData.firstChunkIndex = cellUpdateInfo.firstChunkIndex; metaData.Pack(out uint[] packedVals); for (int i = 0; i < kUintPerEntry; ++i) { m_IndexOfIndicesData[cellFlatIdx * kUintPerEntry + i] = packedVals[i]; } m_NeedUpdateComputeBuffer = true; }
private bool Equals(IndexMetaData other) { return(Name == other.Name); }
internal IndexInfo(IIndexInterface indexInterface, IndexMetaData metaData, IIndexUpdateGenerator updateGenerator) { this.IndexInterface = indexInterface; this.MetaData = metaData; this.UpdateGenerator = updateGenerator; }