public void CopyTo() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); csc.Add(ContactSet.Create(_b, _c)); csc.Add(ContactSet.Create(_c, _d)); var array = new ContactSet[5]; csc.CopyTo(array, 0); Assert.IsNotNull(array[0]); Assert.IsNotNull(array[1]); Assert.IsNotNull(array[2]); Assert.IsNotNull(array[3]); Assert.IsNotNull(array[4]); array = new ContactSet[6]; csc.CopyTo(array, 1); Assert.IsNull(array[0]); Assert.IsNotNull(array[1]); Assert.IsNotNull(array[2]); Assert.IsNotNull(array[3]); Assert.IsNotNull(array[4]); Assert.IsNotNull(array[5]); }
public void Remove() { // Remove with null. Assert.IsFalse(new ContactSetCollection().Remove((ContactSet)null)); Assert.IsFalse(new ContactSetCollection().Remove((CollisionObject)null)); Assert.IsNull(new ContactSetCollection().Remove(null, _a)); Assert.IsNull(new ContactSetCollection().Remove(_a, (CollisionObject)null)); ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); csc.Add(ContactSet.Create(_b, _c)); csc.Add(ContactSet.Create(_c, _d)); Assert.AreEqual(5, csc.Count); Assert.IsNotNull(csc.Remove(_a, _d)); Assert.IsFalse(csc.Contains(_a, _d)); Assert.AreEqual(4, csc.Count); Assert.IsNull(csc.Remove(_a, _d)); Assert.AreEqual(4, csc.Count); Assert.IsTrue(csc.Remove(csc.GetContacts(_c, _b))); Assert.IsFalse(csc.Contains(_b, _c)); Assert.AreEqual(3, csc.Count); Assert.IsFalse(csc.Remove(ContactSet.Create(_a, _e))); Assert.AreEqual(3, csc.Count); Assert.IsTrue(csc.Remove(_a)); Assert.AreEqual(1, csc.Count); Assert.IsFalse(csc.Remove(_b)); Assert.AreEqual(1, csc.Count); }
public void AddException4() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_b, _a)); }
public void Add() { ContactSetCollection csc = new ContactSetCollection(); Assert.AreEqual(0, csc.Count); csc.Add(ContactSet.Create(_a, _b)); Assert.AreEqual(1, csc.Count); csc.Add(ContactSet.Create(_a, _c)); Assert.AreEqual(2, csc.Count); csc.Add(ContactSet.Create(_d, _a)); Assert.AreEqual(3, csc.Count); }
/// <summary> /// Creates a <see cref="ContactSetCollection"/> from an <see cref="IEnumerable{ContactSet}"/>. /// </summary> /// <param name="contactSets">The contact sets.</param> /// <returns> /// A <see cref="ContactSetCollection"/> that contains the elements from the input sequence. /// </returns> public static ContactSetCollection ToContactSetCollection(this IEnumerable <ContactSet> contactSets) { ContactSetCollection collection = contactSets as ContactSetCollection; if (collection != null) { return(collection); } return(new ContactSetCollection(contactSets)); }
public void Clear() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); Assert.AreEqual(3, csc.Count); csc.Clear(); Assert.AreEqual(0, csc.Count); Assert.IsFalse(csc.Contains(_a, _b)); }
public void Add() { ContactSetCollection csc = new ContactSetCollection(); Assert.AreEqual(0, csc.Count); csc.Add(ContactSet.Create(_a, _b)); Assert.AreEqual(1, csc.Count); csc.Add(ContactSet.Create(_a, _c)); Assert.AreEqual(2, csc.Count); csc.Add(ContactSet.Create(_d, _a)); Assert.AreEqual(3, csc.Count); }
//-------------------------------------------------------------- #region Creation and Cleanup //-------------------------------------------------------------- /// <summary> /// Initializes a new instance of the <see cref="CollisionDetectionBroadPhase"/> class. /// </summary> public CollisionDetectionBroadPhase(CollisionDomain collisionDomain) { _collisionDomain = collisionDomain; // Register event handler. _collisionDomain.CollisionObjects.CollectionChanged += OnCollisionObjectsChanged; // Per default we use Sweep and Prune. SpatialPartition = new SweepAndPruneSpace <CollisionObject>(); CandidatePairs = new ContactSetCollection(); }
public void Clear() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); Assert.AreEqual(3, csc.Count); csc.Clear(); Assert.AreEqual(0, csc.Count); Assert.IsFalse(csc.Contains(_a, _b)); }
public void ToStringTest() { Assert.AreEqual("ContactSetCollection { Count = 0 }", new ContactSetCollection().ToString()); ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); csc.Add(ContactSet.Create(_b, _c)); csc.Add(ContactSet.Create(_c, _d)); Assert.AreEqual("ContactSetCollection { Count = 5 }", csc.ToString()); }
public void GetContactSet() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); csc.Add(ContactSet.Create(_b, _c)); csc.Add(ContactSet.Create(_c, _d)); Assert.AreEqual(_a, csc.GetContacts(_a, _b).ObjectA); Assert.AreEqual(_b, csc.GetContacts(_b, _a).ObjectB); Assert.AreEqual(_a, csc.GetContacts(_a, _d).ObjectB); Assert.AreEqual(null, csc.GetContacts(_b, _e)); }
public void GetContactSets() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); csc.Add(ContactSet.Create(_b, _c)); csc.Add(ContactSet.Create(_c, _d)); Assert.AreEqual(0, csc.GetContacts(_e).Count()); Assert.AreEqual(3, csc.GetContacts(_a).Count()); Assert.AreEqual(2, csc.GetContacts(_b).Count()); Assert.AreEqual(true, csc.GetContacts(_b).ToContactSetCollection().Contains(_b, _c)); Assert.AreEqual(true, csc.GetContacts(_b).ToContactSetCollection().Contains(_b, _a)); }
public void Contains() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); Assert.AreEqual(3, csc.Count); Assert.IsTrue(csc.Contains(_a, _b)); Assert.IsTrue(csc.Contains(_b, _a)); Assert.IsTrue(csc.Contains(_a, _d)); Assert.IsFalse(csc.Contains(_a, _a)); Assert.IsFalse(csc.Contains(_b, _c)); Assert.IsFalse(csc.Contains(null, null)); Assert.IsFalse(csc.Contains(_a, null)); Assert.IsFalse(csc.Contains(null, _a)); // Same object but other contact set instances. Assert.IsFalse(csc.Contains(ContactSet.Create(_a, _b))); Assert.IsFalse(csc.Contains(ContactSet.Create(_b, _c))); }
public void TestEnumerator() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); csc.Add(ContactSet.Create(_b, _c)); csc.Add(ContactSet.Create(_c, _d)); IEnumerator enumerator = ((IEnumerable)csc).GetEnumerator(); IEnumerator <ContactSet> genericEnumerator = csc.GetEnumerator(); for (int i = 0; i < csc.Count; i++) { Assert.IsTrue(enumerator.MoveNext()); Assert.IsTrue(genericEnumerator.MoveNext()); } Assert.IsFalse(enumerator.MoveNext()); Assert.IsFalse(genericEnumerator.MoveNext()); }
/// <summary> /// Draws contacts. /// </summary> /// <param name="contactSets">The contact sets.</param> /// <param name="normalLength">The length of the normal vector in world space.</param> /// <param name="color"> /// The color. If this parameter is <see langword="null"/>, each contact is drawn with a unique /// color. /// </param> /// <param name="drawOverScene"> /// If set to <see langword="true"/> the object is drawn over the graphics scene (depth-test /// disabled). /// </param> /// <remarks> /// The penetration depth is visualized with a dark red line. /// </remarks> public void DrawContacts(ContactSetCollection contactSets, float normalLength, Color? color, bool drawOverScene) { if (!Enabled || contactSets == null) return; foreach (var contactSet in contactSets) DrawContacts(contactSet, normalLength, color, drawOverScene); }
public void GetContactSet() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); csc.Add(ContactSet.Create(_b, _c)); csc.Add(ContactSet.Create(_c, _d)); Assert.AreEqual(_a, csc.GetContacts(_a, _b).ObjectA); Assert.AreEqual(_b, csc.GetContacts(_b, _a).ObjectB); Assert.AreEqual(_a, csc.GetContacts(_a, _d).ObjectB); Assert.AreEqual(null, csc.GetContacts(_b, _e)); }
public void GetContactSets() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); csc.Add(ContactSet.Create(_b, _c)); csc.Add(ContactSet.Create(_c, _d)); Assert.AreEqual(0, csc.GetContacts(_e).Count()); Assert.AreEqual(3, csc.GetContacts(_a).Count()); Assert.AreEqual(2, csc.GetContacts(_b).Count()); Assert.AreEqual(true, csc.GetContacts(_b).ToContactSetCollection().Contains(_b, _c)); Assert.AreEqual(true, csc.GetContacts(_b).ToContactSetCollection().Contains(_b, _a)); }
public void AddException3() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(null); }
public void Remove() { // Remove with null. Assert.IsFalse(new ContactSetCollection().Remove((ContactSet) null)); Assert.IsFalse(new ContactSetCollection().Remove((CollisionObject) null)); Assert.IsNull(new ContactSetCollection().Remove(null, _a)); Assert.IsNull(new ContactSetCollection().Remove(_a, (CollisionObject)null)); ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); csc.Add(ContactSet.Create(_b, _c)); csc.Add(ContactSet.Create(_c, _d)); Assert.AreEqual(5, csc.Count); Assert.IsNotNull(csc.Remove(_a, _d)); Assert.IsFalse(csc.Contains(_a, _d)); Assert.AreEqual(4, csc.Count); Assert.IsNull(csc.Remove(_a, _d)); Assert.AreEqual(4, csc.Count); Assert.IsTrue(csc.Remove(csc.GetContacts(_c, _b))); Assert.IsFalse(csc.Contains(_b, _c)); Assert.AreEqual(3, csc.Count); Assert.IsFalse(csc.Remove(ContactSet.Create(_a, _e))); Assert.AreEqual(3, csc.Count); Assert.IsTrue(csc.Remove(_a)); Assert.AreEqual(1, csc.Count); Assert.IsFalse(csc.Remove(_b)); Assert.AreEqual(1, csc.Count); }
public void TestEnumerator() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); csc.Add(ContactSet.Create(_b, _c)); csc.Add(ContactSet.Create(_c, _d)); IEnumerator enumerator = ((IEnumerable)csc).GetEnumerator(); IEnumerator<ContactSet> genericEnumerator = csc.GetEnumerator(); for (int i = 0; i < csc.Count; i++) { Assert.IsTrue(enumerator.MoveNext()); Assert.IsTrue(genericEnumerator.MoveNext()); } Assert.IsFalse(enumerator.MoveNext()); Assert.IsFalse(genericEnumerator.MoveNext()); }
public void ToStringTest() { Assert.AreEqual("ContactSetCollection { Count = 0 }", new ContactSetCollection().ToString()); ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); csc.Add(ContactSet.Create(_b, _c)); csc.Add(ContactSet.Create(_c, _d)); Assert.AreEqual("ContactSetCollection { Count = 5 }", csc.ToString()); }
public void AddException3() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(null); }
public void AddException4() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_b, _a)); }
public void Contains() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); Assert.AreEqual(3, csc.Count); Assert.IsTrue(csc.Contains(_a, _b)); Assert.IsTrue(csc.Contains(_b, _a)); Assert.IsTrue(csc.Contains(_a, _d)); Assert.IsFalse(csc.Contains(_a, _a)); Assert.IsFalse(csc.Contains(_b, _c)); Assert.IsFalse(csc.Contains(null, null)); Assert.IsFalse(csc.Contains(_a, null)); Assert.IsFalse(csc.Contains(null, _a)); // Same object but other contact set instances. Assert.IsFalse(csc.Contains(ContactSet.Create(_a, _b))); Assert.IsFalse(csc.Contains(ContactSet.Create(_b, _c))); }
public void CopyTo() { ContactSetCollection csc = new ContactSetCollection(); csc.Add(ContactSet.Create(_a, _b)); csc.Add(ContactSet.Create(_a, _c)); csc.Add(ContactSet.Create(_d, _a)); csc.Add(ContactSet.Create(_b, _c)); csc.Add(ContactSet.Create(_c, _d)); var array = new ContactSet[5]; csc.CopyTo(array, 0); Assert.IsNotNull(array[0]); Assert.IsNotNull(array[1]); Assert.IsNotNull(array[2]); Assert.IsNotNull(array[3]); Assert.IsNotNull(array[4]); array = new ContactSet[6]; csc.CopyTo(array, 1); Assert.IsNull(array[0]); Assert.IsNotNull(array[1]); Assert.IsNotNull(array[2]); Assert.IsNotNull(array[3]); Assert.IsNotNull(array[4]); Assert.IsNotNull(array[5]); }