Esempio n. 1
0
    public override void OnInspectorGUI()
    {
        GUILayout.Label("Edit the start / finish points");
        DrawDefaultInspector();
        startFinish            = target as StartFinish;
        startFinish.RealLength = startFinish.FinishDistance - startFinish.StartDistance;
        if (GUILayout.Button("Calculate splits"))
        {
            startFinish.CalculateSplits();
            EditorUtility.SetDirty(startFinish);
            makeDirtyScenes();
        }

        GUILayout.Space(5);
        GUI.backgroundColor = new Color(0.0f, 0.8f, 0.5176f);
        if (GUILayout.Button("Place signals"))
        {
            startFinish.PlaceSignals();
            EditorUtility.SetDirty(startFinish);
            makeDirtyScenes();
        }

        GUILayout.Space(5);
        GUI.backgroundColor = new Color(1.0f, 0.647f, 0.0f);
        if (GUILayout.Button("Clear signals"))
        {
            startFinish.CleanSigns();
            EditorUtility.SetDirty(startFinish);
            makeDirtyScenes();
        }
    }
Esempio n. 2
0
        public void setDD(StartFinish st)
        {
            int t1 = st.start;
            int t2 = st.finish;

            deadline = new StartFinish(t1, t2);
        }
Esempio n. 3
0
    private void OnSceneGUI()
    {
        startFinish = target as StartFinish;

        handleTransform = startFinish.transform;
        handleRotation  = Tools.pivotRotation == PivotRotation.Local ? handleTransform.rotation : Quaternion.identity;

        showPoints();

        if (GUI.changed)
        {
            EditorUtility.SetDirty(startFinish);
        }
    }
 public PerimeterClipCalculator(double startFinishDim, double horizontalZoneSize, double verticalZoneSize, StartFinish startFinish)
 {
     if (startFinish == StartFinish.Start)
     {
         base.StartFinishDim = startFinishDim;
     }
     else if (startFinish == StartFinish.Finish)
     {
         base.FinishFinishDim = startFinishDim;
     }
     base.HorizontalZoneSize = horizontalZoneSize;
     base.VerticalZoneSize   = verticalZoneSize;
     base.StartFinish        = startFinish;
 }
        private void btnCalculate_Click(object sender, EventArgs e)
        {
            // local fields for program
            double startFinishDim;
            double finishFinishDim;
            double horizontalZoneSize;
            double verticalZoneSize;
            bool   startCalc = false;


            if (comStartFinish.SelectedItem != null)
            {
                StartFinish startOrFinish = new StartFinish();

                if (comStartFinish.SelectedItem.ToString() == "Start")
                {
                    // set StartFinish enum to "Finish"
                    startOrFinish = StartFinish.Start;

                    if (startOrFinish == StartFinish.Start)
                    {
                        if (txtStartFinish.Text != "" && txtHorizontalZone.Text != "" && txtVerticalZone.Text != "")
                        {
                            // Try to convert the text in textboxes to double values
                            if (double.TryParse(txtStartFinish.Text, out startFinishDim))            // try to parse startFinishDim
                            {
                                if (double.TryParse(txtHorizontalZone.Text, out horizontalZoneSize)) // try to parse horizontalZoneSize
                                {
                                    if (double.TryParse(txtVerticalZone.Text, out verticalZoneSize)) // try to parse verticalZoneSize
                                    {
                                        int clipsPerPurlin = Convert.ToInt32(Math.Floor(((horizontalZoneSize - startFinishDim) / 24))) + 2;

                                        // pass values to constructor
                                        ClipCalculator perimeterClipCalc = new PerimeterClipCalculator(startFinishDim, horizontalZoneSize, verticalZoneSize, startOrFinish);

                                        // start calculation
                                        startCalc = true;

                                        if (startCalc == true)
                                        {
                                            bool   cornerZoneReached = false;
                                            double purlinString;
                                            int    purlinQty = 0;

                                            // loop for user to enter purlin dimensions, terminates when dimensions entered by user exceed vertical zone size
                                            do
                                            {
                                                if (double.TryParse(Interaction.InputBox("Please enter the first/next purlin run in decimal inches.", "Purlin Run Dimension", "", 0), out purlinString))
                                                {
                                                    lstCalculate.Items.Add(purlinString);
                                                    perimeterClipCalc.TotalPurlinInches = perimeterClipCalc.TotalPurlinInches + purlinString;
                                                    purlinQty++;

                                                    if (perimeterClipCalc.TotalPurlinInches > verticalZoneSize)
                                                    {
                                                        // If zone size - start/finish dimension is divisible by 24, subtract 1 clip per purlin
                                                        if ((horizontalZoneSize - startFinishDim) % 24 == 0)
                                                        {
                                                            cornerZoneReached       = true;
                                                            lblResult.Visible       = true;
                                                            lblResultDefine.Visible = true;
                                                            lblResult.Text          = Convert.ToString(perimeterClipCalc.Calculate(clipsPerPurlin, purlinQty) - purlinQty);
                                                            break;
                                                        }
                                                        else
                                                        {
                                                            cornerZoneReached       = true;
                                                            lblResult.Visible       = true;
                                                            lblResultDefine.Visible = true;
                                                            lblResult.Text          = Convert.ToString(perimeterClipCalc.Calculate(clipsPerPurlin, purlinQty));
                                                            break;
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    MessageBox.Show(Consts.PurlinStringError);
                                                    break;
                                                }
                                            } while (cornerZoneReached == false);
                                        }
                                    }
                                    else
                                    {
                                        // show error for verticalZoneSize
                                        MessageBox.Show(Consts.VerticalZoneError);
                                        return;
                                    }
                                }
                                else
                                {
                                    // show error for horizontalZoneSize
                                    MessageBox.Show(Consts.HorizontalZoneError);
                                    return;
                                }
                            }
                            else
                            {
                                // show error for startFinishDim
                                MessageBox.Show(Consts.StartOutOfRange);
                                return;
                            }
                        }
                        else
                        {
                            // show error for invalid entry
                            MessageBox.Show(Consts.InvalidEntryError);
                            return;
                        }
                    }
                }
                else if (comStartFinish.SelectedItem.ToString() == "Finish")
                {
                    // set StartFinish enum to "Finish"
                    startOrFinish = StartFinish.Finish;

                    if (startOrFinish == StartFinish.Finish)
                    {
                        if (txtStartFinish.Text != "" && txtHorizontalZone.Text != "" && txtVerticalZone.Text != "")
                        {
                            // Try to convert the text in textboxes to double values
                            if (double.TryParse(txtStartFinish.Text, out finishFinishDim))           // try to parse startFinishDim
                            {
                                if (double.TryParse(txtHorizontalZone.Text, out horizontalZoneSize)) // try to parse horizontalZoneSize
                                {
                                    if (double.TryParse(txtVerticalZone.Text, out verticalZoneSize)) // try to parse verticalZoneSize
                                    {
                                        // Calculate clips per purlin

                                        int clipsPerPurlin = Convert.ToInt32(Math.Floor(((horizontalZoneSize - finishFinishDim) / 24))) + 2;

                                        // pass values to constructor
                                        ClipCalculator perimeterClipCalc = new PerimeterClipCalculator(finishFinishDim, horizontalZoneSize, verticalZoneSize, startOrFinish);

                                        // start calculation
                                        startCalc = true;

                                        if (startCalc == true)
                                        {
                                            bool   cornerZoneReached = false;
                                            double purlinString;
                                            int    purlinQty = 0;

                                            // loop for user to enter purlin dimensions, terminates when dimensions entered by user exceed vertical zone size
                                            do
                                            {
                                                if (double.TryParse(Interaction.InputBox("Please enter the first/next purlin run in decimal inches.", "Purlin Run Dimension", "", 0), out purlinString))
                                                {
                                                    lstCalculate.Items.Add(purlinString);
                                                    perimeterClipCalc.TotalPurlinInches = perimeterClipCalc.TotalPurlinInches + purlinString;
                                                    purlinQty++;

                                                    if (perimeterClipCalc.TotalPurlinInches > verticalZoneSize)
                                                    {
                                                        // If zone size - start/finish dimension is divisible by 24, subtract 1 clip per purlin
                                                        if ((horizontalZoneSize - finishFinishDim) % 24 == 0)
                                                        {
                                                            cornerZoneReached       = true;
                                                            lblResult.Visible       = true;
                                                            lblResultDefine.Visible = true;
                                                            lblResult.Text          = Convert.ToString(perimeterClipCalc.Calculate(clipsPerPurlin, purlinQty) - purlinQty);
                                                            break;
                                                        }
                                                        else
                                                        {
                                                            cornerZoneReached       = true;
                                                            lblResult.Visible       = true;
                                                            lblResultDefine.Visible = true;
                                                            lblResult.Text          = Convert.ToString(perimeterClipCalc.Calculate(clipsPerPurlin, purlinQty));
                                                            break;
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    MessageBox.Show(Consts.PurlinStringError);
                                                    break;
                                                }
                                            } while (cornerZoneReached == false);
                                        }
                                    }
                                    else
                                    {
                                        // show error for verticalZoneSize
                                        MessageBox.Show(Consts.VerticalZoneError);
                                        return;
                                    }
                                }
                                else
                                {
                                    // show error for horizontalZoneSize
                                    MessageBox.Show(Consts.HorizontalZoneError);
                                    return;
                                }
                            }
                            else
                            {
                                // show error for startFinishDim
                                MessageBox.Show(Consts.StartOutOfRange);
                                return;
                            }
                        }
                        else
                        {
                            // show error for invalid entry
                            MessageBox.Show(Consts.InvalidEntryError);
                            return;
                        }
                    }
                }
            }
            else
            {
                MessageBox.Show(Consts.StartFinishError);
                return;
            }
        }