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(); } }
public void setDD(StartFinish st) { int t1 = st.start; int t2 = st.finish; deadline = new StartFinish(t1, t2); }
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; } }