1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<HTML> 3<HEAD> 4<META http-equiv="Content-Type" content="text/html; charset=windows-1252"> 5<META name="GENERATOR" content="Microsoft FrontPage 5.0"> 6<META http-equiv="Content-Style-Type" content="text/css"> 7<LINK rel="stylesheet" type="text/css" href="../../CSS/revolution.css"> 8<TITLE>MTXMultVecSR</TITLE> 9</HEAD> 10<BODY> 11<H1 align="left">MTXMultVecSR</H1> 12<H2 align="left">C Specification</H2> 13<BLOCKQUOTE><CODE><CODE>#include <revolution/mtx.h></CODE></CODE></BLOCKQUOTE> 14<BLOCKQUOTE><CODE><CODE>void C_MTXMultVecSR ( const Mtx <EM>m</EM>, const Vec* <EM>src</EM>, Vec* <EM>dst</EM> );<BR> void PSMTXMultVecSR ( const Mtx <EM>m</EM>, const Vec* <EM>src</EM>, Vec* <EM>dst</EM> );<BR> <BR> #define MTXMultVecSR C_MTXMultVecSR // for debug build<BR> #define MTXMultVecSR PSMTXMultVecSR // for nondebug build</CODE></CODE></BLOCKQUOTE> 15<H2 align="left">Arguments</H2> 16<DIV align="left"> 17<TABLE border="1" cellpadding="3" cellspacing="0.1"> 18 <TBODY> 19 <TR> 20<TD width="120" bgcolor="#ffffe8"><CODE><STRONG><EM>m</EM></STRONG></CODE></TD> 21<TD width="520">Source matrix for multiply. <code><em><strong>m</strong></em></code> is unaffected by this function. <code><em><strong>m</strong></em></code> may be either an <A href="../structures/Mtx_MtxPtr.html"><code>Mtx</code></a> or an <A href="../structures/Mtx_MtxPtr.html"><code>MtxPtr</code></a>.</TD> 22 </TR> 23 <TR> 24<TD width="120" bgcolor="#ffffe8"><CODE><STRONG><EM>src</EM></STRONG></CODE></TD> 25<TD width="520">Pointer to source <A href="../structures/Vec_VecPtr.html"><CODE>Vec</CODE></A>, the source vector to be multiplied. <code><em><strong>src</strong></em></code> may also be a pointer to a <A href="../structures/Point3d_Point3dPtr.html"><CODE>Point3d</CODE></A>.</TD> 26 </TR> 27 <TR> 28<TD width="120" bgcolor="#ffffe8"><CODE><STRONG><EM>dst</EM></STRONG></CODE></TD> 29<TD width="520">Pointer to the resulting <A href="../structures/Vec_VecPtr.html"><CODE>Vec</CODE></A>, the result of the (<EM><STRONG><CODE><VAR>m</VAR></CODE></STRONG></EM> <SUB>3x3</SUB> x <EM><STRONG><CODE>src</CODE></STRONG></EM>) multiplication. <code><em><strong>dst</STRONG></EM></code> may also be a pointer to a <A href="../structures/Point3d_Point3dPtr.html"><CODE>Point3d</CODE></A>. <CODE><EM><STRONG>src</STRONG></EM></CODE> can be the same as <CODE><EM><STRONG>dst</STRONG></EM></CODE>.</TD> 30 </TR> 31 </TBODY> 32</TABLE> 33</DIV> 34<H2 align="left">Return Values</H2> 35<P align="left">None.</P> 36<H2 align="left">Description</H2> 37<P align="left">Multiplies a 3D vector or 3D point on the left with a 3x3 sub-matrix (<u>S</u>cale and <u>R</u>otate component of 3x4 matrix <CODE><EM><STRONG>m</STRONG></EM></CODE>).</P> 38<P align="left">During a debug build, <code>MTXMultVecSR</code> is interpreted as <code>C_MTXMultVecSR</code>, which is a normal C language version. During a nondebug build for a Broadway processor, the paired-singles equivalent of this function, <code>PSMTXMultVecSR</code>, will be automatically substituted. You can also call <code>C_MTXMultVecSR</CODE> or <CODE>PSMTXMultVecSR</code> explicitly.</P> 39<TABLE border="0" width="59%" cellpadding="0" cellspacing="0"> 40 <TBODY> 41 <TR> 42 <TD width="4%" nowrap></TD> 43<TD width="6%" nowrap>| m00 </TD> 44<TD width="5%" nowrap> m01 </TD> 45<TD width="6%" nowrap> m02 </TD> 46<TD width="6%" nowrap> m03 |</TD> 47 <TD width="6%" nowrap></TD> 48 <TD width="7%" nowrap></TD> 49<TD width="5%" nowrap>| m00 </TD> 50<TD width="4%" nowrap> m01 </TD> 51<TD width="4%" nowrap> m02 |</TD> 52 <TD width="22%" nowrap></TD> 53 </TR> 54 <TR> 55<TD width="4%" nowrap>When <CODE><EM><STRONG>m</STRONG></EM></CODE> = </TD> 56<TD width="6%" nowrap>| m10 </TD> 57<TD width="5%" nowrap> m11 </TD> 58<TD width="6%" nowrap> m12 </TD> 59<TD width="6%" nowrap> m13 |</TD> 60<TD width="6%" nowrap>, </TD> 61<TD width="7%" nowrap> <tt><em><strong>dst</strong></em></tt> = </TD> 62<TD width="5%" nowrap>| m10 </TD> 63<TD width="4%" nowrap> m11 </TD> 64<TD width="4%" nowrap> m12 |</TD> 65<TD width="22%" nowrap> x <CODE><EM><STRONG>src</STRONG></EM></CODE>.</TD> 66 </TR> 67 <TR> 68 <TD width="4%" nowrap></TD> 69<TD width="6%" nowrap>| m20 </TD> 70<TD width="5%" nowrap> m21 </TD> 71<TD width="6%" nowrap> m22 </TD> 72<TD width="6%" nowrap> m23 |</TD> 73 <TD width="6%" nowrap></TD> 74 <TD width="7%" nowrap></TD> 75<TD width="5%" nowrap>| m20 </TD> 76<TD width="4%" nowrap> m21 </TD> 77<TD width="4%" nowrap> m22 |</TD> 78 <TD width="22%" nowrap></TD> 79 </TR> 80 </TBODY> 81</TABLE> 82 83 84<H2 align="left">See Also</H2> 85<P align="left"><A href="../structures/Mtx_MtxPtr.html"><CODE>Mtx, MtxPtr</A></CODE>, <A href="../structures/Point3d_Point3dPtr.html"><CODE>Point3d, Point3dPtr</A></CODE>, <CODE><A href="../structures/Vec_VecPtr.html">Vec, VecPtr</A></CODE>, <A href="MTXMultVec.html"><CODE>MTXMultVec</CODE></A>, <CODE><A href="MTXMultVecArray.html">MTXMultVecArray</A></CODE>, <CODE><A href="MTXMultVecArraySR.html">MTXMultVecArraySR</A></CODE></P> 86<H2>Revision History</H2> 87<P>2006/03/01 Initial version.</P> 88<hr> 89<P>CONFIDENTIAL</p> 90</BODY> 91</HTML>