MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / vm_MatrixMulTMatrix

Function vm_MatrixMulTMatrix

vecmat/vector.cpp:363–379  ·  view source on GitHub ↗

Multiply a matrix times the transpose of a matrix

Source from the content-addressed store, hash-verified

361
362// Multiply a matrix times the transpose of a matrix
363void vm_MatrixMulTMatrix(matrix *dest, matrix *src0, matrix *src1) {
364 // For multiplying two 3x3 matrices together
365
366 assert((dest != src0) && (dest != src1));
367
368 dest->rvec.x = src0->rvec.x * src1->rvec.x + src0->uvec.x * src1->uvec.x + src0->fvec.x * src1->fvec.x;
369 dest->uvec.x = src0->rvec.x * src1->rvec.y + src0->uvec.x * src1->uvec.y + src0->fvec.x * src1->fvec.y;
370 dest->fvec.x = src0->rvec.x * src1->rvec.z + src0->uvec.x * src1->uvec.z + src0->fvec.x * src1->fvec.z;
371
372 dest->rvec.y = src0->rvec.y * src1->rvec.x + src0->uvec.y * src1->uvec.x + src0->fvec.y * src1->fvec.x;
373 dest->uvec.y = src0->rvec.y * src1->rvec.y + src0->uvec.y * src1->uvec.y + src0->fvec.y * src1->fvec.y;
374 dest->fvec.y = src0->rvec.y * src1->rvec.z + src0->uvec.y * src1->uvec.z + src0->fvec.y * src1->fvec.z;
375
376 dest->rvec.z = src0->rvec.z * src1->rvec.x + src0->uvec.z * src1->uvec.x + src0->fvec.z * src1->fvec.x;
377 dest->uvec.z = src0->rvec.z * src1->rvec.y + src0->uvec.z * src1->uvec.y + src0->fvec.z * src1->fvec.y;
378 dest->fvec.z = src0->rvec.z * src1->rvec.z + src0->uvec.z * src1->uvec.z + src0->fvec.z * src1->fvec.z;
379}
380
381matrix operator*(matrix src0, matrix src1) {
382 // For multiplying two 3x3 matrices together

Callers 3

HObjectPlaceFunction · 0.50
ResetGroundObjectFunction · 0.50
ComputePlacedRoomMatrixFunction · 0.50

Calls

no outgoing calls

Tested by

no test coverage detected