Skip to content

Complete Vector3f, Vector4f, Matrix3f and Matrix4f as in Aventura - #2

Merged
obarry merged 2 commits into
masterfrom
work
Oct 4, 2026
Merged

obarry merged 2 commits into
masterfrom
work

Conversation

@obarry

@obarry obarry commented Oct 4, 2026

Copy link
Copy Markdown
Owner

Vectors:

  • Static axes, zeroVector and zeroPoint
  • Constructors from std::vector (VectorArrayWrongSizeException), from 2
    points, from a matrix row or column, Vector3f from Vector4f
  • cross/crossEquals (operator* stays an alias), set(x, y, z[, w]),
    lengthSquared, distance, distanceSquared, toArray
  • Vector4f: get3DX/Y/Z, get3DPoint (std::optional, empty if w is 0), V3,
    • and - with a Vector3f, isPoint/isVector/point/vector

Matrices:

  • identity, setDiagonal, getRow/getColumn/setRow/setColumn
    (IndexOutOfBoundException), getArray/setArray
    (MatrixArrayWrongSizeException), trace, isIdentity, determinant,
    transpose/transposeEquals, Matrix4f::getMatrix3
  • inverse() via a GaussJordanSolver template shared by both sizes
    (NotInvertibleMatrixException on a singular matrix)

The Visual Studio project now builds in C++17 (needed for std::optional).

obarry and others added 2 commits October 4, 2026 11:05
Vectors:
- Static axes, zeroVector and zeroPoint
- Constructors from std::vector (VectorArrayWrongSizeException), from 2
  points, from a matrix row or column, Vector3f from Vector4f
- cross/crossEquals (operator* stays an alias), set(x, y, z[, w]),
  lengthSquared, distance, distanceSquared, toArray
- Vector4f: get3DX/Y/Z, get3DPoint (std::optional, empty if w is 0), V3,
  + and - with a Vector3f, isPoint/isVector/point/vector

Matrices:
- identity, setDiagonal, getRow/getColumn/setRow/setColumn
  (IndexOutOfBoundException), getArray/setArray
  (MatrixArrayWrongSizeException), trace, isIdentity, determinant,
  transpose/transposeEquals, Matrix4f::getMatrix3
- inverse() via a GaussJordanSolver template shared by both sizes
  (NotInvertibleMatrixException on a singular matrix)

The Visual Studio project now builds in C++17 (needed for std::optional).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FmLcUnAfhtVMCNPGNw5Lxb
MSVC /W4 reported C4458 because the parameters of Vector3f::set(x, y, z) and Vector4f::set(x, y, z, w) hid the members.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@obarry
obarry merged commit 93f8faf into master Oct 4, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant