コード例 #1
0
        public bool SendingInformationAboutObjects(int num)        //игра
        {
            try
            {
                GetNumber gNumber = new GetNumber();
                gNumber.num = model.number;
                GetBushesInfo bushesInfo = new GetBushesInfo();
                bushesInfo.listBush = model.Map.ListBush;
                GetMapBordersInfo bordersInfo = new GetMapBordersInfo();
                bordersInfo.rectangle = model.Map.MapBorders;
                GetBoxesInfo boxesInfo = new GetBoxesInfo();
                boxesInfo.listBox = model.Map.ListBox;
                GetInfoItems itemsInfo = new GetInfoItems();
                itemsInfo.listItems = model.Map.ListItems;
                GetTreesInfo treesInfo = new GetTreesInfo();
                treesInfo.listTree = model.Map.ListTrees;

                CTransfers.Writing(gNumber, model.ListNs[num]);
                Thread.Sleep(100);
                CTransfers.Writing(bushesInfo, model.ListNs[num]);                // Отправка инфы о кустах
                Thread.Sleep(100);
                CTransfers.Writing(bordersInfo, model.ListNs[num]);               //Инфа о границах карты
                Thread.Sleep(100);
                CTransfers.Writing(boxesInfo, model.ListNs[num]);                 // Отправка инфы о коробках
                Thread.Sleep(100);
                CTransfers.Writing(treesInfo, model.ListNs[num]);                 // Отправка инфы о деревьях
                Thread.Sleep(100);
                CTransfers.Writing(itemsInfo, model.ListNs[num]);                 // Отправка инфы о вещах
                return(true);
            }
            catch (Exception) { return(false); }
        }
コード例 #2
0
        private void showContours_menu_Click(object sender, RoutedEventArgs e)
        {
            var getNumber = new GetNumber("Set Contours",
                                          "Enter the number of contour levels.\n\tN >= 1", this._contourCount);

            getNumber.Owner = this;
            getNumber.ShowDialog();
            this._contourCount = (int)getNumber.NumberValue;
            getNumber          = null;
            while (this._contourCount < 2)
            {
                var getNumber_ = new GetNumber("Set Contours",
                                               "Enter the number of contour levels.\n\tN >= 1", this._contourCount);
                getNumber_.Owner = this;
                getNumber_.ShowDialog();
                this._contourCount = (int)getNumber_.NumberValue;
                getNumber_         = null;
            }
            if (this.dataMesh == null)
            {
                MessageBox.Show("Data is not loaded!");
                return;
            }
            foreach (object item in this.geometryType_Menu.Items)
            {
                ((MenuItem)item).IsChecked = false;
            }
            ((MenuItem)sender).IsChecked = true;
            this._geomType = GeometryType.Contour;
            this.geomThickness_menu.IsEnabled  = true;
            this.geomBbrush_menu.IsEnabled     = true;
            this.geomTextureRes_menu.IsEnabled = true;
            this.UpdateMaterial();
        }
コード例 #3
0
        void _setTrailThickness_Click(object sender, RoutedEventArgs e)
        {
            GetNumber gn = new GetNumber("Set Trail Thickness",
                                         "The visual effect does not influence the training process", this._thickness);

            gn.Owner = this._host;
            gn.ShowDialog();
            if (gn.NumberValue != this._stateScleFactor)
            {
                this._thickness = gn.NumberValue;
                if (this._walkingTrailRepresentation != null)
                {
                    this._walkingTrailRepresentation.StrokeThickness = this._thickness;
                }
                if (this._statesRepresentation != null)
                {
                    this._statesRepresentation.StrokeThickness = this._thickness / 2;
                }
                if (this._polyline != null)
                {
                    this._polyline.StrokeThickness = this._thickness;
                }
                foreach (var item in this.Children)
                {
                    Type type = item.GetType();
                    if (type == typeof(Line))
                    {
                        ((Line)item).StrokeThickness = this._thickness / 5;
                    }
                }
            }
        }
コード例 #4
0
        public static void Initialise()
        {
            // try catch to be seted
            int number = 0;

            number = GetNumber.GetN();

            //object contains symbols and arrays for structure
            Storage figures = new Storage(number);

            FirstEngine.FirstModule(number, figures.Star, figures.Minus, figures.GetFigures());

            SecondEngine.SecondModule(number, figures.Star, figures.Minus, figures.GetFigures());

            // thirdModule is reversed second one:
            SecondEngine.SecondModule(number, figures.Star, figures.Minus, figures.GetTemp());

            ReverseArray.ReverseArrayEng(figures.GetFigures(), figures.GetTemp());

            //fourthModule is the second one reusing code:
            SecondEngine.SecondModule(number, figures.Star, figures.Minus, figures.GetFigures());

            //fifthModule is the first one reversed reusing code:
            FirstEngine.FirstModule(number, figures.Minus, figures.Star, figures.GetTemp());

            ReverseArray.ReverseArrayEng(figures.GetFigures(), figures.GetTemp());

            Display.Print(ConvertToString.ConvertStr(figures.GetFigures()));
        }
コード例 #5
0
        private void Set_stepFactor_menu_Click(object sender, RoutedEventArgs e)
        {
            GetNumber getNumber = new GetNumber("Gradient Step Size Factor",
                                                "Gradients will be multiplied with this factor to descent.", this.maximum_gradient_stepSize);

            getNumber.Owner         = this._host;
            getNumber.ShowInTaskbar = false;
            getNumber.ShowDialog();
            double number = getNumber.NumberValue;

            if (number < 0.01)
            {
                MessageBox.Show("The new factor should be larger than 0.01");
            }
            else if (number > this._host.cellularFloor.CellSize)
            {
                MessageBox.Show("The new factor should be smaller than cell size: " + this._host.cellularFloor.CellSize.ToString("0.0000"));
            }
            else
            {
                if (number != this.maximum_gradient_stepSize)
                {
                    this.maximum_gradient_stepSize = number;
                }
            }
        }
コード例 #6
0
        private void PNGExport_Click(object sender, RoutedEventArgs e)
        {
            double    dpi           = 96;
            GetNumber getResolution = new GetNumber("Set Resolution", "The resolution will be applied on the exported PNG image", dpi);

            getResolution.Owner = this;
            getResolution.ShowDialog();
            dpi = getResolution.NumberValue;

            Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
            dlg.Title      = "Save the Scene to PNG Image format";
            dlg.DefaultExt = ".png";
            dlg.Filter     = "PNG documents (.png)|*.png";
            if (this._selectedData != null && this._selectedData.SelectedSpatialData != null)
            {
                dlg.FileName = string.Format("Type '{0}' -- Name '{1}' (Vertical scaling factor {2})",
                                             this._selectedData.SelectedSpatialData.Type.ToString(), this._selectedData.SelectedSpatialData.Name, this.scaledZ.Text);
            }

            Nullable <bool> result      = dlg.ShowDialog(this);
            string          fileAddress = "";

            if (result == true)
            {
                fileAddress = dlg.FileName;
            }
            else
            {
                return;
            }

            Rect bounds = new Rect(this.Visualizer3D.RenderSize);
            RenderTargetBitmap main_rtb     = new RenderTargetBitmap((int)(bounds.Width * dpi / 96), (int)(bounds.Height * dpi / 96), dpi, dpi, System.Windows.Media.PixelFormats.Default);
            DrawingVisual      dvFloorScene = new DrawingVisual();

            using (DrawingContext dc = dvFloorScene.RenderOpen())
            {
                VisualBrush vb = new VisualBrush(this.Visualizer3D);
                dc.DrawRectangle(vb, null, bounds);
            }
            main_rtb.Render(dvFloorScene);
            BitmapEncoder pngEncoder = new PngBitmapEncoder();

            pngEncoder.Frames.Add(BitmapFrame.Create(main_rtb));
            try
            {
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                {
                    pngEncoder.Save(ms);
                    ms.Close();
                    System.IO.File.WriteAllBytes(fileAddress, ms.ToArray());
                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.ToString(), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
コード例 #7
0
    // Start is called before the first frame update
    void Start()
    {
        losePlayer = 0;
        winFlag    = false;

        getPlayerObject = GameObject.Find("GetPlayer");
        getNumberScript = getPlayerObject.GetComponent <GetNumber>();
        playerNumber    = getNumberScript.Number;
    }
コード例 #8
0
ファイル: Program.cs プロジェクト: intel0620/Func_Test
        static void Main(string[] args)
        {
            FuncDelegate func      = new FuncDelegate();
            GetNumber    getNumber = new GetNumber();

            //這邊我們動態決定了要使用乘法,傳進去4*5
            Console.WriteLine(getNumber.ReturnString(func.Multiplied, 4, 5));
            Console.ReadLine();
        }
コード例 #9
0
        private void centerSize_Menu_Click(object sender, RoutedEventArgs e)
        {
            GetNumber gn = new GetNumber("Enter New Center Size", "New square size will be applied to the edges of Isovists", this.centerSize);

            gn.Owner = this._host;
            gn.ShowDialog();
            this.centerSize = gn.NumberValue;
            gn = null;
        }
コード例 #10
0
        private void importModel_Click(object sender, RoutedEventArgs e)
        {
            string name = (string)this.importModel.Header;

            if (name == "Import Model Geometry")
            {
                try
                {
                    this.AllModels.Children.Remove(this.groundModel);
                    GetNumber getNumber = new GetNumber("Field Offset Value",
                                                        "Enter a number to expand the territory of the walkable field to include more model geometries", UnitConversion.Convert(1, Length_Unit_Types.FEET, this._host.BIM_To_OSM.UnitType, 6));
                    getNumber.Owner = this;
                    getNumber.ShowDialog();
                    double offset = getNumber.NumberValue;
                    getNumber            = null;
                    this.modelGeometries = new List <GeometryModel3D>();
                    foreach (GeometryModel3D item in this._host.BIM_To_OSM.GetSlicedMeshGeometries(this._host.cellularFloor.Territory_Min, this._host.cellularFloor.Territory_Max, offset))
                    {
                        this.modelGeometries.Add(item);
                    }

                    foreach (var item in this.modelGeometries)
                    {
                        this.AllModels.Children.Add(item);
                    }
                    this.importModel.Header = "Clear Model Geometry";
                    this.setModelGeometryBrush.IsEnabled = true;
                }
                catch (Exception error)
                {
                    MessageBox.Show(error.Message);
                }
            }
            else
            {
                try
                {
                    this.AllModels.Children.Add(this.groundModel);
                    if (this.modelGeometries != null)
                    {
                        foreach (GeometryModel3D item in this.modelGeometries)
                        {
                            this.AllModels.Children.Remove(item);
                        }
                    }
                    this.modelGeometries.Clear();
                    this.modelGeometries    = null;
                    this.importModel.Header = "Import Model Geometry";
                    this.setModelGeometryBrush.IsEnabled = false;
                }
                catch (Exception error)
                {
                    MessageBox.Show(error.Message);
                }
            }
        }
コード例 #11
0
        void boarderThickness_Menu_Click(object sender, RoutedEventArgs e)
        {
            GetNumber gn = new GetNumber("Enter New Thickness Value", "New thickness value will be applied to the paths", this.pathThickness);

            gn.Owner = this._host;
            gn.ShowDialog();
            this.pathThickness = gn.NumberValue;
            this.reDraw();                          /*Do not change the thickness of the previous pathes*/
            gn = null;
        }
コード例 #12
0
        private void geomThickness_Click(object sender, RoutedEventArgs e)
        {
            GetNumber gn = new GetNumber("Enter New Thickness Value", "New thickness value will be applied to the grid", this.geomThickness);

            gn.Owner = this;
            gn.ShowDialog();
            this.geomThickness = gn.NumberValue;
            UpdateMaterial();
            gn = null;
        }
コード例 #13
0
        public void GetBiggestBrotherNumber_WhenValidNumberIsInsert_ShouldReturnBiggestCombination()
        {
            string number = "355";

            string expectedResult = "553";

            string result = GetNumber.getBiggestBrotherNumber(number);

            Assert.AreEqual(expectedResult, result);
        }
コード例 #14
0
        private void boarderThickness_Menu_Click(object sender, RoutedEventArgs e)
        {
            GetNumber gn = new GetNumber("Enter New Thickness Value", "New thickness value will be applied to the edges of barriers", this.boarderThickness);

            gn.Owner = this._host;
            gn.ShowDialog();
            this.boarderThickness = gn.NumberValue;
            this.draw();
            gn = null;
        }
コード例 #15
0
        private void SaveVisible_Click(object sender, RoutedEventArgs e)
        {
            GetNumber getNumber0 = new GetNumber("Set Image Resolution",
                                                 "The Scene will be exported in PGN format. Setting a high resolution value may crash this app.", this.dpi);

            getNumber0.Owner = this;
            getNumber0.ShowDialog();
            this.dpi   = getNumber0.NumberValue;
            getNumber0 = null;
            this.scrollViewer.Background = null;
            Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
            dlg.Title      = "Save the Scene to PNG Image format";
            dlg.DefaultExt = ".png";
            dlg.Filter     = "PNG documents (.png)|*.png";
            Nullable <bool> result      = dlg.ShowDialog(this);
            string          fileAddress = "";

            if (result == true)
            {
                fileAddress = dlg.FileName;
            }
            else
            {
                return;
            }

            Rect bounds = VisualTreeHelper.GetDescendantBounds(this.scrollViewer);
            RenderTargetBitmap main_rtb     = new RenderTargetBitmap((int)(bounds.Width * dpi / 96), (int)(bounds.Height * dpi / 96), dpi, dpi, System.Windows.Media.PixelFormats.Default);
            DrawingVisual      dvFloorScene = new DrawingVisual();

            using (DrawingContext dc = dvFloorScene.RenderOpen())
            {
                VisualBrush vb = new VisualBrush(this.scrollViewer);
                dc.DrawRectangle(vb, null, bounds);
            }
            main_rtb.Render(dvFloorScene);
            BitmapEncoder pngEncoder = new PngBitmapEncoder();

            pngEncoder.Frames.Add(BitmapFrame.Create(main_rtb));
            try
            {
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                {
                    pngEncoder.Save(ms);
                    ms.Close();
                    System.IO.File.WriteAllBytes(fileAddress, ms.ToArray());
                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Report(), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
コード例 #16
0
        public override double EnterDouble(string prompt = "Enter value", double defaultValue = 0)
        {
            GetNumber gN = new GetNumber();

            gN.SetCommandPrompt(prompt);
            gN.SetDefaultNumber(defaultValue);
            if (gN.Get() == GetResult.Cancel)
            {
                throw new OperationCanceledException("Operation cancelled by user");
            }
            return(gN.Number());
        }
コード例 #17
0
        private void scale_Menu_Click(object sender, RoutedEventArgs e)
        {
            GetNumber gn = new GetNumber("Enter New Thickness Value", "New scaling factor will be applied to the size of visualized gradient field", GradientActivityVisualHost.ScalingFactor);

            gn.Owner = this._host;
            gn.ShowDialog();
            GradientActivityVisualHost.ScalingFactor = gn.NumberValue;
            gn = null;
            if (this._children.Count != 0)
            {
                this.draw();
            }
        }
コード例 #18
0
        private void thickness_Menu_Click(object sender, RoutedEventArgs e)
        {
            GetNumber gn = new GetNumber("Enter New Thickness Value", "New thickness value will be applied to the gradients", GradientActivityVisualHost.Thickness);

            gn.Owner = this._host;
            gn.ShowDialog();
            GradientActivityVisualHost.Thickness = gn.NumberValue;
            gn = null;
            if (this._children.Count != 0)
            {
                this.draw();
            }
        }
コード例 #19
0
        void _stateVectorSizeMenu_Click(object sender, RoutedEventArgs e)
        {
            GetNumber gn = new GetNumber("Set State Vector Size",
                                         "The visual size of the vectors does not influence the training process", this._stateScleFactor);

            gn.Owner = this._host;
            gn.ShowDialog();
            if (gn.NumberValue != this._stateScleFactor)
            {
                this._stateScleFactor = gn.NumberValue;
                this.updateViualStates();
            }
        }
コード例 #20
0
        private void geomTextureRes_Click(object sender, RoutedEventArgs e)
        {
            GetNumber gn = new GetNumber("Set Texture Resolution",
                                         "The new values will be applied to the texture resolution", this.textureDPI);

            gn.Owner = this;
            gn.ShowDialog();
            if (this.textureDPI != gn.NumberValue)
            {
                this.textureDPI = gn.NumberValue;
                this.UpdateMaterial();
            }
            gn = null;
        }
コード例 #21
0
ファイル: Program.cs プロジェクト: Jerry809/MyStudyCourse
        static void Main(string[] args)
        {
            // No delegate
            GetNumber getNumber = new GetNumber(new CaculatePlus(6, 3));

            Console.WriteLine(getNumber.ReturnString());

            //funcDelegate
            var func = new FuncDelegate();
            var getNumberDelegate = new GetNumberByDelegate();

            Console.WriteLine(getNumberDelegate.ReturnString(func.Plus, 5, 3));

            Console.ReadLine();
        }
        protected override Result RunCommand(RhinoDoc doc, RunMode mode)
        {
            Random r     = new Random(13);
            var    plcnt = 1000000;
            var    edge  = 10;

            GetNumber gn = new GetNumber();

            gn.SetCommandPrompt("How many pointsies");
            gn.SetDefaultInteger(plcnt);
            gn.SetUpperLimit(500000001, true);
            gn.SetLowerLimit(1, true);
            gn.AcceptNothing(true);

            var gnrc = gn.Get();

            if (gnrc == GetResult.Nothing || gnrc == GetResult.Number)
            {
                var nr = (int)gn.Number();
                if (nr > 500000000)
                {
                    RhinoApp.WriteLine("More than 500.000.000 points");
                    return(Result.Cancel);
                }
                pc = new PointCloud();
                Point3dList p3dlist = new Point3dList(nr);
                List <System.Drawing.Color> collist = new List <System.Drawing.Color>(nr);
                for (int i = 0; i < nr; i++)
                {
                    var d = (double)i;
                    p3dlist.Add(new Point3d(r.NextDouble() * edge, r.NextDouble() * edge, r.NextDouble() * edge));
                    collist.Add(System.Drawing.Color.FromArgb(r.Next(0, 255), r.Next(0, 255), r.Next(0, 255)));
                }
                pc.AddRange(p3dlist, collist);
                cnd.ThePc   = pc;
                cnd.Enabled = true;
            }

            doc.Views.Redraw();


            return(Result.Success);
        }
コード例 #23
0
    // Start is called before the first frame update
    void Start()
    {
        getPlayerObject = GameObject.Find("GetPlayer");
        getNumberScript = getPlayerObject.GetComponent <GetNumber>();
        playerNumber    = getNumberScript.Number;
        Debug.Log(playerNumber);
        Destroy(getPlayerObject);

        if (playerNumber < 4)
        {
            getNumber[3].SetActive(false);

            if (playerNumber < 3)
            {
                getNumber[2].SetActive(false);

                playerCamera[0].rect = new Rect(0.0f, 0.0f, 0.5f, 1.0f);
                playerCamera[1].rect = new Rect(0.5f, 0.0f, 0.5f, 1.0f);

                goalRectTransform[0].localPosition = new Vector3(-250.0f, 0.0f, 0.0f);
                goalRectTransform[1].localPosition = new Vector3(250.0f, 0.0f, 0.0f);

                ItemRectTransform[0].localPosition = new Vector3(-250.0f, 0.0f, 0.0f);
                ItemRectTransform[1].localPosition = new Vector3(250.0f, 0.0f, 0.0f);
            }
            else if (playerNumber == 3)
            {
                playerCamera[0].rect = new Rect(0.0f, 0.0f, 0.333f, 1.0f);
                playerCamera[1].rect = new Rect(0.333f, 0.0f, 0.333f, 1.0f);
                playerCamera[2].rect = new Rect(0.666f, 0.0f, 0.334f, 1.0f);

                goalRectTransform[0].localPosition = new Vector3(-312.5f, 0.0f, 0.0f);
                goalRectTransform[1].localPosition = new Vector3(0.0f, 0.0f, 0.0f);
                goalRectTransform[2].localPosition = new Vector3(312.5f, 0.0f, 0.0f);

                ItemRectTransform[0].localPosition = new Vector3(-312.5f, 0.0f, 0.0f);
                ItemRectTransform[1].localPosition = new Vector3(0.0f, 0.0f, 0.0f);
                ItemRectTransform[2].localPosition = new Vector3(312.5f, 0.0f, 0.0f);
            }
        }
    }
コード例 #24
0
        private void Set_iterations_menu_Click(object sender, RoutedEventArgs e)
        {
            GetNumber getNumber = new GetNumber("Set Maximum Descent Iterations",
                                                "Descending process will terminate after this number of iterations.", this.maximum_gradient_descent_iterations);

            getNumber.Owner         = this._host;
            getNumber.ShowInTaskbar = false;
            getNumber.ShowDialog();
            int number = (int)getNumber.NumberValue;

            if (number < 100)
            {
                MessageBox.Show("Iterations should be larger than 100");
            }
            else
            {
                if (number != this.maximum_gradient_descent_iterations)
                {
                    this.maximum_gradient_descent_iterations = number;
                }
            }
        }
コード例 #25
0
        protected override Result RunCommand(RhinoDoc doc, RunMode mode)
        {
            var getNumber = new GetNumber();

            getNumber.SetDefaultNumber(RcCore.It.EngineSettings.BumpDistance);
            getNumber.SetCommandPrompt($"Set bump distance");
            var getRc = getNumber.Get();

            if (getNumber.CommandResult() != Result.Success)
            {
                return(getNumber.CommandResult());
            }
            if (getRc == GetResult.Number)
            {
                var nr = getNumber.Number();
                RhinoApp.WriteLine($"User wants bump distance {nr}");
                RcCore.It.EngineSettings.BumpDistance = (float)nr;
                return(Result.Success);
            }

            return(Result.Nothing);
        }
コード例 #26
0
    // Start is called before the first frame update
    void Start()
    {
        getPlayerObject = GameObject.Find("GetPlayer");
        getNumberScript = getPlayerObject.GetComponent <GetNumber>();
        playerNumber    = getNumberScript.Number;
        Destroy(getPlayerObject);


        if (playerNumber == 4)
        {
            getNumber[0].SetActive(true);
            getNumber[1].SetActive(true);
            getNumber[2].SetActive(true);
            getNumber[3].SetActive(true);
        }
        else if (playerNumber == 3)
        {
            getNumber[0].SetActive(true);
            getNumber[1].SetActive(true);
            getNumber[2].SetActive(true);
            getNumber[3].SetActive(false);
        }
        else if (playerNumber == 2)
        {
            getNumber[0].SetActive(true);
            getNumber[1].SetActive(true);
            getNumber[2].SetActive(false);
            getNumber[3].SetActive(false);
        }
        else if (playerNumber == 1)
        {
            getNumber[0].SetActive(true);
            getNumber[1].SetActive(false);
            getNumber[2].SetActive(false);
            getNumber[3].SetActive(false);
        }
    }
コード例 #27
0
 // Start is called before the first frame update
 void Start()
 {
     getPlayerObject = GameObject.Find("GetPlayer");
     getNumberScript = getPlayerObject.GetComponent <GetNumber>();
     playerNumber    = getNumberScript.Number;
 }
コード例 #28
0
        /// <summary>
        /// Gets the hunted animal highest.
        /// </summary>
        /// <param name="huntedAnimals">The hunted animals.</param>
        /// <param name="getNumber">The get number.</param>
        /// <returns></returns>
        private ObservableCollection <HuntedAnimal> GetHuntedAnimalHighest(HuntedAnimal[] huntedAnimals, GetNumber getNumber)
        {
            ObservableCollection <HuntedAnimal> HuntedAnimal = new ObservableCollection <HuntedAnimal>();
            int HighestNumber = 0;

            foreach (HuntedAnimal huntedAnimal in huntedAnimals)
            {
                int Number = getNumber(huntedAnimal);
                if (Number > HighestNumber)
                {
                    HuntedAnimal.Clear();
                    HighestNumber = Number;
                    HuntedAnimal.Add(huntedAnimal);
                }
                else if (Number == HighestNumber)
                {
                    HuntedAnimal.Add(huntedAnimal);
                }
            }

            return(HuntedAnimal);
        }
コード例 #29
0
        protected override Result RunCommand(RhinoDoc doc, RunMode mode)
        {
            var getNumber = new GetNumber();

            getNumber.SetLowerLimit(2.0, false);
            getNumber.SetUpperLimit(uint.MaxValue, false);
            getNumber.SetDefaultInteger(RcCore.It.EngineSettings.Samples);
            getNumber.SetCommandPrompt("Set render samples");

            var showMaxPasses = new OptionToggle(RcCore.It.EngineSettings.ShowMaxPasses, "HideMaxPasses", "ShowMaxPasses");

            var maxBounce = new OptionInteger(RcCore.It.EngineSettings.MaxBounce, 0, 500);
            var tileX     = new OptionInteger(RcCore.It.EngineSettings.TileX, 0, 10000);
            var tileY     = new OptionInteger(RcCore.It.EngineSettings.TileY, 0, 10000);


            var maxDiffuseBounce      = new OptionInteger(RcCore.It.EngineSettings.MaxDiffuseBounce, 0, 200);
            var maxGlossyBounce       = new OptionInteger(RcCore.It.EngineSettings.MaxGlossyBounce, 0, 200);
            var maxTransmissionBounce = new OptionInteger(RcCore.It.EngineSettings.MaxTransmissionBounce, 0, 200);
            var maxVolumeBounce       = new OptionInteger(RcCore.It.EngineSettings.MaxVolumeBounce, 0, 200);

            var noCaustics = new OptionToggle(RcCore.It.EngineSettings.NoCaustics, "Caustics", "NoCaustics");

            var aaSamples     = new OptionInteger(RcCore.It.EngineSettings.AaSamples, 1, 100);
            var diffSamples   = new OptionInteger(RcCore.It.EngineSettings.DiffuseSamples, 1, 100);
            var glossySamples = new OptionInteger(RcCore.It.EngineSettings.GlossySamples, 1, 100);

            var seed = new OptionInteger(RcCore.It.EngineSettings.Seed, 0, int.MaxValue);

            var sensorWidth  = new OptionDouble(RcCore.It.EngineSettings.SensorWidth, 10.0, 100.0);
            var sensorHeight = new OptionDouble(RcCore.It.EngineSettings.SensorHeight, 10.0, 100.0);

            var transparentMaxBounce = new OptionInteger(RcCore.It.EngineSettings.TransparentMaxBounce, 0, 200);

            var filterGlossy            = new OptionDouble(RcCore.It.EngineSettings.FilterGlossy, 0.0, 100.0);
            var sampleClampDirect       = new OptionDouble(RcCore.It.EngineSettings.SampleClampDirect, 0.0, 100.0);
            var sampleClampIndirect     = new OptionDouble(RcCore.It.EngineSettings.SampleClampIndirect, 0.0, 100.0);
            var lightSamplingThreshold  = new OptionDouble(RcCore.It.EngineSettings.LightSamplingThreshold, 0.0, 1.0);
            var sampleAllLights         = new OptionToggle(RcCore.It.EngineSettings.SampleAllLights, "no", "yes");
            var sampleAllLightsIndirect = new OptionToggle(RcCore.It.EngineSettings.SampleAllLightsIndirect, "no", "yes");

            getNumber.AddOptionToggle("show_max_passes", ref showMaxPasses);
            getNumber.AddOptionInteger("max_bounces", ref maxBounce);
            getNumber.AddOptionInteger("tile_x", ref tileX);
            getNumber.AddOptionInteger("tile_y", ref tileY);
            getNumber.AddOptionToggle("no_caustics", ref noCaustics);

            getNumber.AddOptionInteger("max_diffuse_bounce", ref maxDiffuseBounce);
            getNumber.AddOptionInteger("max_glossy_bounce", ref maxGlossyBounce);
            getNumber.AddOptionInteger("max_transmission_bounce", ref maxTransmissionBounce);
            getNumber.AddOptionInteger("max_volume_bounce", ref maxVolumeBounce);

            getNumber.AddOptionInteger("transparent_max_bounce", ref transparentMaxBounce);

            getNumber.AddOptionInteger("aa_samples", ref aaSamples);
            getNumber.AddOptionInteger("diffuse_samples", ref diffSamples);
            getNumber.AddOptionInteger("glossy_samples", ref glossySamples);

            getNumber.AddOptionDouble("sensor_width", ref sensorWidth);
            getNumber.AddOptionDouble("sensor_height", ref sensorHeight);


            getNumber.AddOptionInteger("seed", ref seed, "Seed to use for sampling distribution");

            getNumber.AddOptionDouble("filter_glossy", ref filterGlossy);
            getNumber.AddOptionDouble("sample_clamp_direct", ref sampleClampDirect);
            getNumber.AddOptionDouble("sample_clamp_indirect", ref sampleClampIndirect);
            getNumber.AddOptionDouble("light_sampling_threshold", ref lightSamplingThreshold);
            getNumber.AddOptionToggle("sample_all_lights", ref sampleAllLights);
            getNumber.AddOptionToggle("sample_all_lights_indirect", ref sampleAllLightsIndirect);

            while (true)
            {
                var getRc = getNumber.Get();
                if (getNumber.CommandResult() != Result.Success)
                {
                    return(getNumber.CommandResult());
                }
                switch (getRc)
                {
                case GetResult.Number:
                    RhinoApp.WriteLine($"We got: {getNumber.Number()}, {maxBounce.CurrentValue}");
                    RcCore.It.EngineSettings.Samples                 = (int)getNumber.Number();
                    RcCore.It.EngineSettings.ShowMaxPasses           = showMaxPasses.CurrentValue;
                    RcCore.It.EngineSettings.Seed                    = seed.CurrentValue;
                    RcCore.It.EngineSettings.MaxBounce               = maxBounce.CurrentValue;
                    RcCore.It.EngineSettings.TileX                   = tileX.CurrentValue;
                    RcCore.It.EngineSettings.TileY                   = tileY.CurrentValue;
                    RcCore.It.EngineSettings.NoCaustics              = noCaustics.CurrentValue;
                    RcCore.It.EngineSettings.MaxDiffuseBounce        = maxDiffuseBounce.CurrentValue;
                    RcCore.It.EngineSettings.MaxGlossyBounce         = maxGlossyBounce.CurrentValue;
                    RcCore.It.EngineSettings.MaxTransmissionBounce   = maxTransmissionBounce.CurrentValue;
                    RcCore.It.EngineSettings.MaxVolumeBounce         = maxVolumeBounce.CurrentValue;
                    RcCore.It.EngineSettings.TransparentMaxBounce    = transparentMaxBounce.CurrentValue;
                    RcCore.It.EngineSettings.AaSamples               = aaSamples.CurrentValue;
                    RcCore.It.EngineSettings.DiffuseSamples          = diffSamples.CurrentValue;
                    RcCore.It.EngineSettings.GlossySamples           = glossySamples.CurrentValue;
                    RcCore.It.EngineSettings.SensorWidth             = (float)sensorWidth.CurrentValue;
                    RcCore.It.EngineSettings.SensorHeight            = (float)sensorHeight.CurrentValue;
                    RcCore.It.EngineSettings.FilterGlossy            = (float)filterGlossy.CurrentValue;
                    RcCore.It.EngineSettings.SampleClampDirect       = (float)sampleClampDirect.CurrentValue;
                    RcCore.It.EngineSettings.SampleClampIndirect     = (float)sampleClampIndirect.CurrentValue;
                    RcCore.It.EngineSettings.LightSamplingThreshold  = (float)lightSamplingThreshold.CurrentValue;
                    RcCore.It.EngineSettings.SampleAllLights         = sampleAllLights.CurrentValue;
                    RcCore.It.EngineSettings.SampleAllLightsIndirect = sampleAllLightsIndirect.CurrentValue;
                    break;

                case GetResult.Option:
                    continue;
                }

                break;
            }
            return(Result.Success);
        }