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)); } }
public bool CanBeMerged(int index, byte cellConfig) { if (cellConfig == MaskFull && !culled[index]) { return(HeightMergeChecker.AreHeightsEqual(index, colNum, heights)); } return(false); }