static private JobHandle ScheduleCalculateInfoJob(Data data, Info info, bool useCullingData, NativeArray <TopCellInfo> infoArray, NativeArray <MergeCellInfo> mergeInfoArray, NativeList <float3> vertices, NativeList <int> triangles, NativeList <float3> normals, NativeList <float2> uvs, JobHandle lastHandle = default) { float3 normal = info.IsFlipped ? new float3(0, -1, 0) : new float3(0, 1, 0); if (useCullingData) { var generator = new CulledOptimizedTopCellInfoGenerator(); generator.mergeInfoArray = mergeInfoArray; generator.culledArray = data.CullingDataRawData; lastHandle = CalculateInfoJob <CulledOptimizedTopCellInfoGenerator, TopCellInfo> .Schedule(generator, data, vertices, triangles, info.GenerateNormals, normal, normals, info.GenerateUvs, uvs, infoArray, lastHandle); } else { var generator = new OptimizedTopCellInfoGenerator(); generator.mergeInfoArray = mergeInfoArray; lastHandle = CalculateInfoJob <OptimizedTopCellInfoGenerator, TopCellInfo> .Schedule(generator, data, vertices, triangles, info.GenerateNormals, normal, normals, info.GenerateUvs, uvs, infoArray, lastHandle); } return(lastHandle); }
public TopCellInfo GenerateInfoNoTriangles(int index, float cornerDistance, float rightDistance, float topRightDistance, float topDistance, ref int nextVertex, ref int nextTriIndex) => OptimizedTopCellInfoGenerator.GenerateInfo(mergeInfoArray, index, cornerDistance, rightDistance, topRightDistance, topDistance, ref nextVertex, ref nextTriIndex, false);