mrdoob/three.js — pull request #2843 by bhouston (2012-12-26 18:10:23+00:00)
Title: Improvements to Plane, Matrix3 and Matrix4.

Completed tasks:

* add Plane.intersectLine with unit tests. A line is a finite line segment with a start and an end. This is very useful when clipping triangles/edges against a plane.

* expanded Matrix3 with set, identity, copy, multiplyScalar, deteminant, clone.

* Matrix3/Matrix4.getInverse will now optionally throw an exception (if one sets throwOnInvertible to true.) An invertible matrix is often a really bad thing and it is best to catch them sooner rather than later via throwing exceptions rather than just warning. Trying to get the inverse of an invertible matrix now returns an identity matrix, instead of a garbage matrix, if throwOnInvertible is false.

* Simplified Matrix3.getInverse() by using Matrix3.multiplyScalar, but kept optimized determinant calculation for speed.

* Significantly optimized Matrix4.getInverse() by using the same optimized determination calculation from Matrix3.getInverse()
'
* started unit tests for Matrix3 and Matrix4. All unit tests pass.