Exemple #1
0
        public async Task <Guid> StartCalculation(CalculatorJob calculatorJob)
        {
            _context.CalculatorJobs.Add(calculatorJob);
            await _context.SaveChangesAsync();

            BackgroundJob.Enqueue(() => RunInBackground(calculatorJob.Id));

            return(calculatorJob.Id);
        }
Exemple #2
0
    public Vector3[] GetVerteces(Vector3[] vertex, Vector3 basePosition)
    {
        NativeArray <Vector3> vectors   = CreateNativeArrayFrom(vertex);
        NativeArray <Vector3> jobResult = new NativeArray <Vector3>(vectors.Length, Allocator.TempJob);

        CalculatorJob jobData = new CalculatorJob
        {
            Vertices = vectors, BasePosition = basePosition, Scale = Scale, Result = jobResult
        };
        JobHandle handle = jobData.Schedule(jobResult.Length, BatchCount);

        handle.Complete();

        Vector3[] result = jobResult.ToArray();
        vectors.Dispose();
        jobResult.Dispose();

        return(result);
    }
Exemple #3
0
    Vector3[] IVertexCalculator.GetVerteces(MeshSettingsModel meshSettings)
    {
        float step            = meshSettings.UnitsSize / meshSettings.VertexSize;
        float startPoint      = (-meshSettings.UnitsSize * .5f);
        int   rowPointsAmount = meshSettings.VertexSize + 1;
        int   length          = rowPointsAmount * rowPointsAmount;

        NativeArray <float3> jobResult = new NativeArray <float3>(length, Allocator.TempJob);

        CalculatorJob jobData = new CalculatorJob
        {
            Step = step, StartPoint = startPoint, RowPointsAmount = rowPointsAmount, Result = jobResult
        };
        JobHandle handle = jobData.Schedule(jobResult.Length, BatchCount);

        handle.Complete();

        Vector3[] result = CreateArrayFrom(jobResult);

        jobResult.Dispose();

        return(result);
    }