public LiveBuildHelperVM(IDominoProvider pFParameters, int pBlockSize, Core.Orientation orientation, bool MirrorX, bool MirrorY) { BlockSize = pBlockSize; fParameters = pFParameters; intField = fParameters.GetBaseField(orientation, MirrorX, MirrorY); NextN = 500; CountRow = intField.GetLength(1); stonesPerLine = intField.GetLength(0); CountBlock = Convert.ToInt32(Math.Ceiling(((double)stonesPerLine / BlockSize))); SizeChanged = new RelayCommand(o => { RefreshCanvas(); }); MouseDown = new RelayCommand(o => { CurrentBlock.Focus(); }); PositionSnapshots = new ObservableCollection <PositionSnapshot>(); MakePositionSnapshot = new RelayCommand(o => { PositionSnapshots.RemoveAll(x => x.Column == SelectedBlock && x.Row == SelectedRow); if ((bool)o == true) { PositionSnapshots.Insert(0, new PositionSnapshot() { Column = SelectedBlock, Row = SelectedRow }); } RaisePropertyChanged(nameof(PositionSnapshots)); }); GoToPositionSnapshot = new RelayCommand(o => { if (o is PositionSnapshot ps) { SelectedBlock = ps.Column; SelectedRow = ps.Row; } }); ColumnConfig = new AvaloniaList <Column> { new Column() { DataField = "DominoColor.mediaColor", Header = "", Class = "Color" }, new Column() { DataField = "DominoColor.name", Header = _("Name") }, new Column() { DataField = "ProjectCount[0]", Header = GetParticularString("Number of stones available", "Total") }, new Column() { DataField = "ProjectCount[1]", Header = GetParticularString("Remaining number of stones", "Remaining"), Class = "Count" }, new Column() { DataField = "ProjectCount[2]", Header = string.Format(GetParticularString("Dominoes of the given color within the next {0}", "Next {0}"), NextN) } }; OpenPopup = new RelayCommand(x => { FillColorList(); PopupOpen = true; }); CurrentStones = new ObservableCollection <SolidColorBrush>(); HistStones = new ObservableCollection <SolidColorBrush>(); ColorNames = new ObservableCollection <ColorAmount>(); RefreshCanvas(); }
public ExportOptions(IDominoProvider provider) { InitializeComponent(); var dc = new ExportOptionsVM(provider); DataContext = dc; dc.PropertyChanged += ExpVM_PropertyChanged; }
public ProtocolVM(IDominoProvider dominoProvider, string fieldName, string assemblyname = "") { DominoProvider = dominoProvider; dominoTransfer = DominoProvider.Generate(); Titel = fieldName; currentOPP.project = assemblyname; Init(); }
public EditProjectVM(IDominoProvider dominoProvider) : base() { HaveBuildtools = dominoProvider.HasProtocolDefinition ? Visibility.Visible : Visibility.Hidden; if (dominoProvider != null && dominoProvider.PrimaryImageTreatment != null) { if (dominoProvider.PrimaryImageTreatment.FilteredImage != null) { FilteredImage = dominoProvider.PrimaryImageTreatment.FilteredImage; } else { BlendFileFilter bff = dominoProvider.PrimaryImageTreatment.ImageFilters.OfType <BlendFileFilter>().FirstOrDefault(); if (bff != null) { string relativePath = bff.FilePath; FilteredImage = (System.Drawing.Bitmap)System.Drawing.Image.FromFile(Workspace.AbsolutePathFromReference(ref relativePath, dominoProvider)); } } } UICursor = null; selectedDominoes = new List <DominoInCanvas>(); UnsavedChanges = false; CurrentProject = dominoProvider; _DominoList = new ObservableCollection <ColorListEntry>(); _DominoList.Clear(); CurrentProject.colors.Anzeigeindizes.CollectionChanged += Anzeigeindizes_CollectionChanged; refreshList(); selectedColors = new int[CurrentProject.colors.Length]; SaveField = new RelayCommand(o => { Save(); }); RestoreBasicSettings = new RelayCommand(o => { redoStack = new Stack <PostFilter>(); Editing = false; }); SelectColor = new RelayCommand(o => { SelectAllStonesWithColor(); }); MouseClickCommand = new RelayCommand(o => { ChangeColor(); }); ClearSelection = new RelayCommand(o => { ClearFullSelection(); }); CopyCom = new RelayCommand(o => { Copy(); }); PasteCom = new RelayCommand(o => { Paste(); }); AddRowAbove = new RelayCommand(o => { AddRow(false); }); AddRowBelow = new RelayCommand(o => { AddRow(true); }); AddColumnRight = new RelayCommand(o => { AddColumn(true); }); AddColumnLeft = new RelayCommand(o => { AddColumn(false); }); RemoveRows = new RelayCommand(o => { RemoveSelRows(); }); RemoveColumns = new RelayCommand(o => { RemoveSelColumns(); }); FlipHorizontallyCom = new RelayCommand(o => { System.Diagnostics.Debug.WriteLine("asdf");; }); FlipVerticallyCom = new RelayCommand(o => { System.Diagnostics.Debug.WriteLine("asdf");; }); ShowImageClick = new RelayCommand(o => { ShowImage(); }); MouseInPicture = new RelayCommand(o => { UICursor = Cursors.Hand; }); MouseOutPicture = new RelayCommand(o => { UICursor = null; }); SelectAllCom = new RelayCommand(o => { SelectAll(); }); RefreshCanvas(); UnsavedChanges = false; }
public ProjectExportOptionsVM(IDominoProvider provider) : base() { ShowImageSize = true; height = provider.Last.PhysicalHeight; width = provider.Last.PhysicalLength; expanded_width = provider.Last.PhysicalExpandedHeight; expanded_height = provider.Last.PhysicalExpandedLength; Expandable = provider is FieldParameters; if (provider is FieldParameters fp) { Collapsed = true; } MaxSize = 10000; // height > width ? height : width; ImageSize = height > width ? height : width; ImageSize = ImageSize > MaxSize ? MaxSize : ImageSize; Filename = Path.GetFileName(Workspace.Find(provider)); }
public DominoProviderVM(IDominoProvider dominoProvider, bool?AllowRegenerate) : base() { CurrentProject = dominoProvider; CalculationVM = CalculationVM.CalculationVMFactory(CurrentProject.PrimaryCalculation); ImageTreatmentVM = ImageTreatmentVM.ImageTreatmentVMFactory(CurrentProject.PrimaryImageTreatment); FillColorList(); BuildtoolsClick = new RelayCommand(o => { OpenBuildTools(); }); SetDominoCount = new RelayCommand(o => { if (CurrentProject is ICountTargetable) { DominoCount = (int)Math.Floor((double)o); } } ); EditClick = new RelayCommand(o => { redoStack = new Stack <PostFilter>(); Editing = false; }); OpenPopup = new RelayCommand(x => PopupOpen = true); ColorColumnConfig.Add(new Column() { DataField = "DominoColor.mediaColor", Header = "", Class = "Color" }); ColorColumnConfig.Add(new Column() { DataField = "DominoColor.name", Header = _("Name"), Width = new GridLength(100), CanResize = true }); ColorColumnConfig.Add(new Column() { DataField = "DominoColor.count", Header = GetParticularString("Number of stones available", "Total"), Class = "Count", Width = new GridLength(70), CanResize = true }); ColorColumnConfig.Add(new Column() { DataField = "SumAll", Header = GetParticularString("Number of stones used in current project", "Used"), HighlightDataField = "DominoColor.count" }); ColorColumnConfig.Add(new Column() { DataField = "Weight", Header = GetParticularString("Emphasis during calculation", "Weight") }); AllowRegeneration = AllowRegenerate; }
public ExportOptionsVM(IDominoProvider provider) { Cancel = new RelayCommand((o) => { result = false; Close = true; }); OK = new RelayCommand((o) => { result = true; Close = true; }); height = provider.last.physicalHeight; width = provider.last.physicalLength; expanded_width = provider.last.physicalExpandedHeight; expanded_height = provider.last.physicalExpandedLength; Expandable = provider is FieldParameters ? Visibility.Visible : Visibility.Hidden; if (provider is FieldParameters fp) { Collapsed = true; } DrawBorders = true; MaxSize = 10000; // height > width ? height : width; ImageSize = height > width ? height : width; ImageSize = ImageSize > MaxSize ? MaxSize : ImageSize; Filename = Path.GetFileName(Workspace.Find(provider)); }
public static void SaveFieldPlan(IDominoProvider fp, string path) { FileStream fs = new FileStream(path, FileMode.Create); StreamWriter sw = new StreamWriter(fs); sw.Write(fp.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" })); fs.Close(); }
public static DominoProviderTabItem ViewModelGenerator(IDominoProvider project, string path) { DominoProviderTabItem Content = null; if (project != null) { if (project.Editing) { Content = new EditProjectVM(project); } else { switch (project) { case FieldParameters fieldNode: Content = new CreateFieldVM(fieldNode, true); break; case StructureParameters structureNode: Content = new CreateRectangularStructureVM(structureNode, true); break; case SpiralParameters spiralNode: Content = new CreateSpiralVM(spiralNode, true); break; case CircleParameters circleNode: Content = new CreateCircleVM(circleNode, true); break; default: break; } } //(Content as DominoProviderTabItem).assemblyname = // OpenProjectSerializer.GetOpenProjects().Where(x => x.id == project.ParentProjectID).First().name; (Content as DominoProviderTabItem).name = System.IO.Path.GetFileNameWithoutExtension(path); } return(Content); }
public LiveBuildHelperVM(IDominoProvider pFParameters, int pBlockSize, Core.Orientation orientation, bool MirrorX, bool MirrorY) { blockSize = pBlockSize; fParameters = pFParameters; intField = fParameters.GetBaseField(orientation, MirrorX, MirrorY); NextN = 500; CountRow = intField.GetLength(1); stonesPerLine = intField.GetLength(0); CountBlock = Convert.ToInt32(Math.Ceiling(((double)stonesPerLine / blockSize))); SizeChanged = new RelayCommand(o => { RefreshCanvas(); }); MouseDown = new RelayCommand(o => { currentBlock.Focus(); }); ColumnConfig = new ColumnConfig(); var columns = new ObservableCollection <Column>(); columns.Add(new Column() { DataField = "DominoColor.mediaColor", Header = "" }); columns.Add(new Column() { DataField = "DominoColor.name", Header = "Name" }); columns.Add(new Column() { DataField = "ProjectCount[0]", Header = "Total used" }); columns.Add(new Column() { DataField = "ProjectCount[1]", Header = "Remaining" }); columns.Add(new Column() { DataField = "ProjectCount[2]", Header = "Next " + NextN }); ColumnConfig.Columns = columns; OpenPopup = new RelayCommand(x => { FillColorList(); PopupOpen = true; }); }
public DominoProviderVM(IDominoProvider dominoProvider, bool?AllowRegenerate) : base() { CurrentProject = dominoProvider; CalculationVM = CalculationVM.CalculationVMFactory(CurrentProject.PrimaryCalculation); ImageTreatmentVM = ImageTreatmentVM.ImageTreatmentVMFactory(CurrentProject.PrimaryImageTreatment); FillColorList(); BuildtoolsClick = new RelayCommand(o => { OpenBuildTools(); }); EditClick = new RelayCommand(o => { redoStack = new Stack <PostFilter>(); Editing = false; }); OpenPopup = new RelayCommand(x => PopupOpen = true); ColorColumnConfig = new ColumnConfig(); var columns = new ObservableCollection <Column>(); columns.Add(new Column() { DataField = "DominoColor.mediaColor", Header = "" }); columns.Add(new Column() { DataField = "DominoColor.name", Header = "Name" }); columns.Add(new Column() { DataField = "DominoColor.count", Header = "Total" }); columns.Add(new Column() { DataField = "SumAll", Header = "Used", HighlightDataField = "DominoColor.count" }); columns.Add(new Column() { DataField = "Weight", Header = "Weight" }); ColorColumnConfig.Columns = columns; AllowRegeneration = AllowRegenerate; }
public EditProjectVM(IDominoProvider dominoProvider) : base() { HaveBuildtools = dominoProvider.HasProtocolDefinition; UICursor = null; Dominoes = new AvaloniaList <EditingDominoVM>(); PossiblePastePositions = new List <int>(); UnsavedChanges = false; CurrentProject = dominoProvider; _DominoList = new ObservableCollection <ColorListEntry>(); _DominoList.Clear(); CurrentProject.colors.Anzeigeindizes.CollectionChanged += Anzeigeindizes_CollectionChanged; RefreshList(); selectedColors = new int[CurrentProject.colors.Length]; SaveField = new RelayCommand(o => { Save(); }); RestoreBasicSettings = new RelayCommand(o => { redoStack = new Stack <PostFilter>(); Editing = false; }); SelectColor = new RelayCommand(o => { SelectAllStonesWithColor(); }); MouseClickCommand = new RelayCommand(o => { ChangeColor(); }); ClearSelection = new RelayCommand(o => { ClearFullSelection(true); }); CopyCom = new RelayCommand(o => { Copy(); }); AddRowAbove = new RelayCommand(o => { AddRow(false); }); AddRowBelow = new RelayCommand(o => { AddRow(true); }); AddColumnRight = new RelayCommand(o => { AddColumn(true); }); AddColumnLeft = new RelayCommand(o => { AddColumn(false); }); RemoveRows = new RelayCommand(o => { RemoveSelRows(); }); RemoveColumns = new RelayCommand(o => { RemoveSelColumns(); }); FlipHorizontallyCom = new RelayCommand(o => { System.Diagnostics.Debug.WriteLine("asdf");; }); FlipVerticallyCom = new RelayCommand(o => { System.Diagnostics.Debug.WriteLine("asdf");; }); MouseInPicture = new RelayCommand(o => { UICursor = new Cursor(StandardCursorType.Hand); }); MouseOutPicture = new RelayCommand(o => { UICursor = null; }); SelectAllCom = new RelayCommand(o => { SelectAll(); }); ChangeColorCom = new RelayCommand(o => { if (o is IDominoColor dc) { ChangeColor(dc); } }); UnsavedChanges = false; SelectionTool = new SelectionToolVM(this); DisplaySettingsTool = new DisplaySettingsToolVM(this); ZoomTool = new ZoomToolVM(this); RulerTool = new RulerToolVM(this); EditingTools = new ObservableCollection <EditingToolVM>() { SelectionTool, RulerTool, new EditingToolVM(this) { Image = "textDrawingImage", Name = "Write text" }, ZoomTool, DisplaySettingsTool }; if (this.CurrentProject is IRowColumnAddableDeletable) { RowColumnTool = new RowColumnInsertionVM(this); EditingTools.Insert(2, RowColumnTool); } SelectedTool = SelectionTool; UpdateUIElements(); }
public EditProjectVM(IDominoProvider dominoProvider) : base() { HaveBuildtools = dominoProvider.HasProtocolDefinition ? Visibility.Visible : Visibility.Hidden; UICursor = null; selectedDominoes = new List <int>(); UnsavedChanges = false; CurrentProject = dominoProvider; _DominoList = new ObservableCollection <ColorListEntry>(); _DominoList.Clear(); CurrentProject.colors.Anzeigeindizes.CollectionChanged += Anzeigeindizes_CollectionChanged; refreshList(); selectedColors = new int[CurrentProject.colors.Length]; SaveField = new RelayCommand(o => { Save(); }); RestoreBasicSettings = new RelayCommand(o => { redoStack = new Stack <PostFilter>(); Editing = false; }); SelectColor = new RelayCommand(o => { SelectAllStonesWithColor(); }); MouseClickCommand = new RelayCommand(o => { ChangeColor(); }); ClearSelection = new RelayCommand(o => { ClearFullSelection(true); }); CopyCom = new RelayCommand(o => { Copy(); }); PasteCom = new RelayCommand(o => { Paste(); }); AddRowAbove = new RelayCommand(o => { AddRow(false); }); AddRowBelow = new RelayCommand(o => { AddRow(true); }); AddColumnRight = new RelayCommand(o => { AddColumn(true); }); AddColumnLeft = new RelayCommand(o => { AddColumn(false); }); RemoveRows = new RelayCommand(o => { RemoveSelRows(); }); RemoveColumns = new RelayCommand(o => { RemoveSelColumns(); }); FlipHorizontallyCom = new RelayCommand(o => { System.Diagnostics.Debug.WriteLine("asdf");; }); FlipVerticallyCom = new RelayCommand(o => { System.Diagnostics.Debug.WriteLine("asdf");; }); MouseInPicture = new RelayCommand(o => { UICursor = Cursors.Hand; }); MouseOutPicture = new RelayCommand(o => { UICursor = null; }); SelectAllCom = new RelayCommand(o => { SelectAll(); }); UnsavedChanges = false; SelectionTool = new SelectionToolVM(this); DisplaySettingsTool = new DisplaySettingsToolVM(this); ZoomTool = new ZoomToolVM(this); EditingTools = new ObservableCollection <EditingToolVM>() { SelectionTool, new EditingToolVM() { Image = "ruler2DrawingImage", Name = "Measure distance" }, new EditingToolVM() { Image = "add_delete_rowDrawingImage", Name = "Add or delete rows and columns" }, new EditingToolVM() { Image = "textDrawingImage", Name = "Write text" }, new EditingToolVM() { Image = "fill_bucketDrawingImage", Name = "Fill area" }, ZoomTool, DisplaySettingsTool }; SelectedTool = SelectionTool; UpdateUIElements(); }
static void CircleTest(string path) { Console.WriteLine("======= CIRCLE TEST ======="); Progress <String> progress = new Progress <string>(pr => Console.WriteLine(pr)); //Mat mat = CvInvoke.Imread(path, ImreadModes.AnyColor); CircleParameters p = new CircleParameters(Path.GetFullPath("tests/Circle.DObject"), path, 150, "colors.DColor", ColorDetectionMode.CieDe2000Comparison, new FloydSteinbergDithering(), AverageMode.Corner, new NoColorRestriction()); p.AngleShiftFactor = -0.02; p.ForceDivisibility = 5; p.StartDiameter = 200; ((NonEmptyCalculation)p.PrimaryCalculation).Dithering = new FloydSteinbergDithering(); var watch = System.Diagnostics.Stopwatch.StartNew(); //DominoTransfer t = await Dispatcher.CurrentDispatcher.Invoke(async () => await Task.Run(() => p.Generate(wb, progress))); DominoTransfer t = p.Generate(); Console.WriteLine(t.length); watch.Stop(); Console.WriteLine(watch.ElapsedMilliseconds); watch = System.Diagnostics.Stopwatch.StartNew(); Mat b2 = t.GenerateImage(); watch.Stop(); Console.WriteLine(watch.ElapsedMilliseconds); b2.Save("tests/CircleTest.png"); FileStream fs = new FileStream(@"SpiralPlanTest.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("ExcelFieldPlanTest.xlsx", new ObjectProtocolParameters() //{ // backColorMode = ColorMode.Normal, // foreColorMode = ColorMode.Intelligent, // orientation = Orientation.Horizontal, // reverse = false, // summaryMode = SummaryMode.Large, // textFormat = "<font face=\"Verdana\">", // templateLength = 20, // textRegex = "%count%", // title = "Field", // path = Directory.GetCurrentDirectory() //}); sw.Close(); p.Save(); IDominoProvider c = Workspace.Load <IDominoProvider>("circle.DObject"); }