Example #1
0
        public void Init(ToolTab tab, Context context)
        {
            this.context = context;
            openFileDialog.InitialDirectory = Directory.GetCurrentDirectory();
            openFileDialog.Filter           = "obj files (*.obj)|*.obj";
            openFileDialog.RestoreDirectory = true;

            Item.AddButton(tab.AddButton(Properties.Resources.Point, true), GeneratePoint, context);
            Item.AddButton(tab.AddButton(Properties.Resources.Cube, true), GenerateCube, context);
            Item.AddButton(tab.AddButton(Properties.Resources.Octahedron, true), GenerateOcta, context);
            Item.AddButton(tab.AddButton(Properties.Resources.Tetrahedron, true), GenerateTetra, context);
            Item.AddButton(tab.AddButton(Properties.Resources.Icosahedron, true), GenerateIcosa, context);
            Item.AddButton(tab.AddButton(Properties.Resources.Dodecahedron, true), GenerateDodeca, context);
            tab.AddButton(Properties.Resources.SplineBezier, false).ButtonClick += (a) => GenerateBezier();
            MultiItem <Spline, Spline> .AddButton(tab.AddButton(Properties.Resources.Spline),
                                                  () => new Spline(),
                                                  (total, partial) => total.Add(partial.points.First()),
                                                  GeneratePoint,
                                                  context
                                                  );

            var load = tab.AddButton(Properties.Resources.Load, true);

            load.ButtonClick += b => ChangeFile();
            Item.AddButton(load, GenerateObj, context);

            Polytope sun = Primitives.Octahedron(1);

            sun.Matreial = new SolidMaterial(Color.Yellow);
            sun.Apply(Matrix.Move(context.world.Sun));
            var lastPos     = context.world.Sun;
            var sunSettings = SunControl.Settings(point =>
            {
                var newPos = point * (context.camera.location.Length() / 3);
                sun.Apply(Matrix.Move(newPos - lastPos));
                lastPos           = newPos;
                context.world.Sun = point;
                context.Redraw();
            });

            tab.Settings.Controls.Add(sunSettings);
            var sunButton = tab.AddButton(Properties.Resources.Sun);

            sunButton.ButtonClick += button =>
            {
                sunSettings.Visible = true;
                context.world.entities.Add(sun);
                context.Redraw();
            };
            sunButton.ButtonDisable += button =>
            {
                sunSettings.Visible = false;
                context.world.entities.Remove(sun);
                context.Redraw();
            };
        }
Example #2
0
        public HelpPage(string guideKey = null)
            : base("Close".Localize())
        {
            WindowSize = new Vector2(940, 700);

            this.guideKey         = guideKey;
            this.WindowTitle      = "MatterControl " + "Help".Localize();
            this.HeaderText       = "How to succeed with MatterControl".Localize();
            this.ChildBorderColor = theme.GetBorderColor(75);

            var tabControl = new SimpleTabs(theme, new GuiWidget())
            {
                HAnchor = HAnchor.Stretch,
                VAnchor = VAnchor.Stretch
            };

            tabControl.TabBar.BackgroundColor = theme.TabBarBackground;

            contentRow.AddChild(tabControl);
            contentRow.Padding = 0;

            // add the mouse commands
            var mouseControls = new FlowLayoutWidget()
            {
                HAnchor = HAnchor.Fit | HAnchor.Center,
                Padding = theme.DefaultContainerPadding
            };

            var mouseTab = new ToolTab("Mouse".Localize(), tabControl, mouseControls, theme, hasClose: false)
            {
                // this can be used to navigate to this tab on construction
                Name = "Mouse Tab"
            };

            tabControl.AddTab(mouseTab);

            var mouseKeys = new FlowLayoutWidget(FlowDirection.TopToBottom);

            mouseControls.AddChild(mouseKeys);

            var mouseActions = new FlowLayoutWidget(FlowDirection.TopToBottom)
            {
                Border      = new BorderDouble(1, 0, 0, 0),
                BorderColor = this.ChildBorderColor
            };

            mouseControls.AddChild(mouseActions);

            var mouseKeyActions = new List <(string key, string action)>(new(string, string)[]
        public void Init(ToolTab tab, Context context)
        {
            this.context = context;
            var cursorButton = tab.AddButton(Properties.Resources.Mouse);

            cursorButton.ButtonClick   += b => cursorActive = true;
            cursorButton.ButtonDisable += b => cursorActive = false;
            var rectButton = tab.AddButton(Properties.Resources.Rectangle);

            rectButton.ButtonClick       += b => rectActive = true;
            rectButton.ButtonDisable     += b => rectActive = false;
            context.pictureBox.MouseDown += MouseDown;
            context.pictureBox.MouseMove += MouseMove;
            context.pictureBox.MouseUp   += MouseUp;

            tab.AddButton(Properties.Resources.SelectAll, false).ButtonClick += b => {
                if (context.world.entities.Count != context.world.selected.Count)
                {
                    context.world.selected.UnionWith(context.world.entities);
                }
                else
                {
                    context.world.selected.Clear();
                }
                context.Redraw();
            };

            tab.AddButton(Properties.Resources.Trash, false).ButtonClick += b => {
                context.world.entities.ExceptWith(context.world.selected);
                context.world.selected.Clear();
                context.Redraw();
            };

            tab.AddButton(Properties.Resources.Save).ButtonClick += b => {
                SaveFileDialog saveFileDialog1 = new SaveFileDialog();

                saveFileDialog1.Filter           = "txt files (*.obj)|*.obj";
                saveFileDialog1.RestoreDirectory = true;

                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    File.WriteAllLines(saveFileDialog1.FileName, Obj.Store(context.world.selected).ToArray());
                }
            };
        }
        public void Init(ToolTab tab, Context context)
        {
            Parser p = new Parser();

            tab.AddButton(Properties.Resources.Graph, false).ButtonClick +=
                b => {
                try
                {
                    context.world.entities.Add(MakeGraph(p.Parse("  ( x   * x + sin   (  y ) * y) / 5.5 "),
                                                         -5, 5, 1, -5, 5, 1));
                    context.Redraw();
                }
                catch (Exception e)
                {
                    MessageBox.Show($"Ошибка парсера: \"{e.Message}\"", "Окошко-всплывашка", MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                }
            };
        }
        private void CreateTab(string id, string iconREsource, string label, UIElement content, TabSettings settings)
        {
            var tabModel = new ToolTabModel(iconREsource, label);
            var tab      = new ToolTab(id, tabModel, content, Tabs, settings);

            Tabs.Items.Add(tab);
            if (settings.IsWindowed == true)
            {
                tab.ToExtraWindow();
            }
            else
            {
                var focusedTab = IsaacDashSerializer.Settings.GeneralSettings.TabWithFocus;
                if (!string.IsNullOrEmpty(focusedTab) && id.Equals(focusedTab))
                {
                    tab.Focus();
                }
            }
        }
Example #6
0
 public void Init(ToolTab tab, Context context)
 {
     this.context = context;
     tab.Settings.Controls.AddRange(new List <(string Name, double DownAngle, double LeftAngle)>
     {
         ("XY", Math.PI / 2, 0),
         ("XZ", 0, Math.PI / 2),
         ("YZ", 0, 0),
         ("Isometric", 0.6154797087, Math.PI + Math.PI / 4),
     }.Select(tuple =>
     {
         var(name, downAngle, leftAngle) = tuple;
         var button = new Button
         {
             Text      = name,
             AutoSize  = true,
             Dock      = DockStyle.Bottom,
             ForeColor = Constants.textColore,
             Font      = Constants.font,
         };
         button.Click += (sender, args) =>
         {
             context.camera.downAngle = downAngle;
             context.camera.leftAngle = leftAngle;
             context.Redraw();
         };
         return((Control)button);
     }).ToArray());
     tab.AddButton(Properties.Resources.Parallel, false).Click +=
         (o, s) =>
     {
         context.camera.interval = 1e10;
         context.Redraw();
     };
     tab.AddButton(Properties.Resources.Projection, false).Click +=
         (o, s) =>
     {
         context.camera.interval = 10;
         context.Redraw();
     };
 }
Example #7
0
        public SurfacedEditorPage(IObject3D selectedItem)
        {
            this.WindowTitle = "MatterControl - " + "Editor Selector".Localize();
            this.HeaderText  = "Surfaced Editor".Localize();

            var tabControl = new SimpleTabs(theme, new GuiWidget())
            {
                HAnchor = HAnchor.Stretch,
                VAnchor = VAnchor.Stretch,
            };

            tabControl.TabBar.BackgroundColor = theme.TabBarBackground;
            tabControl.TabBar.Padding         = 0;

            contentRow.AddChild(tabControl);
            contentRow.Padding = 0;

            var editContainer = new FlowLayoutWidget(FlowDirection.TopToBottom)
            {
                HAnchor         = HAnchor.Stretch,
                VAnchor         = VAnchor.Stretch,
                Padding         = theme.DefaultContainerPadding,
                BackgroundColor = theme.ActiveTabColor
            };

            editWidget = new MHTextEditWidget("", multiLine: true)
            {
                HAnchor = HAnchor.Stretch,
                Name    = this.Name
            };
            editWidget.DrawFromHintedCache();

            editContainer.AddChild(editWidget);

            // add the tree view
            var treeView = new TreeView(theme)
            {
                Margin = new BorderDouble(left: 18),
            };

            treeView.AfterSelect += (s, e) =>
            {
                if (treeView.SelectedNode.Tag is IObject3D contextNode)
                {
                    editWidget.Text = "$." + string.Join(".", contextNode.AncestorsAndSelf().TakeWhile(o => !(o is ComponentObject3D)).Select(o => $"Children<{o.GetType().Name.ToString()}>").Reverse().ToArray());
                }
            };
            treeView.ScrollArea.ChildAdded += (s, e) =>
            {
                if (e is GuiWidgetEventArgs childEventArgs &&
                    childEventArgs.Child is TreeNode treeNode)
                {
                    treeNode.AlwaysExpandable = true;
                }
            };

            treeView.Click += (s, e) =>
            {
                if (treeView.IsDoubleClick(e))
                {
                    Console.WriteLine();
                }
            };

            treeView.ScrollArea.CloseAllChildren();

            var rootNode = Object3DTreeBuilder.BuildTree(selectedItem, theme);

            treeView.AddChild(rootNode);
            rootNode.TreeView = treeView;

            editContainer.AddChild(treeView);
            var dummyWidget = new GuiWidget()
            {
                BackgroundColor = Color.Red
            };

            var editTab = new ToolTab("Edit".Localize(), tabControl, editContainer, theme, hasClose: false)
            {
                Name = "Edit Tab"
            };

            tabControl.AddTab(editTab);

            var previewTab = new ToolTab("Preview".Localize(), tabControl, dummyWidget, theme, hasClose: false)
            {
                Name = "Preview Tab"
            };

            tabControl.AddTab(previewTab);

            tabControl.ActiveTabChanged += (s, e) =>
            {
                if (tabControl.SelectedTabIndex == 1)
                {
                    // dummyWidget.Markdown = editWidget.Text;
                }
            };

            tabControl.SelectedTabIndex = 0;

            var saveButton = theme.CreateDialogButton("Save".Localize());

            saveButton.Click += (s, e) =>
            {
                this.ValueChanged?.Invoke(this, null);

                this.DialogWindow.CloseOnIdle();
            };
            this.AddPageAction(saveButton);
        }
 public void Init(ToolTab tab, Context context)
 {
     gizmo = new Gizmo(context);
     foreach (var(icon, state) in new[]
Example #9
0
        public MarkdownEditPage(UIField uiField)
        {
            this.WindowTitle = "MatterControl - " + "Markdown Edit".Localize();
            this.HeaderText  = "Edit Page".Localize() + ":";

            var tabControl = new SimpleTabs(theme, new GuiWidget())
            {
                HAnchor = HAnchor.Stretch,
                VAnchor = VAnchor.Stretch,
            };

            tabControl.TabBar.BackgroundColor = theme.TabBarBackground;
            tabControl.TabBar.Padding         = 0;

            contentRow.AddChild(tabControl);
            contentRow.Padding = 0;

            var editContainer = new GuiWidget()
            {
                HAnchor         = HAnchor.Stretch,
                VAnchor         = VAnchor.Stretch,
                Padding         = theme.DefaultContainerPadding,
                BackgroundColor = theme.BackgroundColor
            };

            editWidget = new MHTextEditWidget("", theme, multiLine: true, typeFace: ApplicationController.GetTypeFace(NamedTypeFace.Liberation_Mono))
            {
                HAnchor = HAnchor.Stretch,
                VAnchor = VAnchor.Stretch,
                Name    = this.Name
            };
            editWidget.DrawFromHintedCache();
            editWidget.ActualTextEditWidget.VAnchor = VAnchor.Stretch;

            editContainer.AddChild(editWidget);

            markdownWidget = new MarkdownWidget(theme, true)
            {
                HAnchor = HAnchor.Stretch,
                VAnchor = VAnchor.Stretch,
                Margin  = 0,
                Padding = 0,
            };

            var previewTab = new ToolTab("Preview", "Preview".Localize(), tabControl, markdownWidget, theme, hasClose: false)
            {
                Name = "Preview Tab"
            };

            tabControl.AddTab(previewTab);

            var editTab = new ToolTab("Edit", "Edit".Localize(), tabControl, editContainer, theme, hasClose: false)
            {
                Name = "Edit Tab"
            };

            tabControl.AddTab(editTab);

            tabControl.ActiveTabChanged += (s, e) =>
            {
                if (tabControl.SelectedTabIndex == 1)
                {
                    markdownWidget.Markdown = editWidget.Text;
                }
            };

            tabControl.SelectedTabIndex = 0;

            var saveButton = theme.CreateDialogButton("Save".Localize());

            saveButton.Click += (s, e) =>
            {
                uiField.SetValue(
                    editWidget.Text.Replace("\n", "\\n"),
                    userInitiated: true);

                this.DialogWindow.CloseOnIdle();
            };
            this.AddPageAction(saveButton);

            var link = new LinkLabel("Markdown Help", theme)
            {
                Margin  = new BorderDouble(right: 20),
                VAnchor = VAnchor.Center
            };

            link.Click += (s, e) =>
            {
                ApplicationController.Instance.LaunchBrowser("https://guides.github.com/features/mastering-markdown/");
            };
            footerRow.AddChild(link, 0);
        }
Example #10
0
        public void Init(ToolTab tab, Context context)
        {
            Parser p     = new Parser();
            var    panel = new TableLayoutPanel
            {
                ColumnCount     = 2,
                RowCount        = 7,
                Dock            = DockStyle.Top,
                ForeColor       = Constants.borderColore,
                AutoSize        = true,
                CellBorderStyle = TableLayoutPanelCellBorderStyle.Single,
                Font            = new Font("Consalas", 12)
            };

            var funcText = new TextBox {
                Dock = DockStyle.Fill, Text = "(x * x + sin(y) *  y) / 5"
            };

            panel.Controls.AddRange(new Control[] { new Label {
                                                        Text = "Z = "
                                                    }, funcText });
            var XStart = new TextBox {
                Dock = DockStyle.Fill, Text = "-5"
            };

            panel.Controls.AddRange(new Control[] { new Label {
                                                        Text = "X от"
                                                    }, XStart });
            var XEnd = new TextBox {
                Dock = DockStyle.Fill, Text = "5"
            };

            panel.Controls.AddRange(new Control[] { new Label {
                                                        Text = "X до"
                                                    }, XEnd });
            var XStep = new TextBox {
                Dock = DockStyle.Fill, Text = "1"
            };

            panel.Controls.AddRange(new Control[] { new Label {
                                                        Text = "X Шаг"
                                                    }, XStep });
            var YStart = new TextBox {
                Dock = DockStyle.Fill, Text = "-5"
            };

            panel.Controls.AddRange(new Control[] { new Label {
                                                        Text = "Y от"
                                                    }, YStart });
            var YEnd = new TextBox {
                Dock = DockStyle.Fill, Text = "5"
            };

            panel.Controls.AddRange(new Control[] { new Label {
                                                        Text = "Y до"
                                                    }, YEnd });
            var YStep = new TextBox {
                Dock = DockStyle.Fill, Text = "1"
            };

            panel.Controls.AddRange(new Control[] { new Label {
                                                        Text = "Y Шаг"
                                                    }, YStep });
            tab.Settings.Controls.Add(panel);

            tab.AddButton(Properties.Resources.Graph, false).ButtonClick +=
                b =>
            {
                try
                {
                    context.world.entities.Add(MakeGraph(p.Parse(funcText.Text),
                                                         double.Parse(XStart.Text),
                                                         double.Parse(XEnd.Text),
                                                         double.Parse(XStep.Text),
                                                         double.Parse(YStart.Text),
                                                         double.Parse(YEnd.Text),
                                                         double.Parse(YStep.Text)));
                    context.Redraw();
                }
                catch (Exception e)
                {
                    MessageBox.Show($"Ошибка: \"{e.Message}\"", "Окошко-всплывашка", MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                }
            };
        }
Example #11
0
        public void ToolTab_Ctor()
        {
            var actual = new ToolTab();

            Assert.NotNull(actual);
        }
Example #12
0
 private void Connection_ConnectionEstablished(object sender, EventArgs e)
 {
     LoginTab.IsEnabled = false;
     ToolTab.IsEnabled  = true;
     ToolTab.Focus();
 }
Example #13
0
        public void Init(ToolTab tab, Context context)
        {
            this.context = context;

            Parser p          = new Parser();
            var    panelGraph = new Panel
            {
                Dock    = DockStyle.Fill,
                Visible = false
            };
            var panelTable = new TableLayoutPanel
            {
                ColumnCount     = 2,
                RowCount        = 7,
                Dock            = DockStyle.Top,
                ForeColor       = Constants.borderColore,
                AutoSize        = true,
                CellBorderStyle = TableLayoutPanelCellBorderStyle.Single,
                Font            = new Font("Consalas", 12),
                Visible         = false
            };
            var floatinHor = new CheckBox
            {
                Text = "Floating horizon method", ForeColor = Constants.textColore, Font = Constants.font, Dock = DockStyle.Top, AutoSize = true
            };

            var funcText = new TextBox {
                Dock = DockStyle.Fill, Text = "(x * x + sin(y) *  y) / 5"
            };

            panelTable.Controls.AddRange(new Control[] { new Label {
                                                             Text = "Z = "
                                                         }, funcText });
            var XStart = new TextBox {
                Dock = DockStyle.Fill, Text = "-5"
            };

            panelTable.Controls.AddRange(new Control[] { new Label {
                                                             Text = "X от"
                                                         }, XStart });
            var XEnd = new TextBox {
                Dock = DockStyle.Fill, Text = "5"
            };

            panelTable.Controls.AddRange(new Control[] { new Label {
                                                             Text = "X до"
                                                         }, XEnd });
            var XStep = new TextBox {
                Dock = DockStyle.Fill, Text = "0.5"
            };

            panelTable.Controls.AddRange(new Control[] { new Label {
                                                             Text = "X Шаг"
                                                         }, XStep });
            var YStart = new TextBox {
                Dock = DockStyle.Fill, Text = "-5"
            };

            panelTable.Controls.AddRange(new Control[] { new Label {
                                                             Text = "Y от"
                                                         }, YStart });
            var YEnd = new TextBox {
                Dock = DockStyle.Fill, Text = "5"
            };

            panelTable.Controls.AddRange(new Control[] { new Label {
                                                             Text = "Y до"
                                                         }, YEnd });

            var apply = new Button
            {
                Text      = "Apply",
                ForeColor = Constants.textColore,
                Font      = Constants.font,
                Dock      = DockStyle.Bottom,
                AutoSize  = true,
                Visible   = false
            };

            apply.Click += (s, b) =>
            {
                try
                {
                    context.drawing = new FloatingHorizont {
                        node    = p.Parse(funcText.Text),
                        xStart  = double.Parse(XStart.Text),
                        xEnd    = double.Parse(XEnd.Text),
                        xStep   = double.Parse(XStep.Text),
                        yStart  = double.Parse(YStart.Text),
                        yEnd    = double.Parse(YEnd.Text),
                        context = context
                    };
                    context.Redraw();
                }
                catch (Exception e)
                {
                    MessageBox.Show($"Ошибка: \"{e.Message}\"", "Окошко-всплывашка", MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                }
            };

            floatinHor.CheckStateChanged += (sender, args) => { panelTable.Visible = floatinHor.Checked; apply.Visible = floatinHor.Checked; };
            tab.Settings.Controls.Add(panelGraph);
            panelGraph.Controls.Add(panelTable);
            panelGraph.Controls.Add(floatinHor);
            panelGraph.Controls.Add(apply);

            tab.AddButton(Properties.Resources.Skeleton, false).ButtonClick += b =>
            {
                panelGraph.Visible = false;
                context.drawing    = new Skeleton(context, false);
                context.Redraw();
            };

            var skeleton = tab.AddButton(Properties.Resources.Cube, false);

            skeleton.ButtonClick += b =>
            {
                context.drawing = new Skeleton(context, true);
                context.Redraw();
                panelGraph.Visible = true;
                floatinHor.Checked = false;
            };

            var panel = new Panel
            {
                Dock    = DockStyle.Fill,
                Visible = false
            };

            tab.Settings.Controls.Add(panel);

            var textPanel = new TableLayoutPanel
            {
                ColumnCount     = 2,
                RowCount        = 4,
                Dock            = DockStyle.Top,
                ForeColor       = Constants.borderColore,
                AutoSize        = true,
                CellBorderStyle = TableLayoutPanelCellBorderStyle.Single,
                Font            = new Font("Consalas", 12)
            };

            smoothing = new CheckBox
            {
                Text      = "smoothing",
                Dock      = DockStyle.Top,
                ForeColor = Constants.borderColore,
                Font      = new Font("Consalas", 12),
                Checked   = true
            };
            panel.Controls.Add(smoothing);

            ambient = new TextBox {
                Dock = DockStyle.Fill, Text = "10"
            };
            textPanel.Controls.AddRange(new Control[] { new Label {
                                                            Text = "Ambient(%)"
                                                        }, ambient });
            diffuse = new TextBox {
                Dock = DockStyle.Fill, Text = "100"
            };
            textPanel.Controls.AddRange(new Control[] { new Label {
                                                            Text = "Diffuse(%)"
                                                        }, diffuse });
            specular = new TextBox {
                Dock = DockStyle.Fill, Text = "100"
            };
            textPanel.Controls.AddRange(new Control[] { new Label {
                                                            Text = "Specular(%)"
                                                        }, specular });
            power = new TextBox {
                Dock = DockStyle.Fill, Text = "1000"
            };
            textPanel.Controls.AddRange(new Control[] { new Label {
                                                            Text = "Power"
                                                        }, power });
            panel.Controls.Add(textPanel);

            //var changeRender = new Button
            //{
            //    Text = "Apply",
            //    ForeColor = Constants.textColore,
            //    Font = Constants.font,
            //    Dock = DockStyle.Top,
            //    AutoSize = true
            //};

            //panel.Controls.Add(changeRender);
            //changeRender.Click += (s, b) => SetBlinnDrawing();

            var phongButton = tab.AddButton(Properties.Resources.Phong, true);

            phongButton.ButtonClick += b =>
            {
                panel.Visible   = true;
                context.drawing = new ZBuffer(context);
                SetPhongDrawing();
            };

            phongButton.ButtonDisable += b =>
            {
                panel.Visible = false;
            };

            var blinnButton = tab.AddButton(Properties.Resources.Blinn, true);

            blinnButton.ButtonClick += b =>
            {
                panel.Visible   = true;
                context.drawing = new ZBuffer(context);
                SetBlinnDrawing();
            };

            blinnButton.ButtonDisable += b =>
            {
                panel.Visible = false;
            };

            var wardButton = tab.AddButton(Properties.Resources.Ward, true);

            wardButton.ButtonClick += b =>
            {
                panel.Visible   = true;
                context.drawing = new ZBuffer(context);
                SetWardDrawing();
            };

            wardButton.ButtonDisable += b =>
            {
                panel.Visible = false;
            };

            var orenNayarButton = tab.AddButton(Properties.Resources.OrenNayar, true);

            orenNayarButton.ButtonClick += b =>
            {
                panel.Visible   = true;
                context.drawing = new ZBuffer(context);
                SetOrenNayarDrawing();
            };

            orenNayarButton.ButtonDisable += b =>
            {
                panel.Visible = false;
            };

            var cookTorranceButton = tab.AddButton(Properties.Resources.CookTorrance, true);

            cookTorranceButton.ButtonClick += b =>
            {
                panelGraph.Visible = false;
                floatinHor.Checked = false;
                panel.Visible      = true;
                context.drawing    = new ZBuffer(context);
                SetCookTorranceDrawing();
            };

            cookTorranceButton.ButtonDisable += b =>
            {
                panel.Visible = false;
            };
        }
 public void Init(ToolTab tab, Context context)
 {
 }