Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > by-pkgid > 052d79447130ebaf90b2730395954d11 > files > 985

openvrml-doc-0.18.3-1mdv2010.0.i586.rpm

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
               "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>OpenVRML: openvrml::mat4f Struct Reference</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<link rel="icon" href="../vrml-16">
<link rel="start" href="http://openvrml.org/index" title="OpenVRML Home">
<link rel="prev" href="http://openvrml.org/discussion" title="Discussion">
<link rel="contents" href="index" title="Documentation Main Page">
<link rel="index" href="functions" title="OpenVRML Compound Members">
<link rel="appendix" href="conformance" title="Conformance Test Results">
<style type="text/css">
@import url("tabs.css");
@import url("http://openvrml.org/openvrml.css");

table {
  width: 100%;
}

h2 {
  border-bottom-style: solid;
  border-bottom-width: 1px;
}

/*
 * Doxygen as of 1.5.4-20071217 uses the class "navpath" instead of "nav".
 * For now, we'll do both.
 */

div.nav,
div.navpath {
  background-color: transparent;
  text-align: left;
  margin-top: 1em;
  margin-bottom: 1em;
  border-color: black;
  border-left: none;
  border-right: none;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
}

div.nav :link, div.nav :visited,
div.navpath :link, div.navpath :visited {
  border-width: 1px;
  border-style: solid;
  border-color: silver;
  padding: 2px;
}

div.nav :link:hover, div.nav :visited:hover,
div.navpath :link:hover, div.navpath :visited:hover {
  border-style: outset;
  border-color: gray;
}

div.nav :active,
div.navpath :active {
  border-style: inset;
  border-color: gray;
}

.body td {
  background-color: transparent;
}

.el {
  text-decoration: inherit;
  font-weight: inherit
}
.elRef {
  font-weight: inherit
}
.code:link, .code:visited {
  text-decoration: inherit;
  font-weight: inherit;
  color: inherit;
}
.codeRef:link {
  font-weight: normal;
  color: inherit;
}
:visited {
  color: silver;
}
:link:hover {
  color: inherit;
  text-decoration: inherit;
  background-color: transparent;
}

h1 {
  line-height: 1.2em;
}

td.memItemLeft, td.memItemRight,
td.memTemplParams, td.memTemplItemLeft, td.memTemplItemRight,
.memtemplate, .memname td {
  font-family: Consolas, "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Lucida Console", LucidaTypewriter, monospace;
}

td.memItemLeft, td.memItemRight, td.mdescLeft, td.mdescRight {
  background-color: rgb(95%, 95%, 95%);
  border-color: rgb(65%, 65%, 65%);
  border-width: 1px;
  font-size: smaller;
}

.memItemLeft {
  margin-top: 0.5em;
  border-top-style: solid;
}
.mdescLeft {
  border-bottom-style: solid;
}
.memItemRight {
  border-top-style: solid;
  margin-top: 0.5em;
}
.mdescRight {
  border-bottom-style: solid;
}

.mdescRight {
  font-style: italic;
}

.mdTable {
  background-color: rgb(95%, 95%, 95%);
}

.memproto td code {
  font-family: inherit;
  font-style: italic;
}

td.pass {
  background-color: rgb(50%, 100%, 50%);
}

td.fail {
  background-color: rgb(100%, 50%, 50%);
}

td.invalid {
  background-color: rgb(75%, 75%, 75%);
}

.memitem {
  padding: 0;
}

.memitem table {
  width: auto;
}

.memproto, .memdoc {
  border-width: 1px;
  border-color: rgb(65%, 65%, 65%);
}

.memproto {
  background-color: rgb(90%, 90%, 90%);
  font-weight: inherit;
  font-size: smaller;
  border-top-style: solid;
  border-left-style: solid;
  border-right-style: solid;
  -webkit-border-top-left-radius: 0.6em;
  -webkit-border-top-right-radius: 0.6em;
  -moz-border-radius-topleft: 0.6em;
  -moz-border-radius-topright: 0.6em;
}

.memdoc {
  background-color: rgb(95%, 95%, 95%);
  padding: 2px 5px;
  border-style: solid;
  -webkit-border-bottom-left-radius: 0.6em;
  -webkit-border-bottom-right-radius: 0.6em;
  -moz-border-radius-bottomleft: 0.6em;
  -moz-border-radius-bottomright: 0.6em;
}

.memname {
  font-weight: inherit;
}

div.tabs {
  background-image: url("tab_b-openvrml.png");
}

div.tabs span {
  background-image: url("tab_l-openvrml.png");
}

div.tabs a {
  background-image: url("tab_r-openvrml.png");
  border-bottom: 1px solid #a5a5a5;
}

div.tabs a:link, div.tabs a:visited, div.tabs a:active, div.tabs a:hover {
  color: black;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

.note {
  border: 1px solid rgb(65%, 65%, 65%);
  background-color: rgb(95%, 95%, 95%);
  margin-left: 10%;
  margin-right: 10%;
}
</style>
</head>
<body>
<table class="sitenav">
  <tr>
    <th><a href="http://openvrml.org/index" title="Home">Home</a></th>
    <th><a href="http://openvrml.org/download" title="Download">Download</a></th>
    <th><a href="http://openvrml.org/screenshots/index" title="Screen shots">Screen shots</a></th>
    <th><a href="http://openvrml.org/discussion" title="Mailing lists and IRC">Discussion</a></th>
    <th>Documentation</th>
  </tr>
</table>
<div class="body">
<!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespaceopenvrml.html">openvrml</a>::<a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a>
  </div>
</div>
<div class="contents">
<h1>openvrml::mat4f Struct Reference</h1><!-- doxytag: class="openvrml::mat4f" -->A POD-struct comprising a 4x4 matrix.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;openvrml/basetypes.h&gt;</code>
<p>

<p>
<a href="structopenvrml_1_1mat4f-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#e7564306e1c5cbfe4efc0257e0c321be">operator*=</a> (float scalar)  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply by a scalar.  <a href="#e7564306e1c5cbfe4efc0257e0c321be"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#d7331326bf611bd06102d146156eb3c4">operator*=</a> (const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;<a class="el" href="structopenvrml_1_1mat4f.html#6a99d8fc23244d21696b084a907e881c">mat</a>)  throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply by another matrix.  <a href="#d7331326bf611bd06102d146156eb3c4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float(&amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#178bd3a01a93de50ace3d5c90f13d521">operator[]</a> (const std::size_t index) throw())[4]</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Row access.  <a href="#178bd3a01a93de50ace3d5c90f13d521"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="68770402fbcfe0fbd34b634b53c476ce"></a><!-- doxytag: member="openvrml::mat4f::operator[]" ref="68770402fbcfe0fbd34b634b53c476ce" args="(const std::size_t index) const throw())[4]" -->
const float(&amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (const std::size_t index) const throw())[4]</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#50ed6ee0d9368074c62a757cbbe49945">transformation</a> (<a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;t, <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &amp;r, <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;s) const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the translation, <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> and scale from the orthogonal transformation matrix.  <a href="#50ed6ee0d9368074c62a757cbbe49945"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#fb0ad21b4a417d14855fb2c4701c7d4a">transformation</a> (<a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;t, <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &amp;r, <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;s, <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;shear) const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the translation, <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>, scale and shear from an affine transformation matrix.  <a href="#fb0ad21b4a417d14855fb2c4701c7d4a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#2b206d611eea978219e88741b1b85d14">inverse</a> () const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the inverse of an affine matrix.  <a href="#2b206d611eea978219e88741b1b85d14"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#08206df397ef805482845a2b8e2fdfae">transpose</a> () const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the transposition of the matrix.  <a href="#08206df397ef805482845a2b8e2fdfae"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#ebbdc1a3f1b5e706c9f3f896a319f45c">det</a> () const   throw ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determinant.  <a href="#ebbdc1a3f1b5e706c9f3f896a319f45c"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#6a99d8fc23244d21696b084a907e881c">mat</a> [4][4]</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">4x4 float matrix.  <a href="#6a99d8fc23244d21696b084a907e881c"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Related Functions</h2></td></tr>
<tr><td colspan="2">(Note that these are not member functions.) <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#bee073375f48fa2365531edcbdbbcb25">make_rotation_mat4f</a> (const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &amp;rot) throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> matrix.  <a href="#bee073375f48fa2365531edcbdbbcb25"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#346c24994c96dacf568130326932398a">make_rotation_mat4f</a> (const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &amp;quat) throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> matrix.  <a href="#346c24994c96dacf568130326932398a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#53bcac9fd62e34ab0de3ad6364332156">make_scale_mat4f</a> (const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;s) throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a scale matrix.  <a href="#53bcac9fd62e34ab0de3ad6364332156"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#250ff31bd83d3e71e390f5659d1b9464">make_scale_mat4f</a> (const float s) throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a uniform scale matrix.  <a href="#250ff31bd83d3e71e390f5659d1b9464"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#023cc06c28aa31b6e91714fdca8155ed">make_translation_mat4f</a> (const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;t) throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a translation matrix.  <a href="#023cc06c28aa31b6e91714fdca8155ed"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#0f29ea258d8bdda2674b49508bab780b">make_transformation_mat4f</a> (const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;t, const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &amp;r, const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;s, const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &amp;sr, const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;c) throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a transformation matrix from a translation, a <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>, a scale, a scaleOrientation, and a center.  <a href="#0f29ea258d8bdda2674b49508bab780b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#3ed366d9e9690ae2d6db1824534e484f">make_mat4f</a> (const float f11, const float f12, const float f13, const float f14, const float f21, const float f22, const float f23, const float f24, const float f31, const float f32, const float f33, const float f34, const float f41, const float f42, const float f43, const float f44) throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a <code><a class="el" href="structopenvrml_1_1mat4f.html" title="A POD-struct comprising a 4x4 matrix.">mat4f</a></code> with given 16 elements in row-major order.  <a href="#3ed366d9e9690ae2d6db1824534e484f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#298b59c00b4f96f829e3a1925854618d">make_mat4f</a> () throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an identity matrix.  <a href="#298b59c00b4f96f829e3a1925854618d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#b2e6c0992001f47a2745c2f9ca15dba3">make_mat4f</a> (const float <a class="el" href="structopenvrml_1_1mat4f.html#6a99d8fc23244d21696b084a907e881c">mat</a>[16]) throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a matrix from an array of 16 values.  <a href="#b2e6c0992001f47a2745c2f9ca15dba3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#c4a2eb5b8b561cedea5e01abd0812fc7">make_mat4f</a> (const float(&amp;<a class="el" href="structopenvrml_1_1mat4f.html#6a99d8fc23244d21696b084a907e881c">mat</a>)[4][4]) throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a matrix from a 4x4 array.  <a href="#c4a2eb5b8b561cedea5e01abd0812fc7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#c16b0171cd81b5e9f0dc39279e13e47f">operator*</a> (const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;<a class="el" href="structopenvrml_1_1mat4f.html#6a99d8fc23244d21696b084a907e881c">mat</a>, const float scalar) throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply a matrix by a scalar value.  <a href="#c16b0171cd81b5e9f0dc39279e13e47f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#b0da51e37f8e885375e1f23b413c96a6">operator*</a> (const float scalar, const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;<a class="el" href="structopenvrml_1_1mat4f.html#6a99d8fc23244d21696b084a907e881c">mat</a>) throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply a scalar value by matrix.  <a href="#b0da51e37f8e885375e1f23b413c96a6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#4b7c7f0185189b521438b86386425182">operator*</a> (const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;lhs, const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;rhs) throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply two matrices.  <a href="#4b7c7f0185189b521438b86386425182"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::istream &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#3d367c166be16860efe82f186654010b">operator&gt;&gt;</a> (std::istream &amp;in, <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stream input.  <a href="#3d367c166be16860efe82f186654010b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::ostream &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#3ae39a66e8fa8508c8630f27479e4fcb">operator&lt;&lt;</a> (std::ostream &amp;out, const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;<a class="el" href="structopenvrml_1_1mat4f.html#6a99d8fc23244d21696b084a907e881c">mat</a>)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stream output.  <a href="#3ae39a66e8fa8508c8630f27479e4fcb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#5470c5abaf1c5542d5bc88ca9e21bb5f">operator==</a> (const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;lhs, const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;rhs) throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Equality comparison operator.  <a href="#5470c5abaf1c5542d5bc88ca9e21bb5f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1mat4f.html#bd933aa9bde5963758db140a3de28f53">operator!=</a> (const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;lhs, const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;rhs) throw()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inequality comparison operator.  <a href="#bd933aa9bde5963758db140a3de28f53"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A POD-struct comprising a 4x4 matrix. 
<p>
Matrices are stored in row-major order. <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="e7564306e1c5cbfe4efc0257e0c321be"></a><!-- doxytag: member="openvrml::mat4f::operator*=" ref="e7564306e1c5cbfe4efc0257e0c321be" args="(float scalar)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> &amp; openvrml::mat4f::operator*=           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>scalar</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply by a scalar. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>scalar</em>&nbsp;</td><td>value by which to multiply.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a reference to the object. </dd></dl>

</div>
</div><p>
<a class="anchor" name="d7331326bf611bd06102d146156eb3c4"></a><!-- doxytag: member="openvrml::mat4f::operator*=" ref="d7331326bf611bd06102d146156eb3c4" args="(const mat4f &amp;mat)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> &amp; openvrml::mat4f::operator*=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>mat</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply by another matrix. 
<p>
Sets the matrix equal to the matrix multiplied by <code>mat</code>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>mat</em>&nbsp;</td><td>the matrix by which to multiply.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a reference to the object. </dd></dl>

</div>
</div><p>
<a class="anchor" name="178bd3a01a93de50ace3d5c90f13d521"></a><!-- doxytag: member="openvrml::mat4f::operator[]" ref="178bd3a01a93de50ace3d5c90f13d521" args="(const std::size_t index) throw())[4]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const float(&amp; openvrml::mat4f::operator[]           </td>
          <td>(</td>
          <td class="paramtype">const std::size_t&nbsp;</td>
          <td class="paramname"> <em>index</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>)[4]<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Row access. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>index</em>&nbsp;</td><td>row index.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>row <code>index</code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="50ed6ee0d9368074c62a757cbbe49945"></a><!-- doxytag: member="openvrml::mat4f::transformation" ref="50ed6ee0d9368074c62a757cbbe49945" args="(vec3f &amp;t, rotation &amp;r, vec3f &amp;s) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::mat4f::transformation           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the translation, <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> and scale from the orthogonal transformation matrix. 
<p>
Any projection or shear information in the matrix is ignored. The caller is responsible for assuring that the transformation is in fact orthogonal; otherwise the results are undefined.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>t</em>&nbsp;</td><td>translation. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>r</em>&nbsp;</td><td><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>scale. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="fb0ad21b4a417d14855fb2c4701c7d4a"></a><!-- doxytag: member="openvrml::mat4f::transformation" ref="fb0ad21b4a417d14855fb2c4701c7d4a" args="(vec3f &amp;t, rotation &amp;r, vec3f &amp;s, vec3f &amp;shear) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void openvrml::mat4f::transformation           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>shear</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the translation, <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>, scale and shear from an affine transformation matrix. 
<p>
Any projection information in the matrix is ignored. As VRML allows non-uniform scaling, it is safe to call this routine. The caller is responsible for assuring that the transformation matrix is in fact affine; otherwise the results are undefined.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>t</em>&nbsp;</td><td>translation. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>r</em>&nbsp;</td><td><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>scale. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>shear</em>&nbsp;</td><td>shear. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="2b206d611eea978219e88741b1b85d14"></a><!-- doxytag: member="openvrml::mat4f::inverse" ref="2b206d611eea978219e88741b1b85d14" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> openvrml::mat4f::inverse           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the inverse of an affine matrix. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the inverse of the matrix.</dd></dl>
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>the current matrix must be affine. </dd></dl>

</div>
</div><p>
<a class="anchor" name="08206df397ef805482845a2b8e2fdfae"></a><!-- doxytag: member="openvrml::mat4f::transpose" ref="08206df397ef805482845a2b8e2fdfae" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> openvrml::mat4f::transpose           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the transposition of the matrix. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a transposed copy of the matrix. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ebbdc1a3f1b5e706c9f3f896a319f45c"></a><!-- doxytag: member="openvrml::mat4f::det" ref="ebbdc1a3f1b5e706c9f3f896a319f45c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float openvrml::mat4f::det           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Determinant. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the determinant. </dd></dl>

</div>
</div><p>
<hr><h2>Friends And Related Function Documentation</h2>
<a class="anchor" name="bee073375f48fa2365531edcbdbbcb25"></a><!-- doxytag: member="openvrml::mat4f::make_rotation_mat4f" ref="bee073375f48fa2365531edcbdbbcb25" args="(const rotation &amp;rot)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> make_rotation_mat4f           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rot</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> matrix. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rot</em>&nbsp;</td><td>a <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a matrix representation of <code>rot</code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="346c24994c96dacf568130326932398a"></a><!-- doxytag: member="openvrml::mat4f::make_rotation_mat4f" ref="346c24994c96dacf568130326932398a" args="(const quatf &amp;quat)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> make_rotation_mat4f           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>quat</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> matrix. 
<p>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>quat</em>&nbsp;</td><td>a quaternion.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a matrix representation of <code>quat</code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="53bcac9fd62e34ab0de3ad6364332156"></a><!-- doxytag: member="openvrml::mat4f::make_scale_mat4f" ref="53bcac9fd62e34ab0de3ad6364332156" args="(const vec3f &amp;s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> make_scale_mat4f           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a scale matrix. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>a vector.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a scale matrix. </dd></dl>

</div>
</div><p>
<a class="anchor" name="250ff31bd83d3e71e390f5659d1b9464"></a><!-- doxytag: member="openvrml::mat4f::make_scale_mat4f" ref="250ff31bd83d3e71e390f5659d1b9464" args="(const float s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> make_scale_mat4f           </td>
          <td>(</td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a uniform scale matrix. 
<p>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>scale factor.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a uniform scale matrix. </dd></dl>

</div>
</div><p>
<a class="anchor" name="023cc06c28aa31b6e91714fdca8155ed"></a><!-- doxytag: member="openvrml::mat4f::make_translation_mat4f" ref="023cc06c28aa31b6e91714fdca8155ed" args="(const vec3f &amp;t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> make_translation_mat4f           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a translation matrix. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>t</em>&nbsp;</td><td>translation vector.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a translation matrix. </dd></dl>

</div>
</div><p>
<a class="anchor" name="0f29ea258d8bdda2674b49508bab780b"></a><!-- doxytag: member="openvrml::mat4f::make_transformation_mat4f" ref="0f29ea258d8bdda2674b49508bab780b" args="(const vec3f &amp;t, const rotation &amp;r, const vec3f &amp;s, const rotation &amp;sr, const vec3f &amp;c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> make_transformation_mat4f           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>sr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>c</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a transformation matrix from a translation, a <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>, a scale, a scaleOrientation, and a center. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>t</em>&nbsp;</td><td>the translation. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>r</em>&nbsp;</td><td>the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>the scale. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>sr</em>&nbsp;</td><td>the scale orientation. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>c</em>&nbsp;</td><td>the center.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a transformation matrix. </dd></dl>

</div>
</div><p>
<a class="anchor" name="3ed366d9e9690ae2d6db1824534e484f"></a><!-- doxytag: member="openvrml::mat4f::make_mat4f" ref="3ed366d9e9690ae2d6db1824534e484f" args="(const float f11, const float f12, const float f13, const float f14, const float f21, const float f22, const float f23, const float f24, const float f31, const float f32, const float f33, const float f34, const float f41, const float f42, const float f43, const float f44)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> make_mat4f           </td>
          <td>(</td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f11</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f12</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f13</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f14</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f21</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f22</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f23</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f24</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f31</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f32</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f33</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f34</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f41</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f42</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f43</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>f44</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a <code><a class="el" href="structopenvrml_1_1mat4f.html" title="A POD-struct comprising a 4x4 matrix.">mat4f</a></code> with given 16 elements in row-major order. 
<p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ \left[ \begin{array}{cccc} f_{11} &amp; f_{12} &amp; f_{13} &amp; f_{14} \\ f_{21} &amp; f_{22} &amp; f_{23} &amp; f_{24} \\ f_{31} &amp; f_{32} &amp; f_{33} &amp; f_{34} \\ f_{41} &amp; f_{42} &amp; f_{43} &amp; f_{44} \\ \end{array} \right] \]" src="form_0.png">
<p>
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f11</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f12</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f13</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f14</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f21</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f22</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f23</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f24</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f31</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f32</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f33</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f34</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f41</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f42</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f43</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>f44</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="structopenvrml_1_1mat4f.html" title="A POD-struct comprising a 4x4 matrix.">mat4f</a></code> with given 16 elements in row-major order. </dd></dl>

</div>
</div><p>
<a class="anchor" name="298b59c00b4f96f829e3a1925854618d"></a><!-- doxytag: member="openvrml::mat4f::make_mat4f" ref="298b59c00b4f96f829e3a1925854618d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> make_mat4f           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an identity matrix. 
<p>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. <dl class="return" compact><dt><b>Returns:</b></dt><dd>an identity matrix. </dd></dl>

</div>
</div><p>
<a class="anchor" name="b2e6c0992001f47a2745c2f9ca15dba3"></a><!-- doxytag: member="openvrml::mat4f::make_mat4f" ref="b2e6c0992001f47a2745c2f9ca15dba3" args="(const float mat[16])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> make_mat4f           </td>
          <td>(</td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>mat</em>[16]          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a matrix from an array of 16 values. 
<p>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. <dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>mat</code> points to a sequence of at least 16 <code>float</code> values.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>mat</em>&nbsp;</td><td>a pointer to a sequence of 16 <code>float</code> values in row-major order.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="structopenvrml_1_1mat4f.html" title="A POD-struct comprising a 4x4 matrix.">mat4f</a></code> containing the values in <code>mat</code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="c4a2eb5b8b561cedea5e01abd0812fc7"></a><!-- doxytag: member="openvrml::mat4f::make_mat4f" ref="c4a2eb5b8b561cedea5e01abd0812fc7" args="(const float(&amp;mat)[4][4])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> make_mat4f           </td>
          <td>(</td>
          <td class="paramtype">const float(&amp;)&nbsp;</td>
          <td class="paramname"> <em>mat</em>[4][4]          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a matrix from a 4x4 array. 
<p>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>mat</em>&nbsp;</td><td>a 4x4 array of elements in row-major order.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="structopenvrml_1_1mat4f.html" title="A POD-struct comprising a 4x4 matrix.">mat4f</a></code> containing the values in <code>mat</code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="c16b0171cd81b5e9f0dc39279e13e47f"></a><!-- doxytag: member="openvrml::mat4f::operator*" ref="c16b0171cd81b5e9f0dc39279e13e47f" args="(const mat4f &amp;mat, const float scalar)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> operator*           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>mat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>scalar</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply a matrix by a scalar value. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>mat</em>&nbsp;</td><td>matrix. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>scalar</em>&nbsp;</td><td>scalar.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the result matrix. </dd></dl>

</div>
</div><p>
<a class="anchor" name="b0da51e37f8e885375e1f23b413c96a6"></a><!-- doxytag: member="openvrml::mat4f::operator*" ref="b0da51e37f8e885375e1f23b413c96a6" args="(const float scalar, const mat4f &amp;mat)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> operator*           </td>
          <td>(</td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>scalar</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>mat</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply a scalar value by matrix. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>scalar</em>&nbsp;</td><td>scalar. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>mat</em>&nbsp;</td><td>matrix.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the result matrix. </dd></dl>

</div>
</div><p>
<a class="anchor" name="4b7c7f0185189b521438b86386425182"></a><!-- doxytag: member="openvrml::mat4f::operator*" ref="4b7c7f0185189b521438b86386425182" args="(const mat4f &amp;lhs, const mat4f &amp;rhs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structopenvrml_1_1mat4f.html">openvrml::mat4f</a> operator*           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rhs</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply two matrices. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lhs</em>&nbsp;</td><td>left-hand operand. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rhs</em>&nbsp;</td><td>right-hand operand.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the result matrix. </dd></dl>

</div>
</div><p>
<a class="anchor" name="3d367c166be16860efe82f186654010b"></a><!-- doxytag: member="openvrml::mat4f::operator&gt;&gt;" ref="3d367c166be16860efe82f186654010b" args="(std::istream &amp;in, mat4f &amp;m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::istream &amp; operator&gt;&gt;           </td>
          <td>(</td>
          <td class="paramtype">std::istream &amp;&nbsp;</td>
          <td class="paramname"> <em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>m</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Stream input. 
<p>
Consistent with the VRML97 convention, commas (&ldquo;<code></code>,&rdquo;) in the input are treated as whitespace.<p>
Optionally, brackets may be used in the input to group the rows; i.e., the following syntaxes are accepted:<p>
<ul>
<li>[&nbsp;<em>f<sub>11</sub></em>,&nbsp;... <em>f<sub>14</sub></em>&nbsp;],&nbsp;... [&nbsp;<em>f<sub>41</sub></em>,&nbsp;... <em>f<sub>44</sub></em>&nbsp;]</li><li><em>f<sub>11</sub></em>, <em>f<sub>12</sub></em>,&nbsp;... <em>f<sub>44</sub></em></li></ul>
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>in</em>&nbsp;</td><td>input stream. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>m</em>&nbsp;</td><td>a matrix.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>in</code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="3ae39a66e8fa8508c8630f27479e4fcb"></a><!-- doxytag: member="openvrml::mat4f::operator&lt;&lt;" ref="3ae39a66e8fa8508c8630f27479e4fcb" args="(std::ostream &amp;out, const mat4f &amp;mat)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream &amp; operator&lt;&lt;           </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&nbsp;</td>
          <td class="paramname"> <em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>mat</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Stream output. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>out</em>&nbsp;</td><td>an output stream. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>mat</em>&nbsp;</td><td>a matrix.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>out</code>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="5470c5abaf1c5542d5bc88ca9e21bb5f"></a><!-- doxytag: member="openvrml::mat4f::operator==" ref="5470c5abaf1c5542d5bc88ca9e21bb5f" args="(const mat4f &amp;lhs, const mat4f &amp;rhs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool operator==           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rhs</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Equality comparison operator. 
<p>
All componenents must match exactly.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lhs</em>&nbsp;</td><td>a matrix. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rhs</em>&nbsp;</td><td>a matrix.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>true</code> if <code>lhs</code> and <code>rhs</code> are equivalent; <code>false</code> otherwise. </dd></dl>

</div>
</div><p>
<a class="anchor" name="bd933aa9bde5963758db140a3de28f53"></a><!-- doxytag: member="openvrml::mat4f::operator!=" ref="bd933aa9bde5963758db140a3de28f53" args="(const mat4f &amp;lhs, const mat4f &amp;rhs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool operator!=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rhs</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> throw()<code> [related]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Inequality comparison operator. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lhs</em>&nbsp;</td><td>a matrix. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rhs</em>&nbsp;</td><td>a matrix.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>true</code> if <code>lhs</code> and <code>rhs</code> are not equivalent; <code>false</code> otherwise. </dd></dl>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="6a99d8fc23244d21696b084a907e881c"></a><!-- doxytag: member="openvrml::mat4f::mat" ref="6a99d8fc23244d21696b084a907e881c" args="[4][4]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="structopenvrml_1_1mat4f.html#6a99d8fc23244d21696b084a907e881c">openvrml::mat4f::mat</a>[4][4]          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
4x4 float matrix. 
<p>

</div>
</div><p>
</div>
</div>
<address class="footer"><span class="images"><a href="http://web3d.org/x3d/"><img src="x3d-white-on-black.png" width="43" height="32" border="0" alt="X3D"></a><a href="http://opengl.org"><img src="OGL_sm_wht.png" width="68" height="32" border="0" alt="OpenGL"></a><a href="http://sourceforge.net/projects/openvrml"><img src="http://sourceforge.net/sflogo.php?group_id=7151&amp;type=11" width="120" height="30" border="0" alt="SourceForge.net"></a></span><a href="https://sourceforge.net/apps/trac/openvrml/newticket">Report error</a><br>Generated Thu Aug 13 02:49:16 2009 by Doxygen 1.5.8</address>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
<script type="text/javascript">_uacct = "UA-446379-2"; urchinTracker();</script>
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://sourceforge.net/apps/piwik/openvrml/" : "http://sourceforge.net/apps/piwik/openvrml/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
piwik_action_name = '';
piwik_idsite = 1;
piwik_url = pkBaseURL + "piwik.php";
piwik_log(piwik_action_name, piwik_idsite, piwik_url);
</script>
<object><noscript><p><img src="http://sourceforge.net/apps/piwik/openvrml/piwik.php?idsite=1" alt="piwik"/></p></noscript></object>
<!-- End Piwik Tag -->
</body>
</html>