@@ -2555,25 +2555,30 @@ EX namespace twist {
25552555
25562556 M[0 ][0 ] = +xx - yy - zz + ww;
25572557 M[1 ][1 ] = -xx + yy - zz + ww;
2558- M[2 ][2 ] = -xx - yy + zz + ww;
2559-
2560- M[0 ][1 ] = -2 * (xy + zw);
2561- M[1 ][0 ] = -2 * (xy - zw);
2562-
2563- M[0 ][2 ] = 2 * (xz - yw);
2564- M[2 ][0 ] = 2 * (xz + yw);
2565-
2566- M[1 ][2 ] = -2 * (yz + xw);
2567- M[2 ][1 ] = -2 * (yz - xw);
25682558
25692559 if (hyperbolic) {
2570- swap (M[0 ][2 ], M[1 ][2 ]);
2571- swap (M[2 ][0 ], M[2 ][1 ]);
2572- M[1 ][2 ] *= -1 ;
2573- M[2 ][0 ] *= -1 ;
25742560 M[2 ][2 ] = xx + yy + zz + ww;
2575- return M;
2576- }
2561+
2562+ M[0 ][1 ] = -2 * (xy + zw);
2563+ M[1 ][0 ] = -2 * (xy - zw);
2564+
2565+ M[0 ][2 ] = -2 * (yz + xw);
2566+ M[2 ][0 ] = 2 * (yz - xw);
2567+
2568+ M[1 ][2 ] = -2 * (xz - yw);
2569+ M[2 ][1 ] = 2 * (xz + yw);
2570+ } else {
2571+ M[2 ][2 ] = -xx - yy + zz + ww;
2572+
2573+ M[0 ][1 ] = -2 * (xy + zw);
2574+ M[1 ][0 ] = -2 * (xy - zw);
2575+
2576+ M[0 ][2 ] = 2 * (xz - yw);
2577+ M[2 ][0 ] = 2 * (xz + yw);
2578+
2579+ M[1 ][2 ] = -2 * (yz + xw);
2580+ M[2 ][1 ] = -2 * (yz - xw);
2581+ }
25772582
25782583
25792584 return M;
0 commit comments