float4 MUST_USE_RESULT Quat::Transform(const float4 &vec) const { assume(vec.IsWZeroOrOne()); #if defined(MATH_AUTOMATIC_SSE) && defined(MATH_SSE) return quat_transform_vec4(q, vec); #else return float4(Transform(vec.x, vec.y, vec.z), vec.w); #endif }
float4 Quat::Transform(const float4 &vec) const { assume(vec.IsWZeroOrOne()); return float4(Transform(vec.x, vec.y, vec.z), vec.w); }
float4 operator *(const float4 &lhs, const float3x3 &rhs) { assume(lhs.IsWZeroOrOne()); return float4(rhs.TransformLeft(lhs.xyz()), lhs.w); }