Пример #1
0
 static private JobHandle ScheduleGenerateOptimizationData(Data data, OptimizedInfo info, bool useCullingData, bool useHeightData, NativeArray <MergeCellInfo> mergeInfoArray, JobHandle lastHandle)
 {
     if (useCullingData && useHeightData)
     {
         var checker = new CulledHeightMergeChecker()
         {
             heights = data.HeightsRawData, colNum = data.ColNum, culled = data.CullingDataRawData
         };
         return(ScheduleGenerateOptimizationData(data, info, checker, mergeInfoArray, lastHandle));
     }
     else if (useCullingData)
     {
         var checker = new CulledMergeChecker()
         {
             culled = data.CullingDataRawData
         };
         return(ScheduleGenerateOptimizationData(data, info, checker, mergeInfoArray, lastHandle));
     }
     else if (useHeightData)
     {
         var checker = new HeightMergeChecker()
         {
             heights = data.HeightsRawData, colNum = data.ColNum
         };
         return(ScheduleGenerateOptimizationData(data, info, checker, mergeInfoArray, lastHandle));
     }
     else
     {
         return(ScheduleGenerateOptimizationData(data, info, new SimpleMergeChecker(), mergeInfoArray, lastHandle));
     }
 }
Пример #2
0
 public bool CanBeMerged(int index, byte cellConfig)
 {
     if (cellConfig == MaskFull && !culled[index])
     {
         return(HeightMergeChecker.AreHeightsEqual(index, colNum, heights));
     }
     return(false);
 }