public void ImportFromKinect() { Document doc = Autodesk.AutoCAD.ApplicationServices. Application.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; // Get some user input for the number of snapshots... PromptIntegerOptions pio = new PromptIntegerOptions("\nNumber of captures"); pio.AllowZero = false; pio.DefaultValue = _numShots; pio.UseDefaultValue = true; pio.UpperLimit = 20; pio.LowerLimit = 1; PromptIntegerResult pir = ed.GetInteger(pio); if (pir.Status != PromptStatus.OK) return; _numShots = pir.Value; // ... and the delay between them PromptDoubleOptions pdo = new PromptDoubleOptions("\nNumber of seconds delay"); pdo.AllowZero = false; pdo.AllowNegative = false; pdo.AllowArbitraryInput = false; pdo.DefaultValue = _delay; pdo.UseDefaultValue = true; PromptDoubleResult pdr = ed.GetDouble(pdo); if (pdr.Status != PromptStatus.OK) return; _delay = pdr.Value; Transaction tr = doc.TransactionManager.StartTransaction(); KinectDelayJig kj = new KinectDelayJig(_numShots, _delay); if (!kj.StartSensor()) { ed.WriteMessage( "\nUnable to start Kinect sensor - " + "are you sure it's plugged in?" ); return; } PromptResult pr = ed.Drag(kj); if (pr.Status == PromptStatus.OK) { kj.StartTimer(); pr = ed.Drag(kj); } kj.StopSensor(); if (pr.Status != PromptStatus.OK && !kj.Finished) { tr.Dispose(); return; } tr.Commit(); // Manually dispose to avoid scoping issues with // other variables tr.Dispose(); kj.WriteAndImportPointCloud(doc, kj.Vectors); }
public void ImportFromKinect() { var doc = Autodesk.AutoCAD.ApplicationServices. Application.DocumentManager.MdiActiveDocument; var ed = doc.Editor; // Get some user input for the number of snapshots... var pio = new PromptIntegerOptions("\nNumber of captures"); pio.AllowZero = false; pio.DefaultValue = _numShots; pio.UseDefaultValue = true; pio.UpperLimit = 20; pio.LowerLimit = 1; var pir = ed.GetInteger(pio); if (pir.Status != PromptStatus.OK) { return; } _numShots = pir.Value; // ... and the delay between them var pdo = new PromptDoubleOptions("\nNumber of seconds delay"); pdo.AllowZero = false; pdo.AllowNegative = false; pdo.AllowArbitraryInput = false; pdo.DefaultValue = _delay; pdo.UseDefaultValue = true; var pdr = ed.GetDouble(pdo); if (pdr.Status != PromptStatus.OK) { return; } _delay = pdr.Value; var tr = doc.TransactionManager.StartTransaction(); var kj = new KinectDelayJig(_numShots, _delay); if (!kj.StartSensor()) { ed.WriteMessage( "\nUnable to start Kinect sensor - " + "are you sure it's plugged in?" ); return; } var pr = ed.Drag(kj); if (pr.Status == PromptStatus.OK) { kj.StartTimer(); pr = ed.Drag(kj); } kj.StopSensor(); if (pr.Status != PromptStatus.OK && !kj.Finished) { tr.Dispose(); return; } tr.Commit(); // Manually dispose to avoid scoping issues with // other variables tr.Dispose(); kj.WriteAndImportPointCloud(doc, kj.Vectors); }