Exemplo n.º 1
0
        /// <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
                {
                }
            }
        }
Exemplo n.º 2
0
 /// <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;
         }
     }
 }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
0
        /// <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);
        }
Exemplo n.º 8
0
 /// <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("");
 }
Exemplo n.º 9
0
        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);
        }