#include <revolution/mtx.h>
void C_MTXConcatArray (const Mtx a, const Mtx* srcBase, Mtx* dstBase, u32 count );
void PSMTXConcatArray (const Mtx a, const Mtx* srcBase, Mtx* dstBase, u32 count );
#define MTXConcatArray C_MTXConcatArray // for debug build
#define MTXConcatArray PSMTXConcatArray // for nondebug build
| a | First matrix for multiply. a may be either a Mtx or a MtxPtr. |
| srcBase | Pointer to first matrix of source matrix array for multiply. (As second matrix for each concatenation.) |
| dstBase | Pointer to first matrix of destination matrix array. |
| count | Number of contiguous array elements to multiply. count should be greater than 1. |
OK if srcBase=dstBase.But the condition srcBase<dstBase<(srcBase+count-1)must be avoided.
None.
Performs matrix concatenation for arrays. Multiplies ( a x srcBase[n] ) and places the result in dstBase[n] (0<n<count). Matrices are treated as row-major for multiplication purposes.
For arrays of matrices, this function is more efficient than calling MTXConcat in a loop as it saves the overhead of repeated function calls.
During a debug build, MTXConcatArray is interpreted as C_MTXConcatArray, which is a normal C language version. During a nondebug build for a Broadway processor, the paired-singles equivalent of this function, PSMTXConcatArray, will be automatically substituted. You can also call C_MTXConcatArray or PSMTXConcatArray explicitly.
Note: Some calculation errors may be expected between C version and paired-single version because of processing order differences.
03/01/2006 Initial version.