Unnamed Page
title: IgdrasilMath Documentation description: Полная документация по IgdrasilMath order: 1
Обзор
IgdrasilMath — модуль линейной алгебры и геометрии для Igdrasil Engine. Включает векторную и матричную математику (Half/float/double/int/long), кватернионы, боксы (AABB), линии/лучи, кривые Безье и Catmull-Rom, шумы Perlin, утилиты пересечений и интерполяций. Все типы сериализуемы и готовы к использованию в Editor.
Пространства имён
IgdrasilEngine.Engine.Math— утилиты (MathUtils), типы кривых, шумы.IgdrasilEngine.Engine.Math.Vectors—FVector2/3/4,DVector*,HVector*,IVector*,LVector*,FQuaternion/DQuaternion.IgdrasilEngine.Engine.Math.Matrices—FMatrix*,DMatrix*(размеры 2x2…4x4 и прямоугольные 2x3, 3x2 и т.д.).IgdrasilEngine.Engine.Math.Boxes—FBox2/3, операции union/intersection, проверки пересечений.IgdrasilEngine.Engine.Math.Lines—FLine2/3,FRay2/3.IgdrasilEngine.Engine.Math.Curves— базовыйCurve, реализации Bezier/CatmullRom.IgdrasilEngine.Engine.Math.Noises— Perlin/фрактальный шум.IgdrasilEngine.Engine.Math.Distributions— вспомогательные распределения (равномерное и др.).
Ключевые возможности
- Векторные операции:
Dot,Cross, нормализация, проекции, отражение (Reflect). - Матрицы: умножение матрица×матрица, матрица×вектор, детерминант, инверс, трансформации 2D/3D.
- Геометрия: AABB, лучи и отрезки, пересечение луч/отрезок с коробкой или трансформированной коробкой (
MathUtils.Intersection). - Интерполяция:
Lerp,InverseLerpдляHalf/float/double, плавные кривые (Bezier, Catmull-Rom), кватернионы для вращений. - Шумы: Perlin 2D/3D, турбулентность, октавный шум для процедурных карт.
Быстрый старт
using IgdrasilEngine.Engine.Math;
using IgdrasilEngine.Engine.Math.Vectors;
using IgdrasilEngine.Engine.Math.Matrices;
// Векторная арифметика
var a = new FVector3(1, 2, 3);
var b = new FVector3(4, 0, -1);
var n = FVector3.Normalize(a + b);
var refl = a.Reflect(new FVector3(0, 1, 0));
// Матрицы: построение TRS
var translation = FMatrix4x4.CreateTranslation(0, 1, 0);
var rotation = FMatrix4x4.CreateFromQuaternion(FQuaternion.CreateFromAxisAngle(FVector3.UnitY, MathF.PI * 0.5f));
var scale = FMatrix4x4.CreateScale(2.0f);
var world = scale * rotation * translation;
// Применение к точке
var p = new FVector3(1, 0, 0);
var transformed = new FVector3(world * new FVector4(p, 1));
Пересечения (ray/line vs AABB)
using IgdrasilEngine.Engine.Math;
using IgdrasilEngine.Engine.Math.Boxes;
order: 0
var hits = MathUtils.Intersection(ray, box);
## Обзор
IgdrasilMath — модуль линейной алгебры и геометрии для Igdrasil Engine: векторы/матрицы (Half/float/double/int/long), кватернионы, AABB, лучи/отрезки, кривые (Bezier, Catmull-Rom), шумы Perlin и утилиты пересечений/интерполяций.
## Разделы
- [Векторы и кватернионы](vectors/) — FVector/DVector/HVector/IVector/LVector, кватернионы.
- [Матрицы](matrices/) — квадратные и прямоугольные матрицы, TRS и инверсия.
- [Коробки, линии и лучи](boxes-and-lines/) — AABB, пересечения линий и лучей.
- [Кривые](curves/) — Bezier, Catmull-Rom, точки и касательные.
- [Шумы](noise/) — Perlin и фрактальные вариации.
- [Утилиты MathUtils](math-utils/) — Lerp/InverseLerp, отражения, пересечения.
## Быстрый старт
```csharp
using IgdrasilEngine.Engine.Math;
using IgdrasilEngine.Engine.Math.Vectors;
using IgdrasilEngine.Engine.Math.Matrices;
var a = new FVector3(1, 2, 3);
var b = new FVector3(4, 0, -1);
var n = FVector3.Normalize(a + b);
var world = FMatrix4x4.CreateScale(2f)
* FMatrix4x4.CreateFromQuaternion(FQuaternion.CreateFromAxisAngle(FVector3.UnitY, MathF.PI * 0.5f))
* FMatrix4x4.CreateTranslation(0, 1, 0);
var p = new FVector3(1, 0, 0);
var transformed = new FVector3(world * new FVector4(p, 1));
Где искать
- Код:
Engine/Math/(векторы, матрицы, боксы, кривые, шумы, утилиты). - Шаблоны doc (sbncs/yml) для автогенерации справочников:
Engine/Math/Vectors,Engine/Math/Matrices.
© 2026 Igdrasil Project. Все права защищены.