/// <summary> /// Проверка того, содержит ли данная область размещения параллелепипед. /// </summary> /// <param name="rect">Параллелепипед.</param> /// <param name="eps">Погрешность.</param> /// <returns>Возвращает true, если область размещения полностью содержит параллелепипед.</returns> public bool IsContaine(Rect rect, double eps = 0) { bool is_containe = true; for (int i = 0; i < Dim && is_containe; i++) { is_containe = (Min(i) <= rect.Min(i) + eps); if (freez[i]) is_containe = is_containe && (rect.Max(i) <= Max(i) + eps); } return is_containe; }
/// <summary> /// Проверка на пересечение с параллелепипедом. /// </summary> /// <param name="rect">Параллелепипед.</param> /// <param name="eps">Погрешность.</param> /// <returns>Возвращает true, если произошло пересечение с параллелепипедом.</returns> public bool IsCollideWith(Rect rect, double eps = 0) { bool is_collide = true; for (int i = 0; i < Dim && is_collide; i++) is_collide = (Min(i) < rect.Max(i) - eps) && (rect.Min(i) < Max(i) - eps); return is_collide; }