MulManyVec3Mat33DivZ_F16
Multiplies a 3x3 matrix of 16.16 values by 1 or more 3-coordinate vectors of 16.16 values, then multiplies x and y elements of the result vector by ratio of n/z.
Synopsis
void MulManyVec3Mat33DivZ_F16( mmv3m33d *s )
Description
This function multiplies a 3x3 matrix of 16.16 fractions by one or more 3-coordinate vectors of 16.16 values. It then multiplies the x and y elements of the result vector {x, y, z} by the ratio of n/z, and deposits the result vector {x*n/z, y*n/z, z} in the product vector dest. This function can be used to perform the final projection transformation on points just before rendering.
This function uses the structure mmv3m33d. Here is its definition:
// structure to pass arguments to MulManyVec3Mat33DivZ_F16 function typedef struct mmv3m3dd{vec3f16*dest; vec3f16*src;mat33f16*mat; frac16n; uint32count;} mmv3m33d;
Arguments
- s->dest
- A pointer to the destination vector to store
- results.
- s->vec
- A pointer to the vector to multiply.
- s->mat
- A pointer to the 3 X 3 matrix of 16.16
- fractions to multiply.
- s->n
- Scale factor to be multiplied by x and y
- projected results.
- s->count
- Number of vectors for the multiplication.
Implementation
SWI implemented in operamath V20.
Associated Files
operamath.h
See Also
MulManyVec3Mat33_F16
()