private void DoOpenFileButton_ButtonClick()
        {
            AggContext.FileDialogs.OpenFileDialog(
                new OpenFileDialogParams("3D Mesh Files|*.stl;*.amf;*.obj"),
                (openParams) =>
            {
                meshViewerWidget.LoadItemIntoScene(openParams.FileName);
            });

            Invalidate();
        }
        private void DoOpenFileButton_ButtonClick()
        {
            AggContext.FileDialogs.OpenFileDialog(
                new OpenFileDialogParams("3D Mesh Files|*.stl;*.amf;*.obj"),
                async(openParams) =>
            {
                await meshViewerWidget.LoadItemIntoScene(openParams.FileName);
                var children = meshViewerWidget.Scene.Children;
                children[children.Count - 1].Color = Color.FireEngineRed.WithAlpha(100);
            });

            Invalidate();
        }
        public MeshViewerApplication(string meshFileToLoad = "")
            : base(800, 600)
        {
            BackgroundColor = Color.White;
            MinimumSize     = new VectorMath.Vector2(200, 200);
            Title           = "MatterHackers MeshViewr";
            UseOpenGL       = true;

            FlowLayoutWidget mainContainer = new FlowLayoutWidget(FlowDirection.TopToBottom);

            mainContainer.AnchorAll();

            viewArea = new GuiWidget();

            viewArea.AnchorAll();

            Vector3 viewerVolume = new Vector3(200, 200, 200);

            meshViewerWidget = new MeshViewerWidget(viewerVolume, new Vector2(100, 100), BedShape.Rectangular, "No Part Loaded");

            meshViewerWidget.AnchorAll();

            viewArea.AddChild(meshViewerWidget);

            mainContainer.AddChild(viewArea);

            FlowLayoutWidget buttonPanel = new FlowLayoutWidget(FlowDirection.LeftToRight);

            buttonPanel.HAnchor         = HAnchor.Stretch;
            buttonPanel.Padding         = new BorderDouble(3, 3);
            buttonPanel.BackgroundColor = Color.DarkGray;

            if (meshFileToLoad != "")
            {
                meshViewerWidget.LoadItemIntoScene(meshFileToLoad);
            }
            else
            {
                openFileButton        = new Button("Open 3D File", 0, 0);
                openFileButton.Click += openFileButton_ButtonClick;
                buttonPanel.AddChild(openFileButton);
            }

            bedCheckBox         = new CheckBox("Bed");
            bedCheckBox.Checked = true;
            buttonPanel.AddChild(bedCheckBox);

            wireframeCheckBox = new CheckBox("Wireframe");
            buttonPanel.AddChild(wireframeCheckBox);

            GuiWidget leftRightSpacer = new GuiWidget();

            leftRightSpacer.HAnchor = HAnchor.Stretch;
            buttonPanel.AddChild(leftRightSpacer);

            mainContainer.AddChild(buttonPanel);

            this.AddChild(mainContainer);
            this.AnchorAll();

            AddHandlers();
        }