private bool Intersects(CollisionCircle element) { ComputeCircleAxes(element); // loop over the axes of this polygon for (int i = 0; i < _axes.Count; i++) { Vector2 axis = _axes[i]; // project both shapes onto the axis Vector2 p1 = this.Project(axis); Vector2 p2 = element.Project(axis); // do the projections overlap? if (!Overlap(p1, p2)) { // then we can guarantee that the shapes do not overlap return(false); } } // if we get here then we know that every axis had overlap on it // so we can guarantee an intersection return(true); }
private bool Intersects(CollisionCircle element) { ComputeCircleAxes(element); // loop over the axes of this polygon for (int i = 0; i < _axes.Count; i++) { Vector2 axis = _axes[i]; // project both shapes onto the axis Vector2 p1 = this.Project(axis); Vector2 p2 = element.Project(axis); // do the projections overlap? if (!Overlap(p1, p2)) { // then we can guarantee that the shapes do not overlap return false; } } // if we get here then we know that every axis had overlap on it // so we can guarantee an intersection return true; }