public static JobHandle Schedule(GeneratorType generator, Data data, NativeList <float3> vertices, NativeList <int> triangles, bool generateNormals, float3 normal, NativeList <float3> normals, bool generateUVs, NativeList <float2> uvs, NativeArray <InfoType> info, JobHandle dependOn = default) { var cornerJob = new CalculateInfoJob <GeneratorType, InfoType> { distanceColNum = data.ColNum, distanceRowNum = data.RowNum, generator = generator, distances = data.RawData, vertices = vertices, indices = triangles, generateNormals = generateNormals, normals = normals, normal = normal, generateUVs = generateUVs, uvs = uvs, info = info }; return(cornerJob.Schedule(dependOn)); }
static public JobHandle ScheduleCalculateInfoJob(Data data, Info info, NativeArray <TopCellInfo> infoArray, 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 (info.UseCullingData && data.HasCullingData) { var generator = new CulledTopCellInfoGenerator(); generator.cullingArray = data.CullingDataRawData; lastHandle = CalculateInfoJob <CulledTopCellInfoGenerator, TopCellInfo> .Schedule(generator, data, vertices, triangles, info.GenerateNormals, normal, normals, info.GenerateUvs, uvs, infoArray, lastHandle); } else { var generator = new TopCellInfoGenerator(); lastHandle = CalculateInfoJob <TopCellInfoGenerator, TopCellInfo> .Schedule(generator, data, vertices, triangles, info.GenerateNormals, normal, normals, info.GenerateUvs, uvs, infoArray, lastHandle); } return(lastHandle); }
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); }