Пример #1
0
        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;
        }
Пример #2
0
 private bool Equals(IndexMetaData other)
 {
     return(Name == other.Name);
 }
Пример #3
0
 internal IndexInfo(IIndexInterface indexInterface, IndexMetaData metaData, IIndexUpdateGenerator updateGenerator)
 {
     this.IndexInterface  = indexInterface;
     this.MetaData        = metaData;
     this.UpdateGenerator = updateGenerator;
 }