public override string Describe(ILabelMap labels) { var rangeEnd = (Size > 1) ? $"-${(Address + Size -1):X4}" : ""; var state = Disabled ? " - Disabled" : ""; return($"{Id:D2} {Type} ${Address:X4}{rangeEnd}==${Value:X2} ({Value}){state}"); }
public void Delete(ILabelMap labelMap) { _syncInvoker.Invoke(() => _labelMaps.Remove(labelMap)); Current = null; LabelMapDeleted?.Invoke(labelMap); }
public static void CalculateVolume(ILabelMap label, IScanData scanData) { var volume = 0.0d; var guard = new object(); Parallel.ForEach(label.GetCenters(), d => { var proj = label.GetProjection(Axis.Z, d.Z).ToList(); proj.Add(proj.Last()); var area = 0.0d; for (int v = 0; v < proj.Count - 1; v++) { var a = Math.Sqrt(Math.Pow(proj[v].X - d.X, 2) + Math.Pow(proj[v].Y - d.Y, 2)); var b = Math.Sqrt(Math.Pow(proj[v + 1].X - d.X, 2) + Math.Pow(proj[v + 1].Y - d.Y, 2)); var c = Math.Sqrt(Math.Pow(proj[v + 1].X - proj[v].X, 2) + Math.Pow(proj[v + 1].Y - proj[v].Y, 2)); var s = (a + b + c) / 2; area += Math.Sqrt(s * Math.Abs(s - a) * Math.Abs(s - b) * Math.Abs(s - c)); } lock (guard) { volume += area; } }); double xres, yres, zres; scanData.Resolution(out xres, out yres, out zres); label.Volume = (int)(volume * xres * yres * zres); }
public void Reset() { _syncInvoker.Invoke(() => _labelMaps.Clear()); _current = null; LabelMapSetReset?.Invoke(); }
public void Add() { var label = CreateLabelMap(); Current = label; LabelMapAdded?.Invoke(label); }
private void InitCropModelProperties(GeometryModel3D model, ILabelMap label) { Color color = Colors.White; color.A = 90; model.Material = new DiffuseMaterial(new SolidColorBrush(color)); }
private void InitModelProperties(GeometryModel3D model, ILabelMap label) { Color color = Color.FromArgb(label.Color.A, label.Color.R, label.Color.G, label.Color.B); if (!label.Visible) { color.A = 0; } model.Material = new DiffuseMaterial(new SolidColorBrush(color)); }
private void UpdateCropBox(GeometryModel3D model, ILabelMap label) { if (label.Visible && label.Crop.Visible) { model.Geometry = BuildCropModelGeo(label.Crop); InitCropModelProperties(model, label); } else { model.Geometry = null; } }
public override string Describe(ILabelMap labels) { string label = string.Empty; if (labels.AddressLabels.ContainsKey(Address)) { label = labels.AddressLabels[Address]; } var state = Disabled ? " - Disabled" : ""; return($"{Id:D2} Break on {Type}==${Address:X4} ({Address}) {label}{state}"); }
public void RemoveLabel(ILabelMap label) { GeometryModel3D model; if (_models.TryGetValue(label.Id, out model)) { _modelGroup.Children.Remove(model); _models.Remove(label.Id); _cropModels.Remove(label.Id); } UpdateView(); }
public ReplHost( ILabelMap labels, CancellationTokenWrapper cancellationToken, // CpuHoldEvent debuggerSyncEvent, IDebuggableCpu cpu, IAddressMap addressMap, IMemoryMappedKeyboard keyboard, IMemoryMappedDisplay memoryMappedDisplay) { Labels = labels; _cancellationToken = cancellationToken; // _debuggerSyncEvent = debuggerSyncEvent; _cpu = (CPU6502)cpu; mem = addressMap; _keyboard = keyboard; _display = memoryMappedDisplay; }
public void Setup() { _cpuDebug = _serviceProvider.GetService <IDebuggableCpu>(); _addressMap = _serviceProvider.GetService <IAddressMap>(); AsyncUtil.RunSync(_addressMap.Initialise); _labels = _serviceProvider.GetService <ILabelMap>(); _labels.Clear(); _logFormatter = _serviceProvider.GetService <ILogFormatter>(); _parser = _serviceProvider.GetService <IParser>(); _logger = (UnitTestLogger <Parser>)_serviceProvider.GetService <ILogger <Parser> >(); _cpuDebug.Breakpoints.Clear(); _cpuHoldEvent = (MockCpuHoldEvent)_serviceProvider.GetService <ICpuHoldEvent>(); _cpuStepEvent = (MockCpuStepEvent)_serviceProvider.GetService <ICpuStepEvent>(); _cpuHoldEvent.Init(); _cpuStepEvent.Init(); _logger.GetOutput(); // Flush any old content }
public void UpdateLabelCrop(ILabelMap label) { GeometryModel3D model; if (!_cropModels.TryGetValue(label.Id, out model)) { model = new GeometryModel3D(); _cropModels.Add(label.Id, model); _modelGroup.Children.Add(model); label.Crop.CropChanged += () => { UpdateCropBox(model, label); }; } UpdateCropBox(model, label); }
public void UpdateLabel(ILabelMap label) { GeometryModel3D model; if (!_models.TryGetValue(label.Id, out model)) { model = new GeometryModel3D(); _models.Add(label.Id, model); _modelGroup.Children.Add(model); UpdateLabelCrop(label); label.LabelPropertiesChanged += () => { InitModelProperties(model, label); GeometryModel3D cropModel; if (_cropModels.TryGetValue(label.Id, out cropModel)) { UpdateCropBox(cropModel, label); } }; } _busyIndicator.IsBusy = true; Task.Factory.StartNew(() => { var geo = BuildModelGeo(label); geo.Freeze(); return(geo); }).ContinueWith( (t) => { this.Dispatcher.Invoke(() => { model.Geometry = t.Result; _busyIndicator.IsBusy = false; UpdateView(); }); }); InitModelProperties(model, label); }
public Parser( IDebuggableCpu cpuDebug, IAddressMap addressMap, ILabelMap labels, ILogFormatter formatter, ICpuHoldEvent debuggerSyncEvent, ICpuStepEvent debuggerStepEvent, ILogger <Parser> logger, IRegisterTracker tracker) { _cpuDebug = cpuDebug; _addressMap = addressMap; _labels = labels; _formatter = formatter; _debuggerSyncEvent = debuggerSyncEvent; _debuggerStepEvent = debuggerStepEvent; _logger = logger; _tracker = tracker; }
public ConsoleDebugger( IEmulatorHost host, IDebuggableCpu cpu, IAddressMap addressMap, ILogFormatter logFormatter, IParser parser, ILabelMap labels, CancellationTokenWrapper cancel, // CpuHoldEvent debuggerSyncEvent, ILogger <ConsoleDebugger> logger) { _host = host; _cpu = cpu; _addressMap = addressMap; _formatter = logFormatter; _parser = parser; _labels = labels; _cancel = cancel; // _debuggerSyncEvent = debuggerSyncEvent; _logger = logger; }
private MeshGeometry3D BuildModelGeo(ILabelMap label) { MeshGeometry3D geo = null; switch (label.ScannerProperties.BuildMethod) { case BuildMethod.RayCasting: geo = BuildMesh(label.GetAll()); break; case BuildMethod.Threshold: case BuildMethod.EdgeTracing: geo = BuildPointCloud(label.GetAll()); break; default: return(null); } return(geo); }
private void LabelMapOnLabelDataChanged(ILabelMap label) { surface.Invalidate(); }
public abstract string Describe(ILabelMap labels);
private void LabelMapUpdated(ILabelMap label) { Invoke(new MethodInvoker(() => _viewPort.UpdateLabel(label))); }
private void LabelMapDeleted(ILabelMap label) { Invoke(new MethodInvoker(() => _viewPort.RemoveLabel(label))); }
public DebugLogFormatter(ILabelMap labels) { _labels = labels; Output = new List <string>(); }
public override string Describe(ILabelMap labels) { var state = Disabled ? " - Disabled" : ""; return($"{Id:D2} Break on {Type}==${Opcode:X2}{state}"); }