示例#1
0
        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);
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
 public void SetParser(ScannerParser parserType)
 {
     OnSetParser?.Invoke(this, parserType);
 }