/// Given a tag string with the format specified in the package comment, /// parseFieldParameters will parse it into a fieldParameters structure, /// ignoring unknown parts of the string. // func parseFieldParameters(str string) (ret fieldParameters) { public static FieldParameters ParseFieldParameters(this string str) { var ret = new FieldParameters(); foreach (var part in str.Split(',')) { if (FIELD_PARAMETERS_PARSE_MAP.ContainsKey(part)) { FIELD_PARAMETERS_PARSE_MAP[part](ret); } else if (part.StartsWith("default:")) { long l; if (long.TryParse(part.Substring(8), out l)) { ret.DefaultValue = l; } } else if (part.StartsWith("tag:")) { int i; if (int.TryParse(part.Substring(4), out i)) { ret.Tag = i; } } } return(ret); }
public static void DeleteColumnFieldTest(FieldParameters fp) { DeleteColumns deleteCol = new DeleteColumns(fp, (new int[] { 0, 1, 2, 3, 5, 7, 15, 16, 17, 18 })); deleteCol.Apply(); fp.Generate().GenerateImage().Save("tests/FilterTests/nachColLöschen.png"); SaveFieldPlan(fp, "tests/FilterTests/FeldplanNachColLöschen.html"); deleteCol.Undo(); fp.Generate().GenerateImage().Save("tests/FilterTests/nachColLoeschenUndo.png"); }
public static void DeleteRowFieldTest(FieldParameters fp) { DeleteRows deleteRow = new DeleteRows(fp, (new int[] { 0, fp.current_height - 1 }).Select(x => x * fp.current_width).ToArray()); deleteRow.Apply(); fp.Generate().GenerateImage().Save("tests/FilterTests/nachRowLöschen.png"); SaveFieldPlan(fp, "tests/FilterTests/FeldplanNachRowLöschen.html"); deleteRow.Undo(); fp.Generate().GenerateImage().Save("tests/FilterTests/nachRowLoeschenUndo.png"); }
public IFieldParameters ToObject(FieldParameterXmlWrapper wrapper) { FieldParameters f = new FieldParameters(); f.FieldProfile = fp.ToObject(wrapper.Profile); f.Detail = fd.ToObject(wrapper.Detail); f.Offset = wrapper.Offset; f.BlendModeWrap = fb.ToObject(wrapper.Blend); f.Seed = wrapper.Seed; return(f); }
public static void PostFilterFieldTest(string path) { FieldParameters fp = new FieldParameters(Path.GetFullPath("tests/PostFilterTest.DObject"), path, "colors.DColor", 8, 8, 24, 8, 10000, Emgu.CV.CvEnum.Inter.Lanczos4, ColorDetectionMode.Cie94Comparison, new Dithering(), new NoColorRestriction()); fp.Generate().GenerateImage().Save("tests/FilterTests/vorFilter.png"); InsertRowFieldTest(fp); DeleteRowFieldTest(fp); CopyPasteFieldTest(fp); InsertColumnFieldTest(fp); DeleteColumnFieldTest(fp); }
public static AssemblyNode CreateProject() { string rootpath = Path.GetFullPath("tests/"); DominoAssembly main = new DominoAssembly(); main.Save(Path.Combine(rootpath, "main.DProject")); main.colorPath = "colors.DColor"; var mainnode = new AssemblyNode(Path.Combine(rootpath, "main.DProject")); FieldParameters field1 = new FieldParameters(Path.GetFullPath("tests/field1.DObject"), "mountain.jpg", main.colorPath, 8, 8, 24, 8, 10000, Emgu.CV.CvEnum.Inter.Lanczos4, new CieDe2000Comparison(), new Dithering(), new NoColorRestriction()); field1.Save(); new FieldNode("field1.DObject", main); StreamReader sr = new StreamReader(new FileStream("Structures.xml", FileMode.Open)); XElement xml = XElement.Parse(sr.ReadToEnd()); StructureParameters structure = new StructureParameters(Path.GetFullPath("tests/structure.DObject"), "transparent.png", xml.Elements().ElementAt(1), 30000, main.colorPath, ColorDetectionMode.Cie1976Comparison, new Dithering(), AverageMode.Corner, new NoColorRestriction(), true); structure.Save(); new StructureNode("structure.DObject", main); DominoAssembly sub = new DominoAssembly(); string subpath = "sub.DProject"; sub.Save(Workspace.AbsolutePathFromReference(ref subpath, main)); sub.colorPath = "colors.DColor"; new AssemblyNode("sub.DProject", main); FieldParameters sub1 = new FieldParameters(Path.GetFullPath("tests/field2.DObject"), "transparent.png", main.colorPath, 8, 8, 24, 8, 10000, Emgu.CV.CvEnum.Inter.Lanczos4, new CieDe2000Comparison(), new Dithering(), new NoColorRestriction()); field1.Save(); new FieldNode("field2.DObject", sub); new FieldNode("field1.DObject", sub); sub.Save(); foreach (AssemblyNode node in main.children.Where(child => child is AssemblyNode)) { node.obj.Save(); } if (field1 == ((FieldNode)sub.children[1]).obj) { Console.WriteLine("references to field1 identical"); } main.Save(mainnode.Path); PrintProjectStructure(mainnode, ""); return(mainnode); }
public static void InsertColumnFieldTest(FieldParameters fp) { AddColumns addCol = new AddColumns(fp, 1, 5, 5, true); addCol.Apply(); AddColumns addCol2 = new AddColumns(fp, 0, 5, 5, false); addCol2.Apply(); fp.Generate().GenerateImage().Save("tests/FilterTests/nachColumnEinfügen.png"); SaveFieldPlan(fp, "tests/FilterTests/FeldplanNachColumnEinfuegen.html"); addCol2.Undo(); addCol.Undo(); fp.Generate().GenerateImage().Save("tests/FilterTests/nachColumnEinfügenUndo.png"); }
public static void InsertRowFieldTest(FieldParameters fp) { AddRows addRows = new AddRows(fp, fp.Height * fp.Length - 1, 5, 5, true); addRows.Apply(); AddRows addRows2 = new AddRows(fp, 0, 5, 5, false); addRows2.Apply(); fp.Generate().GenerateImage().Save("tests/FilterTests/nachRowEinfügen.png"); SaveFieldPlan(fp, "tests/FilterTests/FeldplanNachRowEinfuegen.html"); addRows2.Undo(); addRows.Undo(); fp.Generate().GenerateImage().Save("tests/FilterTests/nachRowEinfügenUndo.png"); }
public void CheckTransparency() { InitializeWorkspace(); FieldParameters p = new FieldParameters("image_transparency.png", "colors.DColor", 8, 8, 24, 8, 20000, Inter.Lanczos4, new Dithering(), ColorDetectionMode.CieDe2000Comparison, new NoColorRestriction()); p.TransparencySetting = 128; DominoTransfer t = p.Generate(); Assert.AreEqual(0, t.dominoes[0]); p.background = Colors.White; t = p.Generate(); Assert.AreEqual(29, t.dominoes[0]); }
private static OrdinalModel OrdinalModel() { FieldParameters parameters = new FieldParameters() { Size = 10 }; OrdinalModel model = new OrdinalModel(parameters); InitializationData data = new InitializationData(typeof(TickerElement)) { Count = Count, InitialazerType = typeof(RandomInitializer) }; Initializer initializer = Initializer.FromInitializationData(data); model.Initialize(new[] { initializer }); return(model); }
public CreateFieldVM(FieldParameters dominoProvider, bool?AllowRegenerate) : base(dominoProvider, AllowRegenerate) { // Regeneration kurz sperren, dann wieder auf Ursprungswert setzen AllowRegeneration = false; field_templates = new List <StandardSize>(); field_templates.Add(new StandardSize("8mm", new Sizes(8, 8, 24, 8))); field_templates.Add(new StandardSize("Tortoise", new Sizes(0, 48, 24, 0))); field_templates.Add(new StandardSize("User Size", new Sizes(10, 10, 10, 10))); Click_Binding = new RelayCommand((x) => BindSize = !BindSize); ReloadSizes(); AllowRegeneration = AllowRegenerate; Refresh(); if (fieldParameters.Counts != null) { RefreshColorAmount(); } UnsavedChanges = false; TargetSizeAffectedProperties = new string[] { "Length", "Height" }; }
public CreateFieldVM(FieldParameters dominoProvider, bool?AllowRegenerate) : base(dominoProvider, AllowRegenerate) { // Regeneration kurz sperren, dann wieder auf Ursprungswert setzen AllowRegeneration = false; Field_templates = new List <StandardSize> { new StandardSize(_("8mm"), new Sizes(8, 8, 24, 8)), new StandardSize(_("Tortoise"), new Sizes(0, 48, 24, 0)), new StandardSize(GetParticularString("User defined field dimensions (keep string short)", "User Size"), new Sizes(10, 10, 10, 10)) }; ReloadSizes(); AllowRegeneration = AllowRegenerate; Refresh(); if (fieldParameters.Counts != null) { RefreshColorAmount(); } UnsavedChanges = false; TargetSizeAffectedProperties = new string[] { nameof(Length), nameof(Height) }; }
public static void CopyPasteFieldTest(FieldParameters fp) { int[] source_area = new int[400]; int startx = 20; int starty = 20; int target_x = 30; int target_y = 30; for (int i = 0; i < 20; i++) { for (int j = 0; j < 20; j++) { source_area[j * 20 + i] = fp.current_width * (j + starty) + (startx + i); } } PasteFilter paste = new PasteFilter(fp, fp.current_width * starty + startx, source_area, fp.current_width * target_y + target_x); paste.Apply(); fp.Generate().GenerateImage().Save("tests/FilterTests/nachPaste.png"); paste.Undo(); fp.Generate().GenerateImage().Save("tests/FilterTests/nachPasteUndo.png"); }
private protected NumericFieldBase( FieldContainer?parent, FieldParameters common, NumericFieldBaseParameters numericBaseParameters) : base(parent, common) =>
public OrdinalModel(FieldParameters fieldParameters) { Field = new Field(fieldParameters); turns.TurnStart += Field.NextTurn; turns.TurnStart += () => TurnStart?.Invoke(); }
public BaseField() { Parameters = new FieldParameters(); }
private protected NumericFieldBase(FieldContainer?parent, FieldParameters common, int min, int max, int @default) : base(parent, common) => (Min, Max, Default) = (min, max, @default);
internal OverlayField(FieldContainer?parent, FieldParameters common, int nestedFieldCount, string switchPath, IReadOnlyDictionary <string, FieldList> fieldLists) : base(parent, common) => (NestedFieldCount, SwitchPath, FieldLists) = (nestedFieldCount, switchPath, fieldLists);
private NumericField(FieldContainer?parent, FieldParameters common, NumericFieldBaseParameters numericBaseParameters, INumericFieldFormatter numericFieldFormatter) : base(parent, common, numericBaseParameters) => this.numericFieldFormatter = numericFieldFormatter;
internal StringField(FieldContainer?parent, FieldParameters common, int length) : base(parent, common) { Length = length; BytesPerChar = Size / length; }
private protected FieldBase(FieldContainer?parent, FieldParameters parameters) => (Parent, Parameters) = (parent, parameters);
internal PlaceholderField(FieldContainer?parent, FieldParameters common) : base(parent, common) { }
static void FieldTest(String path) { Console.WriteLine("======= FIELD TEST ======="); //Progress<String> progress = new Progress<string>(pr => Console.WriteLine(pr)); //Mat mat = CvInvoke.Imread(path, ImreadModes.Unchanged); FieldParameters p = new FieldParameters(Path.GetFullPath("tests/FieldTest.DObject"), path, "colors.DColor", 8, 8, 24, 8, 20000, Inter.Lanczos4, ColorDetectionMode.Cie1976Comparison, new Dithering(), new NoColorRestriction()); ((FieldCalculation)p.PrimaryCalculation).TransparencySetting = 128; var watch = System.Diagnostics.Stopwatch.StartNew(); p.Generate().GenerateImage().Save("tests/fieldtests_before_filters.png"); watch.Stop(); Console.WriteLine("elapsed: " + watch.ElapsedMilliseconds); /*watch.Restart(); * p.ditherMode = new FloydSteinbergDithering(); * watch.Stop(); * Console.WriteLine("elapsed: " + watch.ElapsedMilliseconds); * watch.Restart(); * p.Generate().GenerateImage().Save("tests/fieldtest_floyd_steinberg.png"); * p.ditherMode = new Dithering(); * watch.Stop(); * Console.WriteLine("elapsed: " + watch.ElapsedMilliseconds); * watch.Restart(); * p.Generate().GenerateImage().Save("tests/fieldtest_after_dithering.png"); * p.ditherMode = new StuckiDithering(); * watch.Stop(); * Console.WriteLine("elapsed: " + watch.ElapsedMilliseconds); * watch.Restart(); * p.Generate().GenerateImage().Save("tests/fieldtest_stucki.png"); * p.ditherMode = new JarvisJudiceNinkeDithering(); * watch.Stop(); * Console.WriteLine("elapsed: " + watch.ElapsedMilliseconds); * watch.Restart(); * p.Generate().GenerateImage().Save("tests/fieldtest_jjn.png"); * watch.Stop(); * Console.WriteLine("elapsed: " + watch.ElapsedMilliseconds);*/ //DominoTransfer t = await Dispatcher.CurrentDispatcher.Invoke(async () => await Task.Run(() => p.Generate())); // Filtertests für ein Logo oder ähnliches /*var erster = ((BlendFileFilter)p.ImageFilters[0]); * erster.RotateAngle = 30; * erster.ScaleX = 0.5; * erster.ScaleY = 0.3; * erster.CenterX = erster.GetSizeOfMat().Width * 0.6; * erster.CenterY = erster.GetSizeOfMat().Height * 0.6; * var zweiter = new BlendTextFilter(); * zweiter.FontSize = 40; * zweiter.FontFamily = "Calibri"; * zweiter.Text = "Hallo Welt"; * zweiter.Color = System.Drawing.Color.Green; * p.ImageFilters.Add(zweiter); * zweiter.CenterX = 500; * zweiter.CenterY = 500;*/ // Filtertests für Bilder // Helligkeit / Kontrast /*var hell = new ContrastLightFilter(); * hell.Alpha = 1.5; * hell.Beta = -150; * p.ImageFilters.Add(hell);*/ //var gamma = new GammaCorrectFilter(); //gamma.Gamma = 1.1; //p.ImageFilters.Add(gamma); /*var blur = new GaussianSharpenFilter(); * blur.KernelSize = 21; * blur.StandardDeviation = 5; * blur.SharpenWeight = 0.5; * p.ImageFilters.Add(blur);*/ /*var replace = new ReplaceColorFilter(); * replace.BeforeColor = System.Drawing.Color.LightBlue; * replace.AfterColor = System.Drawing.Color.Red; * replace.Tolerance = 50; * p.ImageFilters.Add(replace);*/ //p.ColorFilters.Add(new ChangeCountColorFilter() { Index = 14, NewCount = 0 }); //p.ColorFilters.Add(new ChangeRGBColorFilter() { Index = 30, Color = Colors.Green }); //p.Generate(); /*Console.WriteLine(String.Join("\n", p.counts)); * Console.WriteLine("Size: " + p.Generate().shapes.Count()); * watch.Stop(); * Console.WriteLine(watch.ElapsedMilliseconds); * watch = System.Diagnostics.Stopwatch.StartNew(); * Mat b2 = p.Generate().GenerateImage(Colors.Transparent, 2000); * watch.Stop(); * Console.WriteLine(watch.ElapsedMilliseconds); * b2.Save("tests/FieldTest.png"); * FileStream fs = new FileStream(@"tests/FieldPlanTest.html", FileMode.Create); * StreamWriter sw = new StreamWriter(fs);*/ /*sw.Write(p.GetHTMLProcotol(new ObjectProtocolParameters() * { * backColorMode = ColorMode.Normal, * foreColorMode = ColorMode.Intelligent, * orientation = Core.Orientation.Horizontal, * reverse = false, * summaryMode = SummaryMode.Large, * textFormat = "<font face=\"Verdana\">", * templateLength = 20, * textRegex = "%count% %color%", * title = "Field" * }));*/ /*p.SaveXLSFieldPlan("tests/ExcelFieldPlanTest.xlsx", new ObjectProtocolParameters() * { * backColorMode = ColorMode.Normal, * foreColorMode = ColorMode.Intelligent, * orientation = Core.Orientation.Horizontal, * reverse = false, * summaryMode = SummaryMode.Large, * textFormat = "<font face=\"Verdana\">", * templateLength = 20, * textRegex = "%count%", * title = "Field", * path = Directory.GetCurrentDirectory() * * });*/ //sw.Close(); p.Save(); watch = Stopwatch.StartNew(); int[] counts = Workspace.LoadColorList <FieldParameters>(Path.GetFullPath("tests/FieldTest.DObject")).Item2; watch.Stop(); Console.WriteLine("Preview Load Time: " + watch.ElapsedMilliseconds); Console.WriteLine(String.Join(", ", counts)); Workspace.Clear(); watch = Stopwatch.StartNew(); FieldParameters loaded = Workspace.Load <FieldParameters>(Path.GetFullPath("tests/FieldTest.DObject")); loaded.Generate(); watch.Stop(); Console.WriteLine("Load Time: " + watch.ElapsedMilliseconds); //loaded.last.GenerateImage(Colors.Transparent).Save("tests/afterLoad.png"); Console.WriteLine(p.colors == loaded.colors); watch = Stopwatch.StartNew(); int[] counts2 = Workspace.LoadColorList <FieldParameters>(Path.GetFullPath("tests/FieldTest.DObject")).Item2; watch.Stop(); Console.WriteLine("Preview Load Time: " + watch.ElapsedMilliseconds); Console.WriteLine(String.Join(", ", counts2)); Console.WriteLine("Number of image filters: " + ((FieldReadout)loaded.PrimaryImageTreatment).ImageFilters.Count); //loaded.ImageHeight = 1500; //loaded.ColorFilters.Add(new ChangeCountColorFilter() { Index = 14, NewCount = 0 }); //loaded.ColorFilters.Add(new ChangeRGBColorFilter() { Index = 30, Color = Colors.Green }); //t = loaded.Generate(); p.Generate().GenerateImage().Save("tests/fieldtest_after_load.png"); Console.WriteLine(String.Join(", ", loaded.Counts)); }
internal InstrumentField(FieldContainer?parent, FieldParameters common, ModuleOffset?bankOffset) : base(parent, common) =>
public OrdinalFieldViewModel(FieldParameters parameters) : this(new OrdinalModel(parameters)) { }
internal BooleanField(FieldContainer?parent, FieldParameters common) : base(parent, common, min: 0, max: 1, @default: 0) { }