/// <summary> /// performs scan loading on a thread, child method of load scan. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void loadScanThread(Object sender, DoWorkEventArgs e) { // Cast object back into BackgroundWorker BackgroundWorker B = (BackgroundWorker)sender; B.ReportProgress(1, "Background worker running"); String filename = (string)e.Argument; if (filename != null) { B.ReportProgress(0, "Loading file: " + filename); ScanSerializer.deserialize(filename); System.Diagnostics.Debug.WriteLine(e.Argument); B.ReportProgress(8, "Model deserialised"); pcdl = ScanSerializer.depthPc; System.Diagnostics.Debug.WriteLine(pcdl.Count); B.ReportProgress(2, "Model loaded"); } if (pcdl.Count == 0) { throw new PointCloudException("PCDL is empty"); } /*2)*/ //instantiate the stitcher stitcher = new BoundingBox(); B.ReportProgress(1); //jam points into stitcher stitcher.add(pcdl); B.ReportProgress(1); stitcher.stitch(); B.ReportProgress(5); pcd = stitcher.getResult(); pcdl = stitcher.getResultList(); B.ReportProgress(1, "Point Cloud Stitched (with " + pcdl.Count + " components)"); if (pcdl.Count == 0) { throw new PointCloudException("Stitcher returned empty point cloud list"); } // Get the height double height = Math.Round(HeightCalculator.getHeight(pcd), 3); Dispatcher.BeginInvoke((Action)(() => { int progress = 1; })); B.ReportProgress(1); }
static void Main(string[] args) { Console.WriteLine("BestTrackBeamSticher service"); TrackBeamDataReciever.StartListening((trackBeamData) => { TrackWithStitchedBeam trackWithStitchedBeam = Stitcher.stitch(trackBeamData); TrackWithStitchedBeamSender.sendTrackWithStitchedBeam(trackWithStitchedBeam); }); }
/// <summary> /// performs a simple stitch test (deprecated? robin?) /// </summary> /// <param name="sender">the object</param> /// <param name="e">the routed event</param> private void SimpleStitchTest_Click(object sender, RoutedEventArgs e) { List <PointCloud> pc = pcdl; pcd = new PointCloud(); //instantiate the stitcher stitcher = new BoundingBox(); //jam points into stitcher stitcher.add(pc); stitcher.stitch(); pcd = stitcher.getResult(); windowViewer.Close(); windowScanner = new ScanLoader(pcd); windowScanner.Owner = this; windowScanner.Show(); }