public void Export_SimpleModel_ValidOutput()
        {
            string path = "temp.x3d";

            var runner = new CrossThreadTestRunner();
            runner.RunInSTA(
              delegate
              {
                  Console.WriteLine(Thread.CurrentThread.GetApartmentState());

                  var vp = new Viewport3D();
                  vp.Camera = CameraHelper.CreateDefaultCamera();
                  vp.Width = 1280;
                  vp.Height = 720;
                  vp.Children.Add(new DefaultLightsVisual3D());
                  var box = new BoxVisual3D();
                  box.UpdateModel();
                  vp.Children.Add(box);

                  using (var e = new X3DExporter(path))
                  {
                      e.Export(vp);
                  }
              });

            var result = Validate(path);
            Assert.IsNull(result, result);
        }
        protected void ExportSimpleModel(Exporter e)
        {
            var runner = new CrossThreadTestRunner();
            runner.RunInSTA(
                delegate
                {
                    Console.WriteLine(Thread.CurrentThread.GetApartmentState());

                    var vp = new Viewport3D { Camera = CameraHelper.CreateDefaultCamera(), Width = 1280, Height = 720 };
                    vp.Children.Add(new DefaultLights());
                    var box = new BoxVisual3D();
                    box.UpdateModel();
                    vp.Children.Add(box);

                    e.Export(vp);
                });
        }
 public static void RunInSTA(Action action)
 {
     var r = new CrossThreadTestRunner();
     r.Run(new ThreadStart(action), ApartmentState.STA);
 }
        public static void RunInSTA(Action action)
        {
            var r = new CrossThreadTestRunner();

            r.Run(new ThreadStart(action), ApartmentState.STA);
        }