private void btnCancel_Click(object sender, System.EventArgs e) { Close(); mf.btnCurve.PerformClick(); mf.curve.ResetCurveLine(); mf.FileSaveCurveLine(); mf.DisableYouTurnButtons(); }
private void btnSave_Click(object sender, EventArgs e) { mf.curve.isSmoothWindowOpen = false; mf.curve.SaveSmoothAsRefList(); mf.curve.smooList.Clear(); mf.FileSaveCurveLine(); Close(); }
private void btnABLineOk_Click(object sender, System.EventArgs e) { if (mf.curve.refList.Count < 3) { mf.curve.isCurveBtnOn = false; mf.btnCurve.Image = Properties.Resources.CurveOff; mf.curve.ResetCurveLine(); mf.DisableYouTurnButtons(); mf.FileSaveCurveLine(); Close(); } else { mf.curve.isCurveSet = true; mf.EnableYouTurnButtons(); mf.FileSaveCurveLine(); Close(); } }
private void btnSave_Click(object sender, EventArgs e) { //fill something in if (String.IsNullOrEmpty(tboxFieldName.Text.Trim())) { Close(); return; } //append date time to name mf.currentFieldDirectory = tboxFieldName.Text.Trim() + "_"; //task if (!String.IsNullOrEmpty(tboxTask.Text.Trim())) { mf.currentFieldDirectory += tboxTask.Text.Trim() + "_"; } //vehicle if (!String.IsNullOrEmpty(tboxVehicle.Text.Trim())) { mf.currentFieldDirectory += tboxVehicle.Text.Trim() + "_"; } //date mf.currentFieldDirectory += String.Format("{0}", DateTime.Now.ToString("yyyy.MMM.dd HH_mm", CultureInfo.InvariantCulture)); //get the directory and make sure it exists, create if not string dirNewField = mf.fieldsDirectory + mf.currentFieldDirectory + "\\"; //if no template set just make a new file. if (!isTemplateSet) { try { //start a new job mf.JobNew(); //create it for first save string directoryName = Path.GetDirectoryName(dirNewField); if ((!string.IsNullOrEmpty(directoryName)) && (Directory.Exists(directoryName))) { MessageBox.Show("Choose a different name", "Directory Exists", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } else { //reset the offsets mf.pn.utmEast = (int)mf.pn.actualEasting; mf.pn.utmNorth = (int)mf.pn.actualNorthing; mf.worldGrid.CreateWorldGrid(0, 0); //calculate the central meridian of current zone mf.pn.centralMeridian = -177 + ((mf.pn.zone - 1) * 6); //Azimuth Error - utm declination mf.pn.convergenceAngle = Math.Atan(Math.Sin(glm.toRadians(mf.pn.latitude)) * Math.Tan(glm.toRadians(mf.pn.longitude - mf.pn.centralMeridian))); mf.lblConvergenceAngle.Text = Math.Round(glm.toDegrees(mf.pn.convergenceAngle), 3).ToString(); //make sure directory exists, or create it if ((!string.IsNullOrEmpty(directoryName)) && (!Directory.Exists(directoryName))) { Directory.CreateDirectory(directoryName); } //create the field file header info mf.FileCreateField(); mf.FileCreateSections(); mf.FileCreateRecPath(); mf.FileCreateContour(); mf.FileCreateElevation(); mf.FileSaveFlags(); mf.FileSaveABLine(); mf.FileSaveCurveLine(); //mf.FileSaveHeadland(); } } catch (Exception ex) { mf.WriteErrorLog("Creating new field " + ex); MessageBox.Show("Error", ex.ToString()); mf.currentFieldDirectory = ""; } } else { // create from template string directoryName = Path.GetDirectoryName(dirNewField); if ((!string.IsNullOrEmpty(directoryName)) && (Directory.Exists(directoryName))) { MessageBox.Show("Choose a different name", "Directory Exists", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } else { //create the new directory if ((!string.IsNullOrEmpty(directoryName)) && (!Directory.Exists(directoryName))) { Directory.CreateDirectory(directoryName); } } string line; string offsets; using (StreamReader reader = new StreamReader(templateFileAndDirectory)) { try { line = reader.ReadLine(); line = reader.ReadLine(); line = reader.ReadLine(); line = reader.ReadLine(); //read the Offsets - all we really need from template field file offsets = reader.ReadLine(); } catch (Exception ex) { mf.WriteErrorLog("While Opening Field" + ex); var form = new FormTimedMessage(4000, "Field File is Corrupt", "Choose a different field"); form.Show(); mf.JobClose(); return; } const string myFileName = "Field.txt"; using (StreamWriter writer = new StreamWriter(dirNewField + myFileName)) { //Write out the date writer.WriteLine(DateTime.Now.ToString("yyyy-MMMM-dd hh:mm:ss tt", CultureInfo.InvariantCulture)); writer.WriteLine("$FieldDir"); writer.WriteLine(mf.currentFieldDirectory.ToString(CultureInfo.InvariantCulture)); //write out the easting and northing Offsets writer.WriteLine("$Offsets"); writer.WriteLine(offsets); } //create blank Contour and Section files mf.FileCreateSections(); mf.FileCreateContour(); mf.FileCreateElevation(); //copy over the files from template string templateDirectoryName = Path.GetDirectoryName(templateFileAndDirectory); string fileToCopy = templateDirectoryName + "\\Boundary.txt"; string destinationDirectory = directoryName + "\\Boundary.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } fileToCopy = templateDirectoryName + "\\Headland.txt"; destinationDirectory = directoryName + "\\Headland.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } fileToCopy = templateDirectoryName + "\\Flags.txt"; destinationDirectory = directoryName + "\\Flags.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } fileToCopy = templateDirectoryName + "\\ABLine.txt"; destinationDirectory = directoryName + "\\ABLine.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } fileToCopy = templateDirectoryName + "\\RecPath.txt"; destinationDirectory = directoryName + "\\RecPath.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } fileToCopy = templateDirectoryName + "\\CurveLine.txt"; destinationDirectory = directoryName + "\\CurveLine.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } //now open the newly cloned field mf.FileOpenField(dirNewField + myFileName); } } DialogResult = DialogResult.OK; Close(); }
private void BtnMakeCurve_Click(object sender, EventArgs e) { mf.curve.refList?.Clear(); for (int i = start; i < end; i++) { mf.curve.refList.Add(arr[i]); } int cnt = mf.curve.refList.Count; if (cnt > 3) { //make sure distance isn't too big between points on Turn for (int i = 0; i < cnt - 1; i++) { int j = i + 1; //if (j == cnt) j = 0; double distance = glm.Distance(mf.curve.refList[i], mf.curve.refList[j]); if (distance > 1.2) { vec3 pointB = new vec3((mf.curve.refList[i].easting + mf.curve.refList[j].easting) / 2.0, (mf.curve.refList[i].northing + mf.curve.refList[j].northing) / 2.0, mf.curve.refList[i].heading); mf.curve.refList.Insert(j, pointB); cnt = mf.curve.refList.Count; i = -1; } } //who knows which way it actually goes mf.curve.CalculateTurnHeadings(); //calculate average heading of line double x = 0, y = 0; mf.curve.isCurveSet = true; foreach (var pt in mf.curve.refList) { x += Math.Cos(pt.heading); y += Math.Sin(pt.heading); } x /= mf.curve.refList.Count; y /= mf.curve.refList.Count; mf.curve.aveLineHeading = Math.Atan2(y, x); //build the tail extensions mf.curve.AddFirstLastPoints(); mf.curve.SmoothAB(4); mf.curve.CalculateTurnHeadings(); mf.curve.isCurveSet = true; //mf.EnableYouTurnButtons(); mf.FileSaveCurveLine(); btnMakeABLine.Enabled = false; btnMakeCurve.Enabled = false; tboxABLineSaveName.Enabled = false; tboxCurveSaveName.Enabled = true; } else { mf.curve.isCurveSet = false; mf.curve.refList?.Clear(); } }
private void BtnMakeCurve_Click(object sender, EventArgs e) { btnCancelTouch.Enabled = false; mf.curve.refList?.Clear(); for (int i = start; i < end; i++) { mf.curve.refList.Add(arr[i]); } int cnt = mf.curve.refList.Count; if (cnt > 3) { //make sure distance isn't too big between points on Turn for (int i = 0; i < cnt - 1; i++) { int j = i + 1; //if (j == cnt) j = 0; double distance = glm.Distance(mf.curve.refList[i], mf.curve.refList[j]); if (distance > 1.2) { vec3 pointB = new vec3((mf.curve.refList[i].easting + mf.curve.refList[j].easting) / 2.0, (mf.curve.refList[i].northing + mf.curve.refList[j].northing) / 2.0, mf.curve.refList[i].heading); mf.curve.refList.Insert(j, pointB); cnt = mf.curve.refList.Count; i = -1; } } //who knows which way it actually goes mf.curve.CalculateTurnHeadings(); //calculate average heading of line double x = 0, y = 0; mf.curve.isCurveSet = true; foreach (var pt in mf.curve.refList) { x += Math.Cos(pt.heading); y += Math.Sin(pt.heading); } x /= mf.curve.refList.Count; y /= mf.curve.refList.Count; mf.curve.aveLineHeading = Math.Atan2(y, x); //build the tail extensions mf.curve.AddFirstLastPoints(); mf.curve.SmoothAB(4); mf.curve.CalculateTurnHeadings(); mf.curve.isCurveSet = true; mf.FileSaveCurveLine(); btnMakeABLine.Enabled = false; btnMakeCurve.Enabled = false; isMakingCurve = true; isMakingAB = false; //get the directory and make sure it exists, create if not string dirField = mf.fieldsDirectory + mf.currentFieldDirectory + "\\"; string directoryName = Path.GetDirectoryName(dirField); if ((directoryName.Length > 0) && (!Directory.Exists(directoryName))) { Directory.CreateDirectory(directoryName); } string filename = directoryName + "\\CurveLines.txt"; if (!File.Exists(filename)) { using (StreamWriter writer = new StreamWriter(filename)) { writer.WriteLine("$CurveLines"); } } //use Streamwriter to append to curveLines file using (StreamWriter writer = new StreamWriter(filename, true)) { try { //write out the ABLine writer.WriteLine(mf.curve.refList.Count.ToString() + "_Pts " + DateTime.Now.ToString("mm_ss", CultureInfo.InvariantCulture)); //write out the aveheading writer.WriteLine(mf.curve.aveLineHeading.ToString(CultureInfo.InvariantCulture)); //write out the points of ref line writer.WriteLine(mf.curve.refList.Count.ToString(CultureInfo.InvariantCulture)); for (int j = 0; j < mf.curve.refList.Count; j++) { writer.WriteLine(Math.Round(mf.curve.refList[j].easting, 3).ToString(CultureInfo.InvariantCulture) + "," + Math.Round(mf.curve.refList[j].northing, 3).ToString(CultureInfo.InvariantCulture) + "," + Math.Round(mf.curve.refList[j].heading, 5).ToString(CultureInfo.InvariantCulture)); } } catch (Exception er) { Console.WriteLine(er.Message + "\n Cannot write to file."); mf.WriteErrorLog("Saving Curve Line" + er.ToString()); return; } } //update the arrays LoadCurves(); numCurveSelected = numCurves; FixLabelsCurve(); isMakingCurve = false; isMakingAB = false; start = 99999; end = 99999; } else { mf.curve.isCurveSet = false; mf.curve.refList?.Clear(); } }