Files
sanspie 17cb5e4291 Stage 2-5: assets, scene/ECS, editor, 3D, and Aego Script
Stage 2: render pipeline and UI toolkit over gpu/platform.
Stage 3: schema registry, asset pipeline + runtime loader, scene graph and ECS.
Stage 4: editor — docking, inspector, scene/game views, play mode, asset browser, console, profiler; 4.5 adds the 3D foundation (mixed 2D/3D spaces, meshes, depth).
Stage 5: Aego Script — compiler (lexer/parser/types/resolver/checker/asm/compiler), bytecode with verifier and register VM, instance runtime, stdlib, native bindings, and editor/CLI integration (aego run/edit/check/test/dump).
2026-10-08 13:17:28 +03:00

19 lines
885 B
Go

// Package mathx holds the engine math types.
//
// Matrices are column-major. 2D: +X right, +Y down, positive rotation is
// clockwise (D08). 3D: right-handed, +Y up, -Z forward; the 2D plane maps to
// 3D XY with y -> -y (D82, Mat4Lift).
//
// QuatEuler(x, y, z) is Rz·Ry·Rx: X is applied first, then Y, then Z
// (extrinsic XYZ). Quat.Euler inverts it with y in [-π/2, π/2]; at the poles
// z is reported as 0.
//
// AABB2.Intersects is strict (boxes that only touch do not intersect),
// AABB3.Intersects is inclusive. Physics must not rely on either implicitly.
//
// Mat4.Decompose folds a negative determinant into scale X, so a matrix built
// with a negative Y or Z scale decomposes to an equivalent but different
// rotation/scale pair. Transform3D stores rotation and scale directly; only
// reparent with preserved world transform goes through Decompose.
package mathx