Exemplo n.º 1
0
        public static void Render(FormulaTree formulaTree, Range[] ranges, Size imageSize, ColorTransformation colorTransformation,
            bool reevaluateValues, int threadsCount, FormulaRenderResult formulaRenderResult)
        {
            using (ProgressReporter.CreateScope())
            {
                double evaluationSpan = 0;
                if (reevaluateValues)
                {
                    evaluationSpan = 0.93;
                    using (ProgressReporter.CreateScope(evaluationSpan))
                    {
                        EvaluateFormula(formulaTree, ranges, imageSize, threadsCount, formulaRenderResult.EvaluatedValuesBuffer);
                    }
                }

                using (ProgressReporter.CreateScope(1 - evaluationSpan))
                {
                    Render(colorTransformation, formulaRenderResult, threadsCount);
                }
            }
        }
Exemplo n.º 2
0
 public FormulaRenderArguments(FormulaTree formulaTree, Range[] ranges, ColorTransformation colorTransformation)
 {
     FormulaTree = formulaTree;
     Ranges = ranges;
     ColorTransformation = colorTransformation;
 }
Exemplo n.º 3
0
 private static void Render(ColorTransformation colorTransformation, FormulaRenderResult formulaRenderResult, int threadsCount)
 {
     Stopwatch mapToRgbStopwatch = new Stopwatch();
     mapToRgbStopwatch.Start();
     ProgressReporter.CreateScope(3);
     MapToColorChannel(colorTransformation.RedChannelTransformation, formulaRenderResult.EvaluatedValuesBuffer, threadsCount, formulaRenderResult.ColorTranformedValuesBuffer, formulaRenderResult.RedChannel);
     ProgressReporter.Increase();
     MapToColorChannel(colorTransformation.GreenChannelTransformation, formulaRenderResult.EvaluatedValuesBuffer, threadsCount, formulaRenderResult.ColorTranformedValuesBuffer, formulaRenderResult.GreenChannel);
     ProgressReporter.Increase();
     MapToColorChannel(colorTransformation.BlueChannelTransformation, formulaRenderResult.EvaluatedValuesBuffer, threadsCount, formulaRenderResult.ColorTranformedValuesBuffer, formulaRenderResult.BlueChannel);
     ProgressReporter.Complete();
     mapToRgbStopwatch.Stop();
 }