DarkRadiant: master c1373513

Author Committer Branch Timestamp Parent
orbweaver orbweaver master 27.03.2021 20:39 master f03e4057
Changeset Matrix4 now uses an Eigen::Transform internally

Eigen::Transform is a wrapper for an Eigen::Matrix structure which adds
functionality specific to geometric transformations, e.g. extracting the affine
part from an arbitrary (projective) transformation. Our own Matrix4 class is
now just interface glue for this Eigen::Transformation object, which means we
no longer need to implement linear algebra ourselves.

Since Matrix4 is well covered by unit tests (which still pass), there should be
no mathematical problems with this change, however the code is not yet optimal
since some functions are still performing maths manually using xx(), xy() etc
when they could be implemented using functionality exposed directly by Eigen
(some of which may be optimised using SIMD instructions).
mod - libs/math/Matrix4.cpp Diff File
mod - libs/math/Matrix4.h Diff File