Exemplo n.º 1
0
        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}");
        }
Exemplo n.º 2
0
        public void Delete(ILabelMap labelMap)
        {
            _syncInvoker.Invoke(() => _labelMaps.Remove(labelMap));
            Current = null;

            LabelMapDeleted?.Invoke(labelMap);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        public void Reset()
        {
            _syncInvoker.Invoke(() => _labelMaps.Clear());

            _current = null;

            LabelMapSetReset?.Invoke();
        }
Exemplo n.º 5
0
        public void Add()
        {
            var label = CreateLabelMap();

            Current = label;

            LabelMapAdded?.Invoke(label);
        }
Exemplo n.º 6
0
        private void InitCropModelProperties(GeometryModel3D model, ILabelMap label)
        {
            Color color = Colors.White;

            color.A = 90;

            model.Material = new DiffuseMaterial(new SolidColorBrush(color));
        }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 8
0
 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;
     }
 }
Exemplo n.º 9
0
        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}");
        }
Exemplo n.º 10
0
        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();
        }
Exemplo n.º 11
0
 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;
 }
Exemplo n.º 12
0
        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
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
 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;
 }
Exemplo n.º 16
0
 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;
 }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
 private void LabelMapOnLabelDataChanged(ILabelMap label)
 {
     surface.Invalidate();
 }
Exemplo n.º 19
0
 public abstract string Describe(ILabelMap labels);
Exemplo n.º 20
0
 private void LabelMapUpdated(ILabelMap label)
 {
     Invoke(new MethodInvoker(() => _viewPort.UpdateLabel(label)));
 }
Exemplo n.º 21
0
 private void LabelMapDeleted(ILabelMap label)
 {
     Invoke(new MethodInvoker(() => _viewPort.RemoveLabel(label)));
 }
Exemplo n.º 22
0
 public DebugLogFormatter(ILabelMap labels)
 {
     _labels = labels;
     Output  = new List <string>();
 }
Exemplo n.º 23
0
        public override string Describe(ILabelMap labels)
        {
            var state = Disabled ? " - Disabled" : "";

            return($"{Id:D2} Break on {Type}==${Opcode:X2}{state}");
        }