コード例 #1
0
 public WorkflowRenderResult(FormulaRenderArguments formulaRenderArguments, FormulaRenderResult formulaRenderResult, FormulaBitmap bitmap, TimeSpan elapsedTime)
 {
     FormulaRenderArguments = formulaRenderArguments;
     FormulaRenderResult = formulaRenderResult;
     Bitmap = bitmap;
     ElapsedTime = elapsedTime;
 }
コード例 #2
0
 public bool IsRenderedImageNotEmpty(FormulaRenderArguments formulaRenderArguments)
 {
     FormulaRender.Render(formulaRenderArguments.FormulaTree, formulaRenderArguments.Ranges, _formulaRenderResult.Size, formulaRenderArguments.ColorTransformation, true, 1, _formulaRenderResult);
     return _formulaRenderResult.BlueChannel.Any(b => b != _formulaRenderResult.BlueChannel[0]) &&
         _formulaRenderResult.RedChannel.Any(b => b != _formulaRenderResult.RedChannel[0]) &&
         _formulaRenderResult.GreenChannel.Any(b => b != _formulaRenderResult.GreenChannel[0]);
 }
コード例 #3
0
 public bool IsVariablesCountOk(FormulaRenderArguments formulaRenderArguments)
 {
     return formulaRenderArguments.FormulaTree.Variables.Length >= MinVariablesCount;
 }
コード例 #4
0
 public virtual bool Analyze(FormulaRenderArguments formulaRenderArguments)
 {
     return IsVariablesCountOk(formulaRenderArguments) && IsRenderedImageNotEmpty(formulaRenderArguments);
 }
コード例 #5
0
 private FormulaRenderArguments TransformRanges(FormulaRenderArguments args)
 {
     Range[] ranges = CreateRandomRanges(args.FormulaTree.Variables.Length);
     return new FormulaRenderArguments(
         args.FormulaTree,
         ranges,
         args.ColorTransformation);
 }
コード例 #6
0
 private FormulaRenderArguments ChangeColors(FormulaRenderArguments args)
 {
     ColorTransformation colorTransformation = CreateRandomColorTransformation();
     return new FormulaRenderArguments(args.FormulaTree, args.Ranges, colorTransformation);
 }
コード例 #7
0
        public FormulaRenderArguments GenerateFormulaRenderArguments()
        {
            FormulaRenderArguments args = GenerationParams.PredefinedFormulaRenderingArgumentsEnabled ? GetPredefinedFormulaRenderArguments() : null;

            if (args == null)
            {
                const int attemptCount = 10;
                using (ProgressReporter.CreateScope(attemptCount))
                {
                    args = FuncUtilities.Repeat(() =>
                    {
                        FormulaTree f = CreateRandomFormulaTree();
                        Range[] ranges = CreateRandomRanges(f.Variables.Length);
                        ColorTransformation colorTransformation = CreateRandomColorTransformation();
                        args = new FormulaRenderArguments(f, ranges, colorTransformation);
                        return args;
                    },
                    f =>
                    {
                        bool res = _formulaRenderArgumentsGoodnessAnalyzer.Analyze(args);
                        ProgressReporter.Increase();
                        return res;
                    }, attemptCount);
                }
            }

            _generatedFormulasCount++;
            return FormulaRenderArguments = args;
        }
コード例 #8
0
 public FormulaRenderArguments ChangeColors()
 {
     return _formulaRenderArguments = ChangeColors(FormulaRenderArguments);
 }