private ResultParser PortableToNativeParser(ScannerParser parser) { switch (parser) { default: case ScannerParser.NONE: return(ResultParser.None); case ScannerParser.AUTO: return(ResultParser.Auto); case ScannerParser.AAMVA: return(ResultParser.Aamva); case ScannerParser.GS1: return(ResultParser.Gs1); case ScannerParser.HIBC: return(ResultParser.Hibc); case ScannerParser.ISBT128: return(ResultParser.Isbt128); case ScannerParser.IUID: return(ResultParser.Iuid); case ScannerParser.SCM: return(ResultParser.Scm); } }
static float Second(string inputFile) { var scanners = new ScannerParser().ParseFile(inputFile); CalculateScannerPositions(scanners); var maxDistance = 0F; for (int i = 0; i < scanners.Count; i++) { for (int j = i + 1; j < scanners.Count; j++) { var d = (scanners[i].OriginOffset - scanners[j].OriginOffset); var distance = Math.Abs(d.X) + Math.Abs(d.Y) + Math.Abs(d.Z); maxDistance = distance > maxDistance ? distance : maxDistance; } } return(maxDistance); }
static long First(string inputFile) { var scanners = new ScannerParser().ParseFile(inputFile); CalculateScannerPositions(scanners); var beacons = new HashSet <Vector3>(); foreach (var scanner in scanners) { var points = scanner.Value.Points.Select(point => Vector3.Transform(point, scanner.Value.TransformationFromOrigin)); //get point in reference frame from scanner 0 points = points.Select(point => Vector3.Add(point, scanner.Value.OriginOffset)); //add the offset of the local origin from the origin from scanner 0 foreach (var point in points) { if (!beacons.Contains(point)) { beacons.Add(point); } } } return(beacons.Count); }
public void SetParser(ScannerParser parserType) { OnSetParser?.Invoke(this, parserType); }