/// <summary> /// this method fills data from the respective data adapter to the list of border segments /// </summary> private void FillBorderSegments() { DataTable dt = dataSetObjBorders.Tables["BorderSegments"]; foreach (DataRow r in dt.Rows) { BorderSegment newSegment = new BorderSegment(); BorderSegment newSegment2 = new BorderSegment(); newSegment.AddCorner(ReturnCorner(Convert.ToString(r[1]))); newSegment.AddCorner(ReturnCorner(Convert.ToString(r[2]))); newSegment2.AddCorner(ReturnCorner(Convert.ToString(r[1]))); newSegment2.AddCorner(ReturnCorner(Convert.ToString(r[2]))); //the banch of code bellow adds the new segment to the left and right parcels if (ReturnParcel(Convert.ToString(r[3])) != null)//if there is a parcel to the left of the segment { BorderSegment veryNewSegment = newSegment; veryNewSegment.LeftOrNot = true; ReturnParcel(Convert.ToString(r[3])).BorderSegmentAdd(veryNewSegment); } else { } if (ReturnParcel(Convert.ToString(r[4])) != null)//if there is a parcel to the right of the segment { BorderSegment veryNewSegment2 = newSegment2; veryNewSegment2.LeftOrNot = false; ReturnParcel(Convert.ToString(r[4])).BorderSegmentAdd(veryNewSegment2); } else { } } }
/// <summary> /// this method check the segments for been common for two parcels /// </summary> /// <param name="seg">segment to check</param> /// <param name="j">number of segment in array</param> private void DuplicatedSegment(BorderSegment seg, int i) { for (int j = 0; j < listOfSegments.Count; j++) { if ((j != i) && (((BorderSegment)listOfSegments[i]).Name() == seg.Name())) { listOfSegments[j] = null; } } }
public void ReflectVelTest() { var segm = new BorderSegment(1, 1, 2, 2); var vel = new Vector2D(10, 5); var reflectVel = segm.ReflectVel(vel); var rightReflectVel = new Vector2D(5, 10); Assert.IsTrue(Vector2D.ApproxEqual(rightReflectVel, reflectVel, 0.0000001)); }
public void ReflectPosTest1() { var segm = new BorderSegment(1, 1, 2, 2); var pos = new Vector2D(10, 0); var reflectpos = segm.ReflectPos(pos); var rightReflectPOs = new Vector2D(0, 10); Assert.IsTrue(Vector2D.ApproxEqual(rightReflectPOs, reflectpos, 0.0000001)); }
public void CloseToMeTest1() { var segm = new BorderSegment(1, 1, 2, 2); var p = new Particle2DDummyBase(1) { X = 1, Y = 0.5 }; Assert.IsTrue(segm.CloseToMe(p, 0.5)); }
public void CloseToMeTest5() { var segm = new BorderSegment(1, 1, 2, 1); var p = new Particle2DDummyBase(1) { X = 0.4999, Y = 0.5 }; Assert.IsFalse(segm.CloseToMe(p, 0.5)); }
/// <summary> /// This method performs the check about whether current border segment was already added to the array of border segments /// </summary> /// <param name="num">number of segment whitch should be checked</param> /// <returns></returns> private bool CheckForDuplicatesSegments(BorderSegment seg) { bool index = false; foreach (BorderSegment item in listOfSegments) { if ((seg.Name() == ((BorderSegment)item).Name())) { index = true; } } return(index); }
/// <summary> /// this method returns the cadastral number of the parcel which is right to the segment /// </summary> /// <param name="currentSegment">the current segment</param> /// <returns>cadastral number of a right parcel</returns> private string ReturnRightParcelNumber(BorderSegment currentSegment) { for (int i = 0; i < listOfParcels.Count; i++) { for (int j = 0; j < ((Parcel)listOfParcels[i]).GetNumber; j++) { if ((((Parcel)listOfParcels[i]).ReturnSegment(j).Name() == currentSegment.Name()) && (((Parcel)listOfParcels[i]).ReturnSegment(j).LeftOrNot == false)) { return(Convert.ToString(((Parcel)listOfParcels[i]).CadastralNum)); } } } return(""); }
public void GetNormalToMeTest5() { var segm = new BorderSegment(1, 1, 2, 2); var p = new Particle2DDummyBase(1) { X = 0, Y = 0 }; var res = segm.GetNormalToMe(p); Assert.AreEqual(0d, res.X, 0.000001); Assert.AreEqual(0d, res.Y, 0.000001); }