Cycles: svn merge -r39870:r40266 https://svn.blender.org/svnroot/bf-blender/trunk...
[blender-staging.git] / intern / cycles / util / util_transform.cpp
index 5c2f28af31887bcd524a756bf359899a29cc19d1..8c5eac2cbb95fa0d269d08fc207bac90b6d268b6 100644 (file)
@@ -129,13 +129,15 @@ static bool transform_matrix4_gj_inverse(float R[][4], float M[][4])
 
 Transform transform_inverse(const Transform& tfm)
 {
-       Transform R = transform_identity();
-       Transform M = tfm;
+       union { Transform T; float M[4][4]; } R, M;
+       
+       R.T = transform_identity();
+       M.T = tfm;
 
-       if(!transform_matrix4_gj_inverse((float(*)[4])&R, (float(*)[4])&M))
+       if(!transform_matrix4_gj_inverse(R.M, M.M))
                return transform_identity();
 
-       return R;
+       return R.T;
 }
 
 CCL_NAMESPACE_END