static bool GetSingleMultiCollisionPredict(CircleCollisionSystem single, CircleCollisionSystem multi) { if (multi.IsNeedPredict()) { return single.IsCollision(multi.GetPredictateCollisionTarget(), single.GetCollisionTarget()); } else { return true; } }
static bool GetMultiMultiCollisionPredict(CircleCollisionSystem c1, CircleCollisionSystem c2) { bool p1 = c1.IsNeedPredict(); bool p2 = c2.IsNeedPredict(); if (!p1 && !p2) { return true; } if (p1 && p2) { return c1.IsCollision(c1.GetPredictateCollisionTarget(), c2.GetPredictateCollisionTarget()); } if (p1 && !p2) { return GetSingleMultiCollision(c1.GetPredictateCollisionTarget(), c2); } if (!p1 && p2) { return GetSingleMultiCollision(c2.GetPredictateCollisionTarget(), c1); } return true; }