<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>OpenVRML: openvrml::rotation 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_1rotation.html">rotation</a> </div> </div> <div class="contents"> <h1>openvrml::rotation Struct Reference</h1><!-- doxytag: class="openvrml::rotation" -->A POD-struct comprising a <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>. <a href="#_details">More...</a> <p> <code>#include <openvrml/basetypes.h></code> <p> <p> <a href="structopenvrml_1_1rotation-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_1rotation.html">rotation</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1rotation.html#12c79a5b377702955f37ce8d043c5fae">operator*=</a> (const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &<a class="el" href="structopenvrml_1_1rotation.html#7b724681c0b15cc48ecf76935e1d478b">rot</a>) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply rotations. <a href="#12c79a5b377702955f37ce8d043c5fae"></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_1rotation.html#bbba2aa8cac739a1de1017b5a808c4bb">operator[]</a> (std::size_t index) const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Index-based element access. <a href="#bbba2aa8cac739a1de1017b5a808c4bb"></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_1rotation.html#d95a2d59a06fe713c3dbfc4ad34cd15b">x</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the x axis component. <a href="#d95a2d59a06fe713c3dbfc4ad34cd15b"></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_1rotation.html#bd99a6ca44699041bba1e94e0bf6e216">y</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the y axis component. <a href="#bd99a6ca44699041bba1e94e0bf6e216"></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_1rotation.html#cae8195791753e851670cf2cae39420c">z</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the z axis component. <a href="#cae8195791753e851670cf2cae39420c"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1rotation.html#95da954a8c0172ff559fbb62ab4e7b5e">axis</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the axis of <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>. <a href="#95da954a8c0172ff559fbb62ab4e7b5e"></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_1rotation.html#7aa9601a251c9c9141dc445e7875518d">angle</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> angle. <a href="#7aa9601a251c9c9141dc445e7875518d"></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_1rotation.html#6600f05daf3a62ae4c6f457777b6e200">x</a> (float value) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the x axis component. <a href="#6600f05daf3a62ae4c6f457777b6e200"></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_1rotation.html#26ea08e66b188bb4f3720e391c266652">y</a> (float value) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the y axis component. <a href="#26ea08e66b188bb4f3720e391c266652"></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_1rotation.html#7f9a911789e5f080a6222b8dfdf8fd7f">z</a> (float value) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the z axis component. <a href="#7f9a911789e5f080a6222b8dfdf8fd7f"></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_1rotation.html#7d0ceacb118a8237f5390e9ff591b0a1">axis</a> (const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &axis) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the axis of <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>. <a href="#7d0ceacb118a8237f5390e9ff591b0a1"></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_1rotation.html#ce10cf5f554de3ecb28f5d1b230f29a4">angle</a> (float value) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> angle. <a href="#ce10cf5f554de3ecb28f5d1b230f29a4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1rotation.html#1bdbdc5657a6a5299f90ce66cec455ad">inverse</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Inverse <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>. <a href="#1bdbdc5657a6a5299f90ce66cec455ad"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1rotation.html#118520b630e08d6d892a035eec3eb0e3">slerp</a> (const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &dest_rot, float t) const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Spherical Linear intERPolation. <a href="#118520b630e08d6d892a035eec3eb0e3"></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_1rotation.html#7b724681c0b15cc48ecf76935e1d478b">rot</a> [4]</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Rotation components. <a href="#7b724681c0b15cc48ecf76935e1d478b"></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_1rotation.html">openvrml::rotation</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1rotation.html#1b390b2f7bdf5ffea37394fb297ac12d">make_rotation</a> () throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a default <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code>. <a href="#1b390b2f7bdf5ffea37394fb297ac12d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1rotation.html#ef2ec17a6ad372cd1f2dd176efc3471d">make_rotation</a> (const float(&<a class="el" href="structopenvrml_1_1rotation.html#7b724681c0b15cc48ecf76935e1d478b">rot</a>)[4]) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> from an array. <a href="#ef2ec17a6ad372cd1f2dd176efc3471d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1rotation.html#8367f8d7b4d3a106816935a9f9ac3f2e">make_rotation</a> (const float x, const float y, const float z, const float angle) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> from <code>x</code>, <code>y</code>, <code>z</code>, and <code>angle</code> components. <a href="#8367f8d7b4d3a106816935a9f9ac3f2e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1rotation.html#7ab102f88ed21ca2fa2113d5e6dc5f38">make_rotation</a> (const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &axis, const float angle) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> from an axis vector and an angle. <a href="#7ab102f88ed21ca2fa2113d5e6dc5f38"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1rotation.html#ecc23161c5effb88dd2ba79ea8b0bddd">make_rotation</a> (const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &from_vec, const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> &to_vec) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> equal to the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> between two different vectors. <a href="#ecc23161c5effb88dd2ba79ea8b0bddd"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1rotation.html#a8c7cd3a8ee313eb5ee1a3370fe8262f">make_rotation</a> (const <a class="el" href="structopenvrml_1_1quatf.html">quatf</a> &quat) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> from a quaternion. <a href="#a8c7cd3a8ee313eb5ee1a3370fe8262f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1rotation.html#2fcc46f4f457935cee529b6442330430">operator*</a> (const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &lhs, const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply rotations. <a href="#2fcc46f4f457935cee529b6442330430"></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_1rotation.html#395206bd9bdb1e9028b06f106b9eb82b">operator==</a> (const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &lhs, const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compare for equality. <a href="#395206bd9bdb1e9028b06f106b9eb82b"></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_1rotation.html#6bca35c92121024dd95e59f8920d2328">operator!=</a> (const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &lhs, const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compare for inequality. <a href="#6bca35c92121024dd95e59f8920d2328"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">std::istream & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1rotation.html#e228ef5f11555adbe832bdfa59a11b8b">operator>></a> (std::istream &in, <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &<a class="el" href="structopenvrml_1_1rotation.html#7b724681c0b15cc48ecf76935e1d478b">rot</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Stream input. <a href="#e228ef5f11555adbe832bdfa59a11b8b"></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_1rotation.html#3388384379d2ae276d78a65be1d5a93a">operator<<</a> (std::ostream &out, const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> &r)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Stream output. <a href="#3388384379d2ae276d78a65be1d5a93a"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> A POD-struct comprising a <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>. <p> VRML rotations are represented with four single-precision floating point components. The first three are an axis of <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>, and the last is <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> in radians. <hr><h2>Member Function Documentation</h2> <a class="anchor" name="12c79a5b377702955f37ce8d043c5fae"></a><!-- doxytag: member="openvrml::rotation::operator*=" ref="12c79a5b377702955f37ce8d043c5fae" args="(const rotation &rot)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> & openvrml::rotation::operator*= </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 ()</td> </tr> </table> </div> <div class="memdoc"> <p> Multiply rotations. <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>the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> 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="bbba2aa8cac739a1de1017b5a808c4bb"></a><!-- doxytag: member="openvrml::rotation::operator[]" ref="bbba2aa8cac739a1de1017b5a808c4bb" args="(std::size_t index) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const float & openvrml::rotation::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> Index-based element access. <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>0 is the x axis component, 1 is the y axis component, 2 is the z axis component, and 3 is the angle. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="d95a2d59a06fe713c3dbfc4ad34cd15b"></a><!-- doxytag: member="openvrml::rotation::x" ref="d95a2d59a06fe713c3dbfc4ad34cd15b" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float openvrml::rotation::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 axis component. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the x axis component. </dd></dl> </div> </div><p> <a class="anchor" name="bd99a6ca44699041bba1e94e0bf6e216"></a><!-- doxytag: member="openvrml::rotation::y" ref="bd99a6ca44699041bba1e94e0bf6e216" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float openvrml::rotation::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 axis component. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the y axis component. </dd></dl> </div> </div><p> <a class="anchor" name="cae8195791753e851670cf2cae39420c"></a><!-- doxytag: member="openvrml::rotation::z" ref="cae8195791753e851670cf2cae39420c" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float openvrml::rotation::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 axis component. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the z axis component. </dd></dl> </div> </div><p> <a class="anchor" name="95da954a8c0172ff559fbb62ab4e7b5e"></a><!-- doxytag: member="openvrml::rotation::axis" ref="95da954a8c0172ff559fbb62ab4e7b5e" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> openvrml::rotation::axis </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 axis of <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the axis of <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>. </dd></dl> </div> </div><p> <a class="anchor" name="7aa9601a251c9c9141dc445e7875518d"></a><!-- doxytag: member="openvrml::rotation::angle" ref="7aa9601a251c9c9141dc445e7875518d" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float openvrml::rotation::angle </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 <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> angle. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> angle. </dd></dl> </div> </div><p> <a class="anchor" name="6600f05daf3a62ae4c6f457777b6e200"></a><!-- doxytag: member="openvrml::rotation::x" ref="6600f05daf3a62ae4c6f457777b6e200" args="(float value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void openvrml::rotation::x </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>value</em> </td> <td> ) </td> <td> throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Set the x axis 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>new x axis component value. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="26ea08e66b188bb4f3720e391c266652"></a><!-- doxytag: member="openvrml::rotation::y" ref="26ea08e66b188bb4f3720e391c266652" args="(float value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void openvrml::rotation::y </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>value</em> </td> <td> ) </td> <td> throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Set the y axis 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>new y axis component value. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="7f9a911789e5f080a6222b8dfdf8fd7f"></a><!-- doxytag: member="openvrml::rotation::z" ref="7f9a911789e5f080a6222b8dfdf8fd7f" args="(float value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void openvrml::rotation::z </td> <td>(</td> <td class="paramtype">float </td> <td class="paramname"> <em>value</em> </td> <td> ) </td> <td> throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Set the z axis 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>new z axis component value. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="7d0ceacb118a8237f5390e9ff591b0a1"></a><!-- doxytag: member="openvrml::rotation::axis" ref="7d0ceacb118a8237f5390e9ff591b0a1" args="(const vec3f &axis)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void openvrml::rotation::axis </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> & </td> <td class="paramname"> <em>axis</em> </td> <td> ) </td> <td> throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Set the axis of <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>. <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>axis</em> </td><td>new axis of <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="ce10cf5f554de3ecb28f5d1b230f29a4"></a><!-- doxytag: member="openvrml::rotation::angle" ref="ce10cf5f554de3ecb28f5d1b230f29a4" args="(float value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void openvrml::rotation::angle </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 <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> angle. <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>new <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> angle value. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="1bdbdc5657a6a5299f90ce66cec455ad"></a><!-- doxytag: member="openvrml::rotation::inverse" ref="1bdbdc5657a6a5299f90ce66cec455ad" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> openvrml::rotation::inverse </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Inverse <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the inverse <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a>. </dd></dl> </div> </div><p> <a class="anchor" name="118520b630e08d6d892a035eec3eb0e3"></a><!-- doxytag: member="openvrml::rotation::slerp" ref="118520b630e08d6d892a035eec3eb0e3" args="(const rotation &dest_rot, float t) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> openvrml::rotation::slerp </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1rotation.html">rotation</a> & </td> <td class="paramname"> <em>dest_rot</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"> <em>t</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td> const throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Spherical Linear intERPolation. <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>dest_rot</em> </td><td>destination <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> </td><td valign="top"><em>t</em> </td><td>fraction representing the desired position between the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> and <code>dest_rot</code>.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> corresponding to <code>t</code> between the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> and <code>dest_rot</code>. </dd></dl> </div> </div><p> <hr><h2>Friends And Related Function Documentation</h2> <a class="anchor" name="1b390b2f7bdf5ffea37394fb297ac12d"></a><!-- doxytag: member="openvrml::rotation::make_rotation" ref="1b390b2f7bdf5ffea37394fb297ac12d" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> make_rotation </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_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code>. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a default <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code>. </dd></dl> </div> </div><p> <a class="anchor" name="ef2ec17a6ad372cd1f2dd176efc3471d"></a><!-- doxytag: member="openvrml::rotation::make_rotation" ref="ef2ec17a6ad372cd1f2dd176efc3471d" args="(const float(&rot)[4])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> make_rotation </td> <td>(</td> <td class="paramtype">const float(&) </td> <td class="paramname"> <em>rot</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_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> from an 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> </td><td valign="top"><em>rot</em> </td><td>an array comprising the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> components.</td></tr> </table> </dl> <dl class="pre" compact><dt><b>Precondition:</b></dt><dd>The vector represented by the first three components of <code>rot</code> is normalized.</dd></dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> initialized to the values in <code>rot</code>. </dd></dl> </div> </div><p> <a class="anchor" name="8367f8d7b4d3a106816935a9f9ac3f2e"></a><!-- doxytag: member="openvrml::rotation::make_rotation" ref="8367f8d7b4d3a106816935a9f9ac3f2e" args="(const float x, const float y, const float z, const float angle)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> make_rotation </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>angle</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_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> from <code>x</code>, <code>y</code>, <code>z</code>, and <code>angle</code> components. <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> </td><td valign="top"><em>x</em> </td><td>x-component of the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> axis. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>y</em> </td><td>y-component of the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> axis. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>z</em> </td><td>z-component of the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> axis. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>angle</em> </td><td><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> angle.</td></tr> </table> </dl> <dl class="pre" compact><dt><b>Precondition:</b></dt><dd>The vector represented by <code>x</code>, <code>y</code>, and <code>z</code> is normalized.</dd></dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> initialized to [ <code>x</code>, <code>y</code>, <code>z</code>, <code>angle</code> ]. </dd></dl> </div> </div><p> <a class="anchor" name="7ab102f88ed21ca2fa2113d5e6dc5f38"></a><!-- doxytag: member="openvrml::rotation::make_rotation" ref="7ab102f88ed21ca2fa2113d5e6dc5f38" args="(const vec3f &axis, const float angle)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> make_rotation </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> & </td> <td class="paramname"> <em>axis</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const float </td> <td class="paramname"> <em>angle</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_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> from an axis vector and an angle. <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> </td><td valign="top"><em>axis</em> </td><td><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> axis. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>angle</em> </td><td><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> angle.</td></tr> </table> </dl> <dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>axis</code> is a normalized vector.</dd></dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> initialized using <code>axis</code> and <code>angle</code>. </dd></dl> </div> </div><p> <a class="anchor" name="ecc23161c5effb88dd2ba79ea8b0bddd"></a><!-- doxytag: member="openvrml::rotation::make_rotation" ref="ecc23161c5effb88dd2ba79ea8b0bddd" args="(const vec3f &from_vec, const vec3f &to_vec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> make_rotation </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> & </td> <td class="paramname"> <em>from_vec</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3f.html">vec3f</a> & </td> <td class="paramname"> <em>to_vec</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_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> equal to the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> between two different vectors. <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> </td><td valign="top"><em>from_vec</em> </td><td>the starting vector. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>to_vec</em> </td><td>the ending vector.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> equal to the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> between <code>from_vec</code> and <code>to_vec</code>. </dd></dl> </div> </div><p> <a class="anchor" name="a8c7cd3a8ee313eb5ee1a3370fe8262f"></a><!-- doxytag: member="openvrml::rotation::make_rotation" ref="a8c7cd3a8ee313eb5ee1a3370fe8262f" args="(const quatf &quat)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> make_rotation </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()<code> [related]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Create a <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> from a quaternion. <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> </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>a <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code> corresponding to <code>quat</code>. </dd></dl> </div> </div><p> <a class="anchor" name="2fcc46f4f457935cee529b6442330430"></a><!-- doxytag: member="openvrml::rotation::operator*" ref="2fcc46f4f457935cee529b6442330430" args="(const rotation &lhs, const rotation &rhs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1rotation.html">openvrml::rotation</a> operator* </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1rotation.html">rotation</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_1rotation.html">rotation</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 rotations. <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="395206bd9bdb1e9028b06f106b9eb82b"></a><!-- doxytag: member="openvrml::rotation::operator==" ref="395206bd9bdb1e9028b06f106b9eb82b" args="(const rotation &lhs, const rotation &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_1rotation.html">rotation</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_1rotation.html">rotation</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> is equal to <code>rhs</code>; <code>false</code> otherwise. </dd></dl> </div> </div><p> <a class="anchor" name="6bca35c92121024dd95e59f8920d2328"></a><!-- doxytag: member="openvrml::rotation::operator!=" ref="6bca35c92121024dd95e59f8920d2328" args="(const rotation &lhs, const rotation &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_1rotation.html">rotation</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_1rotation.html">rotation</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> is not equal to <code>rhs</code>; <code>false</code> otherwise. </dd></dl> </div> </div><p> <a class="anchor" name="e228ef5f11555adbe832bdfa59a11b8b"></a><!-- doxytag: member="openvrml::rotation::operator>>" ref="e228ef5f11555adbe832bdfa59a11b8b" args="(std::istream &in, rotation &rot)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::istream & operator>> </td> <td>(</td> <td class="paramtype">std::istream & </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_1rotation.html">rotation</a> & </td> <td class="paramname"> <em>rot</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 input. <p> Consistent with the VRML97 convention, commas (“<code></code>,”) in the input are treated as whitespace.<p> If the axis components of the <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> do not represent a normalized vector, the <code>failbit</code> will be set on <code>in</code> and <code>rot</code> will not be modified.<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>in</em> </td><td>input stream. </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>rot</em> </td><td>a <code><a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a></code>.</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="3388384379d2ae276d78a65be1d5a93a"></a><!-- doxytag: member="openvrml::rotation::operator<<" ref="3388384379d2ae276d78a65be1d5a93a" args="(std::ostream &out, const rotation &r)" --> <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_1rotation.html">rotation</a> & </td> <td class="paramname"> <em>r</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>output stream. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>r</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><code>out</code>. </dd></dl> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="7b724681c0b15cc48ecf76935e1d478b"></a><!-- doxytag: member="openvrml::rotation::rot" ref="7b724681c0b15cc48ecf76935e1d478b" args="[4]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">float <a class="el" href="structopenvrml_1_1rotation.html#7b724681c0b15cc48ecf76935e1d478b">openvrml::rotation::rot</a>[4] </td> </tr> </table> </div> <div class="memdoc"> <p> Rotation components. <p> The first three components define an axis through the origin. The fourth component is a <a class="el" href="structopenvrml_1_1rotation.html" title="A POD-struct comprising a rotation.">rotation</a> around the axis. </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>