Site Tools


documentation:development:opera:pf25:ppgfldr:pgsfldr:spr:03spr049

MulManyVec3Mat33DivZ_F16

Multiplies a 3×3 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 3×3 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 storeresults.
  • s→vec A pointer to the vector to multiply.
  • s→mat A pointer to the 3 X 3 matrix of 16.16fractions to multiply.
  • s→n Scale factor to be multiplied by x and yprojected results.
  • s→count Number of vectors for the multiplication.

Implementation

SWI implemented in operamath V20.

Associated Files

operamath.h

See Also

MulManyVec3Mat33_F16()

documentation/development/opera/pf25/ppgfldr/pgsfldr/spr/03spr049.txt · Last modified: 2022/10/10 16:53 by 127.0.0.1