public static IProcessorBuilder SetDefaultHorizontalConveyor(this IProcessorBuilder builder) { return(builder .SetPixelEnergyCalculator() .SetPixelPathsProcessor(false) .SetShortestPathFinder(false) .SetShortestPathRemover(false)); }
public static IProcessorBuilder SetShortestPathRemover(this IProcessorBuilder builder, bool vertical) { IProcessor shortestPathRemover; if (vertical) { shortestPathRemover = new ShortestPathRemover(); } else { shortestPathRemover = new HorizontalShortestPathRemover(); } return(builder.SetProcessor(shortestPathRemover)); }
public static IProcessorBuilder SetPixelPathsProcessor(this IProcessorBuilder builder, bool vertical) { IProcessor pixelPathsProcessor; if (vertical) { pixelPathsProcessor = new PixelPathsProcessor(); } else { pixelPathsProcessor = new HorizontalPixelPathsProcessor(); } return(builder.SetProcessor(pixelPathsProcessor)); }
public IRuntimeBuilder RegisterProcessor(IProcessorBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (processorBuilders.Contains(builder)) { throw new ArgumentException("The builder has already been added.", nameof(builder)); } processorBuilders.Add(builder); return(this); }
/// <summary> /// Create <see cref="ProcessorBuilder"/> class with standard preferences. /// </summary> /// <param name="linkedLibraryFactory">Linked class</param> /// <exception cref="ArgumentNullException">Throw if linked library factory is null</exception> public StandardProcessorFactory(ILinkedLibraryFactory linkedLibraryFactory) { if (linkedLibraryFactory == null) { throw new ArgumentNullException(nameof(linkedLibraryFactory)); } ProcessorBuilder = new ProcessorBuilder() { LexicalAnalyzer = new LexicalAnalyzer(LexicalRules), SyntacticAnalyzer = new SyntacticAnalyzer(SyntacticRules), SyntacticTarget = SyntacticTarget, Translator = new Translator(TranslateRules), Linker = new Linker(LinkerRules, linkedLibraryFactory.CreateLinkedLibrary()), Compiler = new Compiler() }; }
private void ConfigureConveyor(IProcessorBuilder conveyor) { conveyor.SetPixelEnergyCalculator(); conveyor.SetProcessor( context => SetImageToPictureBox(gradientPictureBox, context)); conveyor.SetPixelPathsProcessor(vertical: true); conveyor.SetProcessor( context => SetImageToPictureBox(pixelPathPictureBox, context)); conveyor.SetShortestPathFinder(vertical: true); conveyor.SetProcessor(MarkShortestPathAsRed); conveyor.SetProcessor( context => SetImageToPictureBox(shortestPathPictureBox, context)); }
/// <summary> /// Initializes a new instance of the <see cref="Processor"/> class. /// </summary> /// <param name="builder">Builder class</param> /// <exception cref="ArgumentNullException">Throw if builder properties are null</exception> public Processor(IProcessorBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (builder.LexicalAnalyzer == null) { throw new ArgumentNullException(nameof(builder.LexicalAnalyzer)); } if (builder.SyntacticAnalyzer == null) { throw new ArgumentNullException(nameof(builder.SyntacticAnalyzer)); } if (builder.SyntacticTarget == null) { throw new ArgumentNullException(nameof(builder.SyntacticTarget)); } if (builder.Translator == null) { throw new ArgumentNullException(nameof(builder.Translator)); } if (builder.Linker == null) { throw new ArgumentNullException(nameof(builder.Linker)); } if (builder.Compiler == null) { throw new ArgumentNullException(nameof(builder.Compiler)); } LexicalAnalyzer = builder.LexicalAnalyzer; SyntacticAnalyzer = builder.SyntacticAnalyzer; SyntacticTarget = builder.SyntacticTarget; Translator = builder.Translator; Linker = builder.Linker; Compiler = builder.Compiler; }
public static IProcessorBuilder SetPixelEnergyCalculator(this IProcessorBuilder builder) { return(builder.SetProcessor(new PixelEnergyCalculator())); }
public static IProcessorBuilder SetProcessor(this IProcessorBuilder builder, Action <ProcessingContext> processingAction) { return(builder.SetProcessor(new GenericProcessor(processingAction))); }
public static IProcessorBuilder SetJpegImageSaver(this IProcessorBuilder builder, int width, int height) { return(builder.SetProcessor(new JpegImageSaver(width, height))); }