/// <summary> /// Ordering to be closer to _fin /// </summary> void SetAnchorsPriorityToFin(VectorM[] anchorOrdered) { //now will need the distances towards the ordered end for (int i = 0; i < currBuilding.Anchors.Count; i++) { anchorOrdered[i] = new VectorM(currBuilding.Anchors[i], _fin); } anchorOrdered = anchorOrdered.OrderBy(a => a.Distance).ToArray(); closest1stAnchorToFin = anchorOrdered[0].Point; closest2ndAnchorToFin = anchorOrdered[1].Point; closest3rdAnchorToFin = anchorOrdered[2].Point; }
/// <summary> /// Set the the closest anchor to origin, then calls SetAnchorsPriorityToFin() /// </summary> void SetAnchors() { //_person.DebugList.AddRange(UVisHelp.CreateHelpers(currBuilding.Anchors, Root.yellowCube)); VectorM[] anchorOrdered = new VectorM[4]; for (int i = 0; i < currBuilding.Anchors.Count; i++) { anchorOrdered[i] = new VectorM(currBuilding.Anchors[i], _current); } anchorOrdered = anchorOrdered.OrderBy(a => a.Distance).ToArray(); closestAnchorToOrigin = anchorOrdered[0].Point; SetAnchorsPriorityToFin(anchorOrdered); }
public void TestSort() { var x = new VectorM(3.2m, 1.3m, 9.0m, 7.6m, 2.6m); x.Sort(); Assert.AreEqual<VectorM>( new VectorM(1.3m, 2.6m, 3.2m, 7.6m, 9.0m), x); x.Sort(true); Assert.AreEqual<VectorM>( new VectorM(9.0m, 7.6m, 3.2m, 2.6m, 1.3m), x); var y = new VectorC( new ComplexD(2, 3), new ComplexD(-1, -4), new ComplexD(6, 7), new ComplexD(1, 2)); y.Sort(); Assert.AreEqual<VectorC>( new VectorC( new ComplexD(-1, -4), new ComplexD(1, 2), new ComplexD(2, 3), new ComplexD(6, 7)), y); y.Sort(true); Assert.AreEqual<VectorC>( new VectorC( new ComplexD(6, 7), new ComplexD(2, 3), new ComplexD(1, 2), new ComplexD(-1, -4)), y); }
public void TestSum() { var x = new VectorM(3.2m, 1.3m, 9.0m, 7.6m, 2.6m); var sumX = x.Sum(); Assert.AreEqual<decimal>(23.7m, sumX); var y = new VectorC( new ComplexD(2, 3), new ComplexD(-1, -4), new ComplexD(6, 7), new ComplexD(1, 2)); //var sumY = y.Sum(); }