public void IntersectAABBs(AbstractCollider colliderA, List <AbstractCollider> candidates, List <AbstractCollider> containedBy, List <AbstractCollider> intersect, List <AbstractCollider> depenetrate) { foreach (AbstractCollider colliderB in candidates) { if (colliderA != colliderB && Collide.Intersects(colliderA.aabb, colliderB.aabb)) { intersect?.Add(colliderB); containedBy?.Add(colliderB); depenetrate?.Add(colliderB); } } }
public void FindIntersections(AbstractCollider colliderA, List<AbstractCollider> candidates, HashSet<AbstractCollider> intersectionsA) { foreach (AbstractCollider colliderB in candidates) { ColliderPair pair = new ColliderPair(colliderA, colliderB); if (!checkedPairs.Contains(pair) && Collide.Intersects(colliderA, colliderB)) { checkedPairs.Add(pair); intersectionsA.Add(colliderB); intersections[colliderB].Add(colliderB); } } }