public void ImportFromKinect()
        {
            var doc =
                Autodesk.AutoCAD.ApplicationServices.
                Application.DocumentManager.MdiActiveDocument;
            var ed = doc.Editor;

            var pdo = new PromptDoubleOptions("\nEnter profile radius");

            pdo.AllowZero       = false;
            pdo.AllowNegative   = false;
            pdo.AllowNone       = false;
            pdo.DefaultValue    = 0.05;
            pdo.UseDefaultValue = true;
            var pdr = ed.GetDouble(pdo);

            if (pdr.Status != PromptStatus.OK)
            {
                return;
            }

            using (var tr = doc.TransactionManager.StartTransaction())
            {
                var kj = new KinectSolidsJig(doc, tr, pdr.Value);

                kj.InitializeSpeech();

                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.Finished)
                {
                    kj.StopSensor();
                    kj.Cleanup();
                    return;
                }

                // Generate a final point cloud with color before stopping
                // the sensor

                kj.UpdatePointCloud();
                kj.StopSensor();

                kj.AddSolidOrPath();
                tr.Commit();

                kj.WriteAndImportPointCloud(doc, kj.Vectors);
            }
        }
    public void ImportFromKinect()
    {
      Document doc =
        Autodesk.AutoCAD.ApplicationServices.
          Application.DocumentManager.MdiActiveDocument;
      Editor ed = doc.Editor;

      PromptDoubleOptions pdo =
        new PromptDoubleOptions("\nEnter profile radius");
      pdo.AllowZero = false;
      pdo.AllowNegative = false;
      pdo.AllowNone = false;
      pdo.DefaultValue = 0.05;
      pdo.UseDefaultValue = true;
      PromptDoubleResult pdr = ed.GetDouble(pdo);

      if (pdr.Status != PromptStatus.OK)
        return;

      Transaction tr =
        doc.TransactionManager.StartTransaction();

      KinectSolidsJig kj = new KinectSolidsJig(doc, tr, pdr.Value);

      kj.InitializeSpeech();

      if (!kj.StartSensor())
      {
        ed.WriteMessage(
          "\nUnable to start Kinect sensor - " +
          "are you sure it's plugged in?"
        );
        tr.Dispose();
        return;
      }

      PromptResult pr = ed.Drag(kj);

      if (pr.Status != PromptStatus.OK && !kj.Finished)
      {
        kj.StopSensor();
        kj.Cleanup();
        tr.Dispose();
        return;
      }

      // Generate a final point cloud with color before stopping
      // the sensor

      kj.UpdatePointCloud();
      kj.StopSensor();

      kj.AddSolidOrPath();
      tr.Commit();

      // Manually dispose to avoid scoping issues with
      // other variables

      tr.Dispose();

      kj.WriteAndImportPointCloud(doc, kj.Vectors);
    }