float4 operator *(const float4 &lhs, const float3x3 &rhs) { assume(lhs.IsWZeroOrOne()); return float4(rhs.TransformLeft(lhs.xyz()), lhs.w); }
float3 operator *(const float3 &lhs, const float3x3 &rhs) { return rhs.TransformLeft(lhs); }