@@ -466,50 +466,23 @@ namespace glm
466466 template <typename T, qualifier Q>
467467 GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<4 , 4 , T, Q> operator *(mat<3 , 4 , T, Q> const & m1, mat<4 , 3 , T, Q> const & m2)
468468 {
469- const T SrcA00 = m1[0 ][0 ];
470- const T SrcA01 = m1[0 ][1 ];
471- const T SrcA02 = m1[0 ][2 ];
472- const T SrcA03 = m1[0 ][3 ];
473- const T SrcA10 = m1[1 ][0 ];
474- const T SrcA11 = m1[1 ][1 ];
475- const T SrcA12 = m1[1 ][2 ];
476- const T SrcA13 = m1[1 ][3 ];
477- const T SrcA20 = m1[2 ][0 ];
478- const T SrcA21 = m1[2 ][1 ];
479- const T SrcA22 = m1[2 ][2 ];
480- const T SrcA23 = m1[2 ][3 ];
481-
482- const T SrcB00 = m2[0 ][0 ];
483- const T SrcB01 = m2[0 ][1 ];
484- const T SrcB02 = m2[0 ][2 ];
485- const T SrcB10 = m2[1 ][0 ];
486- const T SrcB11 = m2[1 ][1 ];
487- const T SrcB12 = m2[1 ][2 ];
488- const T SrcB20 = m2[2 ][0 ];
489- const T SrcB21 = m2[2 ][1 ];
490- const T SrcB22 = m2[2 ][2 ];
491- const T SrcB30 = m2[3 ][0 ];
492- const T SrcB31 = m2[3 ][1 ];
493- const T SrcB32 = m2[3 ][2 ];
494-
495- mat<4 , 4 , T, Q> Result;
496- Result[0 ][0 ] = SrcA00 * SrcB00 + SrcA10 * SrcB01 + SrcA20 * SrcB02;
497- Result[0 ][1 ] = SrcA01 * SrcB00 + SrcA11 * SrcB01 + SrcA21 * SrcB02;
498- Result[0 ][2 ] = SrcA02 * SrcB00 + SrcA12 * SrcB01 + SrcA22 * SrcB02;
499- Result[0 ][3 ] = SrcA03 * SrcB00 + SrcA13 * SrcB01 + SrcA23 * SrcB02;
500- Result[1 ][0 ] = SrcA00 * SrcB10 + SrcA10 * SrcB11 + SrcA20 * SrcB12;
501- Result[1 ][1 ] = SrcA01 * SrcB10 + SrcA11 * SrcB11 + SrcA21 * SrcB12;
502- Result[1 ][2 ] = SrcA02 * SrcB10 + SrcA12 * SrcB11 + SrcA22 * SrcB12;
503- Result[1 ][3 ] = SrcA03 * SrcB10 + SrcA13 * SrcB11 + SrcA23 * SrcB12;
504- Result[2 ][0 ] = SrcA00 * SrcB20 + SrcA10 * SrcB21 + SrcA20 * SrcB22;
505- Result[2 ][1 ] = SrcA01 * SrcB20 + SrcA11 * SrcB21 + SrcA21 * SrcB22;
506- Result[2 ][2 ] = SrcA02 * SrcB20 + SrcA12 * SrcB21 + SrcA22 * SrcB22;
507- Result[2 ][3 ] = SrcA03 * SrcB20 + SrcA13 * SrcB21 + SrcA23 * SrcB22;
508- Result[3 ][0 ] = SrcA00 * SrcB30 + SrcA10 * SrcB31 + SrcA20 * SrcB32;
509- Result[3 ][1 ] = SrcA01 * SrcB30 + SrcA11 * SrcB31 + SrcA21 * SrcB32;
510- Result[3 ][2 ] = SrcA02 * SrcB30 + SrcA12 * SrcB31 + SrcA22 * SrcB32;
511- Result[3 ][3 ] = SrcA03 * SrcB30 + SrcA13 * SrcB31 + SrcA23 * SrcB32;
512- return Result;
469+ return mat<4 , 4 , T, Q>(
470+ m1[0 ][0 ] * m2[0 ][0 ] + m1[1 ][0 ] * m2[0 ][1 ] + m1[2 ][0 ] * m2[0 ][2 ],
471+ m1[0 ][1 ] * m2[0 ][0 ] + m1[1 ][1 ] * m2[0 ][1 ] + m1[2 ][1 ] * m2[0 ][2 ],
472+ m1[0 ][2 ] * m2[0 ][0 ] + m1[1 ][2 ] * m2[0 ][1 ] + m1[2 ][2 ] * m2[0 ][2 ],
473+ m1[0 ][3 ] * m2[0 ][0 ] + m1[1 ][3 ] * m2[0 ][1 ] + m1[2 ][3 ] * m2[0 ][2 ],
474+ m1[0 ][0 ] * m2[1 ][0 ] + m1[1 ][0 ] * m2[1 ][1 ] + m1[2 ][0 ] * m2[1 ][2 ],
475+ m1[0 ][1 ] * m2[1 ][0 ] + m1[1 ][1 ] * m2[1 ][1 ] + m1[2 ][1 ] * m2[1 ][2 ],
476+ m1[0 ][2 ] * m2[1 ][0 ] + m1[1 ][2 ] * m2[1 ][1 ] + m1[2 ][2 ] * m2[1 ][2 ],
477+ m1[0 ][3 ] * m2[1 ][0 ] + m1[1 ][3 ] * m2[1 ][1 ] + m1[2 ][3 ] * m2[1 ][2 ],
478+ m1[0 ][0 ] * m2[2 ][0 ] + m1[1 ][0 ] * m2[2 ][1 ] + m1[2 ][0 ] * m2[2 ][2 ],
479+ m1[0 ][1 ] * m2[2 ][0 ] + m1[1 ][1 ] * m2[2 ][1 ] + m1[2 ][1 ] * m2[2 ][2 ],
480+ m1[0 ][2 ] * m2[2 ][0 ] + m1[1 ][2 ] * m2[2 ][1 ] + m1[2 ][2 ] * m2[2 ][2 ],
481+ m1[0 ][3 ] * m2[2 ][0 ] + m1[1 ][3 ] * m2[2 ][1 ] + m1[2 ][3 ] * m2[2 ][2 ],
482+ m1[0 ][0 ] * m2[3 ][0 ] + m1[1 ][0 ] * m2[3 ][1 ] + m1[2 ][0 ] * m2[3 ][2 ],
483+ m1[0 ][1 ] * m2[3 ][0 ] + m1[1 ][1 ] * m2[3 ][1 ] + m1[2 ][1 ] * m2[3 ][2 ],
484+ m1[0 ][2 ] * m2[3 ][0 ] + m1[1 ][2 ] * m2[3 ][1 ] + m1[2 ][2 ] * m2[3 ][2 ],
485+ m1[0 ][3 ] * m2[3 ][0 ] + m1[1 ][3 ] * m2[3 ][1 ] + m1[2 ][3 ] * m2[3 ][2 ]);
513486 }
514487
515488 template <typename T, qualifier Q>
0 commit comments