Утилиты MathUtils
Интерполяции
float v = MathUtils.Lerp(0f, 10f, 0.25f); // 2.5
float t = MathUtils.InverseLerp(0f, 10f, 2.5f); // 0.25
Отражение вектора
var dir = new FVector3(1, -1, 0);
var normal = FVector3.UnitY;
var refl = dir.Reflect(normal); // (1, 1, 0)
Пересечения с коробками
var line = new FLine3(new FVector3(-2, 0, 0), new FVector3(2, 0, 0));
var box = new FBox3(new FVector3(-1), new FVector3(1));
var hits = MathUtils.Intersection(line, box); // t-параметры [0..1] для отрезка
Практика
InverseLerpзащищён от деления на ноль — проверяйте равенство границ.- Для трансформированных коробок используйте перегрузки
Intersectionс матрицами. - Результат
Intersection— массив t; 1 или 2 значения, null если нет пересечения.
© 2026 Igdrasil Project. Все права защищены.