<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>OpenVRML: openvrml::quatf 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 Page</span></a></li> <li><a href="pages.html"><span>Related 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 List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="namespaceopenvrml.html">openvrml</a>::<a class="el" href="structopenvrml_1_1quatf.html">quatf</a> </div> </div> <div class="contents"> <h1>openvrml::quatf Struct Reference</h1><!-- doxytag: class="openvrml::quatf" -->A POD-struct comprising a quaternion. <a href="#_details">More...</a> <p> <code>#include <openvrml/basetypes.h></code> <p> <p> <a href="structopenvrml_1_1quatf-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_1quatf.html">quatf</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#32d02593f5517ad117e1f75b767de2cf">operator*=</a> (const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &<a class="el" href="structopenvrml_1_1quatf.html#1c409093d7cb28fe47a6401773621d40">quat</a>) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply by a quaternion. <a href="#32d02593f5517ad117e1f75b767de2cf"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structopenvrml_1_1quatf.html">quatf</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#35bfac2c5656575c213c93fdcdc3e961">operator*=</a> (float scalar) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply by a scalar. <a href="#35bfac2c5656575c213c93fdcdc3e961"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structopenvrml_1_1quatf.html">quatf</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#5c5865cece71f824c1c9dedb12a0aeb2">operator/=</a> (float scalar) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Divide by a scalar. <a href="#5c5865cece71f824c1c9dedb12a0aeb2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structopenvrml_1_1quatf.html">quatf</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#30a886b26df4fe983c0b1896d009032d">operator+=</a> (const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &<a class="el" href="structopenvrml_1_1quatf.html#1c409093d7cb28fe47a6401773621d40">quat</a>) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a quaternion. <a href="#30a886b26df4fe983c0b1896d009032d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structopenvrml_1_1quatf.html">quatf</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#714c3a251875e2e0b97f33035147a73b">operator-=</a> (const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &<a class="el" href="structopenvrml_1_1quatf.html#1c409093d7cb28fe47a6401773621d40">quat</a>) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Subtract a quaternion. <a href="#714c3a251875e2e0b97f33035147a73b"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const float & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#cae16b3a35ac7fca5c844975685f1f05">operator[]</a> (std::size_t index) const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Array element dereference operator (const version). <a href="#cae16b3a35ac7fca5c844975685f1f05"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#20380594395a6138f75c7a0c7590108c">operator[]</a> (std::size_t index) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Array element dereference operator (non-const version). <a href="#20380594395a6138f75c7a0c7590108c"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#97f2ad49b5e054b7cc09b3dec72de921">x</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the x component. <a href="#97f2ad49b5e054b7cc09b3dec72de921"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#2581b1e7a959facd392596a5cd166b3a">y</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the y component. <a href="#2581b1e7a959facd392596a5cd166b3a"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#aa6d60440c898219e8fd1a9fd5b54aa6">z</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the z component. <a href="#aa6d60440c898219e8fd1a9fd5b54aa6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#d1416b7418afcb0146fa6e2473dd3465">w</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the w component. <a href="#d1416b7418afcb0146fa6e2473dd3465"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#9d34bae1bdd2554dcebdf4c69df51377">x</a> (float value) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the x component. <a href="#9d34bae1bdd2554dcebdf4c69df51377"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#ccc5a25cc1a77aa182ace896769b25fc">y</a> (float value) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the y component. <a href="#ccc5a25cc1a77aa182ace896769b25fc"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#4626e01d1171bcfc166a41708d85b0d4">z</a> (float value) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the z component. <a href="#4626e01d1171bcfc166a41708d85b0d4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#b1fabdfe6aa3b852cf2b048d74b86982">w</a> (float value) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the w component. <a href="#b1fabdfe6aa3b852cf2b048d74b86982"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#59d6eab522a33e656bec4cd4ce796b68">conjugate</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the conjugate. <a href="#59d6eab522a33e656bec4cd4ce796b68"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#d7d5872017cf3e42ffe7a562f2db7fd2">inverse</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the inverse. <a href="#d7d5872017cf3e42ffe7a562f2db7fd2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#aca5b4d2b48c69176f3f47d43d975932">norm</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the norm. <a href="#aca5b4d2b48c69176f3f47d43d975932"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#0104449fc4641d2f2a2644039ac037b1">normalize</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Normalize the quaternion. <a href="#0104449fc4641d2f2a2644039ac037b1"></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 </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#1c409093d7cb28fe47a6401773621d40">quat</a> [4]</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">An array comprising the quaternion components. <a href="#1c409093d7cb28fe47a6401773621d40"></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_1quatf.html">openvrml::quatf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#06418cb5a221e72709f3dd9bc4c1e4d4">make_quatf</a> () throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a default <code><a class="el" href="structopenvrml_1_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code>. <a href="#06418cb5a221e72709f3dd9bc4c1e4d4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#c44a6aee45a562aed61802fa179feccf">make_quatf</a> (const float x, const float y, const float z, const float w) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <code><a class="el" href="structopenvrml_1_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code> from four values. <a href="#c44a6aee45a562aed61802fa179feccf"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#8cb8ecc17543fae40502c502be760ee6">make_quatf</a> (const float(&<a class="el" href="structopenvrml_1_1quatf.html#1c409093d7cb28fe47a6401773621d40">quat</a>)[4]) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <code><a class="el" href="structopenvrml_1_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code> from an array of four values. <a href="#8cb8ecc17543fae40502c502be760ee6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#766117d73c8e1c2f5591acec52c5c17b">make_quatf</a> (const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &mat) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <code><a class="el" href="structopenvrml_1_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code> from a <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> matrix. <a href="#766117d73c8e1c2f5591acec52c5c17b"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#218690babd1ee3ea22e190b3b121c1ea">make_quatf</a> (const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &rot) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <code><a class="el" href="structopenvrml_1_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code> from a <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code>. <a href="#218690babd1ee3ea22e190b3b121c1ea"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#c22b3f347158a5ff7b90521c17092fe4">operator*</a> (const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &lhs, const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply two quaternions. <a href="#c22b3f347158a5ff7b90521c17092fe4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#ace86e008487244218512947b0769e62">operator*</a> (const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &<a class="el" href="structopenvrml_1_1quatf.html#1c409093d7cb28fe47a6401773621d40">quat</a>, const float scalar) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply a quaternion by a scalar. <a href="#ace86e008487244218512947b0769e62"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#5201d261423080e110953d11bd8e7901">operator*</a> (const float scalar, const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &<a class="el" href="structopenvrml_1_1quatf.html#1c409093d7cb28fe47a6401773621d40">quat</a>) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply a scalar by a quaternion. <a href="#5201d261423080e110953d11bd8e7901"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#60903491a58e7bc6c757d686bc716f58">operator/</a> (const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &<a class="el" href="structopenvrml_1_1quatf.html#1c409093d7cb28fe47a6401773621d40">quat</a>, const float scalar) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Divide a quaternion by a scalar. <a href="#60903491a58e7bc6c757d686bc716f58"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#da8e46222b4cd0932c159ee88ce5a4ad">operator+</a> (const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &lhs, const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add two quaternions. <a href="#da8e46222b4cd0932c159ee88ce5a4ad"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#dac54f669d3dc3234e47159c1f5301ca">operator-</a> (const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &lhs, const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Take the difference between two quaternions. <a href="#dac54f669d3dc3234e47159c1f5301ca"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#31e11ba9bcda7cff4b2b81a98dae3df2">operator<<</a> (std::ostream &out, const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &<a class="el" href="structopenvrml_1_1quatf.html#1c409093d7cb28fe47a6401773621d40">quat</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Stream output. <a href="#31e11ba9bcda7cff4b2b81a98dae3df2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#a868da0acb90cfb6df7df008b9ed7b3d">operator==</a> (const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &lhs, const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compare for equality. <a href="#a868da0acb90cfb6df7df008b9ed7b3d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1quatf.html#4a4c87758b5cde60ce23fdea4b755756">operator!=</a> (const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &lhs, const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compare for inequality. <a href="#4a4c87758b5cde60ce23fdea4b755756"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> A POD-struct comprising a quaternion. <hr><h2>Member Function Documentation</h2> <a class="anchor" name="32d02593f5517ad117e1f75b767de2cf"></a><!-- doxytag: member="openvrml::quatf::operator*=" ref="32d02593f5517ad117e1f75b767de2cf" args="(const quatf &quat)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> & openvrml::quatf::operator*= </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> & </td> <td class="paramname"> <em>quat</em> </td> <td> ) </td> <td> throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Multiply by a quaternion. <p> <dl class="note" compact><dt><b>Note:</b></dt><dd><p class="formulaDsp"> <img class="formulaDsp" alt="\[ qr = ( \vec{q_v} \times \vec{r_v} + r_w \vec{q_v} + q_w \vec{r_v}, q_w r_w - \vec{q_v} \cdotp \vec{r_v}) \]" src="form_1.png"> <p> </dd></dl> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>quat</em> </td><td>the quaternion 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="35bfac2c5656575c213c93fdcdc3e961"></a><!-- doxytag: member="openvrml::quatf::operator*=" ref="35bfac2c5656575c213c93fdcdc3e961" args="(float scalar)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> & openvrml::quatf::operator*= </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>scalar</em> </td> <td> ) </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> </td><td valign="top"><em>scalar</em> </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="5c5865cece71f824c1c9dedb12a0aeb2"></a><!-- doxytag: member="openvrml::quatf::operator/=" ref="5c5865cece71f824c1c9dedb12a0aeb2" args="(float scalar)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> & openvrml::quatf::operator/= </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>scalar</em> </td> <td> ) </td> <td> throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Divide 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> </td><td valign="top"><em>scalar</em> </td><td>value by which to divide.</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="30a886b26df4fe983c0b1896d009032d"></a><!-- doxytag: member="openvrml::quatf::operator+=" ref="30a886b26df4fe983c0b1896d009032d" args="(const quatf &quat)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> & openvrml::quatf::operator+= </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> & </td> <td class="paramname"> <em>quat</em> </td> <td> ) </td> <td> throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Add a quaternion. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>quat</em> </td><td>the quaternion to add.</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="714c3a251875e2e0b97f33035147a73b"></a><!-- doxytag: member="openvrml::quatf::operator-=" ref="714c3a251875e2e0b97f33035147a73b" args="(const quatf &quat)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> & openvrml::quatf::operator-= </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> & </td> <td class="paramname"> <em>quat</em> </td> <td> ) </td> <td> throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Subtract a quaternion. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>quat</em> </td><td>the quaternion to subtract.</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="cae16b3a35ac7fca5c844975685f1f05"></a><!-- doxytag: member="openvrml::quatf::operator[]" ref="cae16b3a35ac7fca5c844975685f1f05" args="(std::size_t index) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const float & openvrml::quatf::operator[] </td> <td>(</td> <td class="paramtype">std::size_t </td> <td class="paramname"> <em>index</em> </td> <td> ) </td> <td> const throw ()<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Array element dereference operator (const version). <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>index</em> </td><td>an index from 0–3.</td></tr> </table> </dl> <dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>index</code> is not larger than 3. </dd></dl> </div> </div><p> <a class="anchor" name="20380594395a6138f75c7a0c7590108c"></a><!-- doxytag: member="openvrml::quatf::operator[]" ref="20380594395a6138f75c7a0c7590108c" args="(std::size_t index)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float & openvrml::quatf::operator[] </td> <td>(</td> <td class="paramtype">std::size_t </td> <td class="paramname"> <em>index</em> </td> <td> ) </td> <td> throw ()<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Array element dereference operator (non-const version). <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>index</em> </td><td>an index from 0–3.</td></tr> </table> </dl> <dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>index</code> is not larger than 3. </dd></dl> </div> </div><p> <a class="anchor" name="97f2ad49b5e054b7cc09b3dec72de921"></a><!-- doxytag: member="openvrml::quatf::x" ref="97f2ad49b5e054b7cc09b3dec72de921" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float openvrml::quatf::x </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const throw ()<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the x component. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the x component value. </dd></dl> </div> </div><p> <a class="anchor" name="2581b1e7a959facd392596a5cd166b3a"></a><!-- doxytag: member="openvrml::quatf::y" ref="2581b1e7a959facd392596a5cd166b3a" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float openvrml::quatf::y </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const throw ()<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the y component. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the y component value. </dd></dl> </div> </div><p> <a class="anchor" name="aa6d60440c898219e8fd1a9fd5b54aa6"></a><!-- doxytag: member="openvrml::quatf::z" ref="aa6d60440c898219e8fd1a9fd5b54aa6" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float openvrml::quatf::z </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const throw ()<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the z component. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the z component value. </dd></dl> </div> </div><p> <a class="anchor" name="d1416b7418afcb0146fa6e2473dd3465"></a><!-- doxytag: member="openvrml::quatf::w" ref="d1416b7418afcb0146fa6e2473dd3465" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float openvrml::quatf::w </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const throw ()<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the w component. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the w component value. </dd></dl> </div> </div><p> <a class="anchor" name="9d34bae1bdd2554dcebdf4c69df51377"></a><!-- doxytag: member="openvrml::quatf::x" ref="9d34bae1bdd2554dcebdf4c69df51377" args="(float value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void openvrml::quatf::x </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>value</em> </td> <td> ) </td> <td> throw ()<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Set the x component. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>value</em> </td><td>x component value. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="ccc5a25cc1a77aa182ace896769b25fc"></a><!-- doxytag: member="openvrml::quatf::y" ref="ccc5a25cc1a77aa182ace896769b25fc" args="(float value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void openvrml::quatf::y </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>value</em> </td> <td> ) </td> <td> throw ()<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Set the y component. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>value</em> </td><td>y component value. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="4626e01d1171bcfc166a41708d85b0d4"></a><!-- doxytag: member="openvrml::quatf::z" ref="4626e01d1171bcfc166a41708d85b0d4" args="(float value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void openvrml::quatf::z </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>value</em> </td> <td> ) </td> <td> throw ()<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Set the z component. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>value</em> </td><td>z component value. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="b1fabdfe6aa3b852cf2b048d74b86982"></a><!-- doxytag: member="openvrml::quatf::w" ref="b1fabdfe6aa3b852cf2b048d74b86982" args="(float value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void openvrml::quatf::w </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>value</em> </td> <td> ) </td> <td> throw ()<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Set the w component. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>value</em> </td><td>w component value. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="59d6eab522a33e656bec4cd4ce796b68"></a><!-- doxytag: member="openvrml::quatf::conjugate" ref="59d6eab522a33e656bec4cd4ce796b68" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> openvrml::quatf::conjugate </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Get the conjugate. <p> <dl class="note" compact><dt><b>Note:</b></dt><dd><p class="formulaDsp"> <img class="formulaDsp" alt="\[ q^* = (- \vec{q_v}, q_w) \]" src="form_2.png"> <p> </dd></dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the conjugate of the quaternion. </dd></dl> </div> </div><p> <a class="anchor" name="d7d5872017cf3e42ffe7a562f2db7fd2"></a><!-- doxytag: member="openvrml::quatf::inverse" ref="d7d5872017cf3e42ffe7a562f2db7fd2" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> openvrml::quatf::inverse </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Get the inverse. <p> <dl class="note" compact><dt><b>Note:</b></dt><dd><p class="formulaDsp"> <img class="formulaDsp" alt="\[ q^{-1} = \frac{q^*}{n(q)} \]" src="form_3.png"> <p> </dd></dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the multiplicative inverse. </dd></dl> </div> </div><p> <a class="anchor" name="aca5b4d2b48c69176f3f47d43d975932"></a><!-- doxytag: member="openvrml::quatf::norm" ref="aca5b4d2b48c69176f3f47d43d975932" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float openvrml::quatf::norm </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Get the norm. <p> <dl class="note" compact><dt><b>Note:</b></dt><dd><p class="formulaDsp"> <img class="formulaDsp" alt="\[ n(q) = q_x^2 + q_y^2 + q_z^2 + q_w^2 \]" src="form_4.png"> <p> </dd></dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the norm. </dd></dl> </div> </div><p> <a class="anchor" name="0104449fc4641d2f2a2644039ac037b1"></a><!-- doxytag: member="openvrml::quatf::normalize" ref="0104449fc4641d2f2a2644039ac037b1" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> openvrml::quatf::normalize </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Normalize the quaternion. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a unit quaternion derived from the quaternion. </dd></dl> </div> </div><p> <hr><h2>Friends And Related Function Documentation</h2> <a class="anchor" name="06418cb5a221e72709f3dd9bc4c1e4d4"></a><!-- doxytag: member="openvrml::quatf::make_quatf" ref="06418cb5a221e72709f3dd9bc4c1e4d4" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> make_quatf </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> throw()<code> [related]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Create a default <code><a class="el" href="structopenvrml_1_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code>. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="structopenvrml_1_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code> with the value [0.0, 0.0, 0.0, 1.0]. </dd></dl> </div> </div><p> <a class="anchor" name="c44a6aee45a562aed61802fa179feccf"></a><!-- doxytag: member="openvrml::quatf::make_quatf" ref="c44a6aee45a562aed61802fa179feccf" args="(const float x, const float y, const float z, const float w)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> make_quatf </td> <td>(</td> <td class="paramtype">const float </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const float </td> <td class="paramname"> <em>y</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const float </td> <td class="paramname"> <em>z</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const float </td> <td class="paramname"> <em>w</em></td><td> </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_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code> from four values. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>x</em> </td><td>the x vector component. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>y</em> </td><td>the y vector component. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>z</em> </td><td>the z vector component. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>w</em> </td><td>the scalar value w.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="structopenvrml_1_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code> with the value [<code>x</code>, <code>y</code>, <code>z</code>, <code>w</code>]. </dd></dl> </div> </div><p> <a class="anchor" name="8cb8ecc17543fae40502c502be760ee6"></a><!-- doxytag: member="openvrml::quatf::make_quatf" ref="8cb8ecc17543fae40502c502be760ee6" args="(const float(&quat)[4])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> make_quatf </td> <td>(</td> <td class="paramtype">const float(&) </td> <td class="paramname"> <em>quat</em>[4] </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_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code> from an array of four values. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>quat</em> </td><td>the first three values in the array are used for the x, y, and z vector components, respectively. The fourth value in the array is used for the scalar part of the quaternion.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="structopenvrml_1_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code> with the values in <code>quat</code>. </dd></dl> </div> </div><p> <a class="anchor" name="766117d73c8e1c2f5591acec52c5c17b"></a><!-- doxytag: member="openvrml::quatf::make_quatf" ref="766117d73c8e1c2f5591acec52c5c17b" args="(const mat4f &mat)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> make_quatf </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> & </td> <td class="paramname"> <em>mat</em> </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_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code> from 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> </td><td valign="top"><em>mat</em> </td><td>a <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> matrix.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="structopenvrml_1_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code> corresponding to the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> applied by <code>mat</code>. </dd></dl> </div> </div><p> <a class="anchor" name="218690babd1ee3ea22e190b3b121c1ea"></a><!-- doxytag: member="openvrml::quatf::make_quatf" ref="218690babd1ee3ea22e190b3b121c1ea" args="(const rotation &rot)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> make_quatf </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> & </td> <td class="paramname"> <em>rot</em> </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_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code> from a <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code>. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rot</em> </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 <code><a class="el" href="structopenvrml_1_1quatf.html" title="A POD-struct comprising a quaternion.">quatf</a></code> corresponding to the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> applied by <code>rot</code>. </dd></dl> </div> </div><p> <a class="anchor" name="c22b3f347158a5ff7b90521c17092fe4"></a><!-- doxytag: member="openvrml::quatf::operator*" ref="c22b3f347158a5ff7b90521c17092fe4" args="(const quatf &lhs, const quatf &rhs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> operator* </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> & </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_1quatf.html">quatf</a> & </td> <td class="paramname"> <em>rhs</em></td><td> </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 quaternions. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>lhs</em> </td><td>left-hand operand. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rhs</em> </td><td>right-hand operand.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the product of <code>lhs</code> and <code>rhs</code>. </dd></dl> </div> </div><p> <a class="anchor" name="ace86e008487244218512947b0769e62"></a><!-- doxytag: member="openvrml::quatf::operator*" ref="ace86e008487244218512947b0769e62" args="(const quatf &quat, const float scalar)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> operator* </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> & </td> <td class="paramname"> <em>quat</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const float </td> <td class="paramname"> <em>scalar</em></td><td> </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 quaternion 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> </td><td valign="top"><em>quat</em> </td><td>quaternion. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>scalar</em> </td><td>scalar.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the product of <code>quat</code> and <code>scalar</code>. </dd></dl> </div> </div><p> <a class="anchor" name="5201d261423080e110953d11bd8e7901"></a><!-- doxytag: member="openvrml::quatf::operator*" ref="5201d261423080e110953d11bd8e7901" args="(const float scalar, const quatf &quat)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> operator* </td> <td>(</td> <td class="paramtype">const float </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_1quatf.html">quatf</a> & </td> <td class="paramname"> <em>quat</em></td><td> </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 by a quaternion. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>scalar</em> </td><td>scalar. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>quat</em> </td><td>quaternion.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the product of <code>scalar</code> and <code>quat</code>. </dd></dl> </div> </div><p> <a class="anchor" name="60903491a58e7bc6c757d686bc716f58"></a><!-- doxytag: member="openvrml::quatf::operator/" ref="60903491a58e7bc6c757d686bc716f58" args="(const quatf &quat, const float scalar)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> operator/ </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> & </td> <td class="paramname"> <em>quat</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const float </td> <td class="paramname"> <em>scalar</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td> throw()<code> [related]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Divide a quaternion 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> </td><td valign="top"><em>quat</em> </td><td>quaternion. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>scalar</em> </td><td>scalar.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the result of dividing <code>quat</code> by <code>scalar</code>. </dd></dl> </div> </div><p> <a class="anchor" name="da8e46222b4cd0932c159ee88ce5a4ad"></a><!-- doxytag: member="openvrml::quatf::operator+" ref="da8e46222b4cd0932c159ee88ce5a4ad" args="(const quatf &lhs, const quatf &rhs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> operator+ </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> & </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_1quatf.html">quatf</a> & </td> <td class="paramname"> <em>rhs</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td> throw()<code> [related]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Add two quaternions. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>lhs</em> </td><td>left-hand operand. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rhs</em> </td><td>right-hand operand.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the sum of <code>lhs</code> and <code>rhs</code>. </dd></dl> </div> </div><p> <a class="anchor" name="dac54f669d3dc3234e47159c1f5301ca"></a><!-- doxytag: member="openvrml::quatf::operator-" ref="dac54f669d3dc3234e47159c1f5301ca" args="(const quatf &lhs, const quatf &rhs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1quatf.html">openvrml::quatf</a> operator- </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> & </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_1quatf.html">quatf</a> & </td> <td class="paramname"> <em>rhs</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td> throw()<code> [related]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Take the difference between two quaternions. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>lhs</em> </td><td>left-hand operand. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rhs</em> </td><td>right-hand operand.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the difference between <code>lhs</code> and <code>rhs</code>. </dd></dl> </div> </div><p> <a class="anchor" name="31e11ba9bcda7cff4b2b81a98dae3df2"></a><!-- doxytag: member="openvrml::quatf::operator<<" ref="31e11ba9bcda7cff4b2b81a98dae3df2" args="(std::ostream &out, const quatf &quat)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::ostream & operator<< </td> <td>(</td> <td class="paramtype">std::ostream & </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_1quatf.html">quatf</a> & </td> <td class="paramname"> <em>quat</em></td><td> </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> </td><td valign="top"><em>out</em> </td><td>an output stream. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>quat</em> </td><td>a quaternion.</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="a868da0acb90cfb6df7df008b9ed7b3d"></a><!-- doxytag: member="openvrml::quatf::operator==" ref="a868da0acb90cfb6df7df008b9ed7b3d" args="(const quatf &lhs, const quatf &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_1quatf.html">quatf</a> & </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_1quatf.html">quatf</a> & </td> <td class="paramname"> <em>rhs</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td> throw()<code> [related]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Compare for equality. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>lhs</em> </td><td>left-hand operand. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rhs</em> </td><td>right-hand operand.</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 equal; <code>false</code> otherwise. </dd></dl> </div> </div><p> <a class="anchor" name="4a4c87758b5cde60ce23fdea4b755756"></a><!-- doxytag: member="openvrml::quatf::operator!=" ref="4a4c87758b5cde60ce23fdea4b755756" args="(const quatf &lhs, const quatf &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_1quatf.html">quatf</a> & </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_1quatf.html">quatf</a> & </td> <td class="paramname"> <em>rhs</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td> throw()<code> [related]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Compare for inequality. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>lhs</em> </td><td>left-hand operand. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rhs</em> </td><td>right-hand operand.</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 equal; <code>false</code> otherwise. </dd></dl> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="1c409093d7cb28fe47a6401773621d40"></a><!-- doxytag: member="openvrml::quatf::quat" ref="1c409093d7cb28fe47a6401773621d40" args="[4]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float <a class="el" href="structopenvrml_1_1quatf.html#1c409093d7cb28fe47a6401773621d40">openvrml::quatf::quat</a>[4] </td> </tr> </table> </div> <div class="memdoc"> <p> An array comprising the quaternion components. <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&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>