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>MTXInvXpose</TITLE>
9</HEAD>
10<BODY>
11<H1 align="left">MTXInvXpose</H1>
12
13<H2 align="left">Syntax</H2>
14<dl><dd><pre class="construction">
15#include &lt;revolution/mtx.h&gt;
16
17
18u32 C_MTXInvXpose ( const Mtx  src , Mtx  invX );
19u32 PSMTXInvXpose ( const Mtx  src , Mtx  invX );
20
21#define MTXInvXpose&nbsp; C_MTXInvXpose // for debug build
22#define MTXInvXpose&nbsp; PSMTXInvXpose // for nondebug build
23</pre></dd></dl>
24
25<H2 align="left">Arguments</H2>
26<TABLE class="arguments" border="1" >
27  <TBODY>
28    <TR>
29<TH>src</TH>
30<TD>Matrix to be inverted and transposed. <code><em><strong>src</strong></em></code> may be either a <a href="../Structures/Mtx_MtxPtr.html">Mtx</a> or a <a     href="../Structures/Mtx_MtxPtr.html">MtxPtr</a>.</TD>
31    </TR>
32    <TR>
33<TH>invX</TH>
34<TD>Result of transposing the inverse of the source matrix. <code><em><strong>src</strong></em></code> may be either a <a href="../Structures/Mtx_MtxPtr.html">Mtx</a> or a <a     href="../Structures/Mtx_MtxPtr.html">MtxPtr</a>. It is okay if <SPAN class="argument">src</SPAN>=<SPAN class="argument">invX</SPAN>.</TD>
35    </TR>
36  </TBODY>
37</TABLE>
38
39<H2 align="left">Return Values</H2>
40<P>Returns 0 if the specified matrix has no inverse. <SPAN class="argument">invX</SPAN> is not changed in this case.</P>
41<P>Returns 1 when successful.</P>
42
43<H2 align="left">Description</H2>
44<P>This function computes inverse-transpose of a given 3x4 matrix, which is equivalent to the result from the following operations.</P>
45<dl><dd><pre class="construction">
46Mtx inv;
47MTXInverse( src, inv );
48MTXTranspose( inv, invX );
49</pre></dd></dl>
50
51<P>The operation is common for computing normal transform matrices from position transform matrices. Because the use of this function can reduce unnecessary calculations, the performance will better than with the combination of the two aforementioned functions.</P>
52<P>During a debug build, <code>MTXInvXpose</code> is interpreted as <code>C_MTXInvXpose</code>, which is a normal C language version. During a nondebug build for a Broadway processor, the paired-singles equivalent of this function, <code><font face="Courier New">PSMTXInvXpose</font></code>, will be automatically substituted. You can also call each of <code>C_MTXInvXpose/PSMTXInvXpose</code> explicitly.</P>
53<P>The C version of this function becomes more efficient if <code><em><strong>src</strong></em></code> is not equal to <em><strong><code>invX</code></strong></em>, because it saves a copy operation from a temporary matrix.</P>
54
55<H2 align="left">See Also</H2>
56<P class="reference">
57<A href="../structures/Mtx_MtxPtr.html">Mtx, MtxPtr</A>,
58<A href="MTXInverse.html">MTXInverse</A>,
59<A href="MTXTranspose.html">MTXTranspose</A>,
60<A href="../stack/MTXPushInvXpose.html">MTXPushInvXpose</A>
61</P>
62
63<H2>Revision History</H2>
64<P>
652006/03/01 Initial version.<br>
66</P>
67
68<hr><p>CONFIDENTIAL</p></body>
69</HTML>