Math module

reflect_rows

procedureSource

Multiplies the matrix pointed to by the reflection I - u u^T from the left, in place: the same reflection as reflect_cols applied to the columns instead of the rows (it transposes, reflects and transposes back).

Example↗
m := Matrix3_Identity;
reflect_rows(*m, make_reflector(xyz(0, 3, 4)));
assert(abs((m * xyz(0, 3, 4)).z + 5) < 0.0001);
reflect_rows :: (M: *Matrix3, u: Vector3)

Reflects each column of the matrix in place.

Parameters

M: *Matrix3
the matrix to change.
u: Vector3
the reflector, from make_reflector.

See also