<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>OpenVRML: openvrml::vec3d 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_1vec3d.html">vec3d</a> </div> </div> <div class="contents"> <h1>openvrml::vec3d Struct Reference</h1><!-- doxytag: class="openvrml::vec3d" -->A POD-struct comprising a three-component double-precision vector. <a href="#_details">More...</a> <p> <code>#include <openvrml/basetypes.h></code> <p> <p> <a href="structopenvrml_1_1vec3d-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_1vec3d.html">vec3d</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#0b8f8094ffa57fcaeadf2476ec130326">operator*=</a> (const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &<a class="el" href="structopenvrml_1_1vec3d.html#1a06fad568f3614c2d18164e5ad2b711">vec</a>) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Cross multiply. <a href="#0b8f8094ffa57fcaeadf2476ec130326"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#352c3503486e757eb1b967e65ed512d2">operator*=</a> (const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &mat) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply by a matrix. <a href="#352c3503486e757eb1b967e65ed512d2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#2fca931d31d87c2476744f1e84d2c117">operator*=</a> (double scalar) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply by a scalar. <a href="#2fca931d31d87c2476744f1e84d2c117"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#6dc45ef8ec1a1e0d3cc1fab0ff09ce4e">operator/=</a> (double scalar) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Divide by a scalar. <a href="#6dc45ef8ec1a1e0d3cc1fab0ff09ce4e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#aa0105f7aeac1281ba3f9121280cce56">operator+=</a> (const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &<a class="el" href="structopenvrml_1_1vec3d.html#1a06fad568f3614c2d18164e5ad2b711">vec</a>) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a vector. <a href="#aa0105f7aeac1281ba3f9121280cce56"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#08e6f8bc64e83532a6acbbb883f498f3">operator-=</a> (const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &<a class="el" href="structopenvrml_1_1vec3d.html#1a06fad568f3614c2d18164e5ad2b711">vec</a>) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Subtract a vector. <a href="#08e6f8bc64e83532a6acbbb883f498f3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#eb273b0e8fec3848485967e3da1217d2">operator-</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Negate. <a href="#eb273b0e8fec3848485967e3da1217d2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const double & </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#97351d2ccb3d31c7fcaba1e05757b3d6">operator[]</a> (std::size_t index) const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Index-based component access. <a href="#97351d2ccb3d31c7fcaba1e05757b3d6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#1fcc7596ee5f484dfe987b24c1359060">x</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the x component. <a href="#1fcc7596ee5f484dfe987b24c1359060"></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_1vec3d.html#f0b8d9fe13d6c8db59fe5927df591b5b">x</a> (double value) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the x component. <a href="#f0b8d9fe13d6c8db59fe5927df591b5b"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#c644efc023f0af57fba0081fc4fa9ee1">y</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the y component. <a href="#c644efc023f0af57fba0081fc4fa9ee1"></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_1vec3d.html#584d2420f7b2ba41160a6ef431a41962">y</a> (double value) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the y component. <a href="#584d2420f7b2ba41160a6ef431a41962"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#e8447abacbe458acf277db959615f5c8">z</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the z component. <a href="#e8447abacbe458acf277db959615f5c8"></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_1vec3d.html#890f0ca424ef7f69166cabc7540f9901">z</a> (double value) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the z component. <a href="#890f0ca424ef7f69166cabc7540f9901"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#b4268c4bab8e3f2a947c7a886d2261d4">dot</a> (const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &<a class="el" href="structopenvrml_1_1vec3d.html#1a06fad568f3614c2d18164e5ad2b711">vec</a>) const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Dot product. <a href="#b4268c4bab8e3f2a947c7a886d2261d4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#bc4910e46199d290e35d4a156a55b5e4">length</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Geometric length. <a href="#bc4910e46199d290e35d4a156a55b5e4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#fc5bba9a60cf3ad2217ece2b2c49500e">normalize</a> () const throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Normalize. <a href="#fc5bba9a60cf3ad2217ece2b2c49500e"></a><br></td></tr> <tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#1a06fad568f3614c2d18164e5ad2b711">vec</a> [3]</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Vector components. <a href="#1a06fad568f3614c2d18164e5ad2b711"></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_1vec3d.html">openvrml::vec3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#bd3209f50d025b3a8380fda978141188">make_vec3d</a> () throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <code><a class="el" href="structopenvrml_1_1vec3d.html" title="A POD-struct comprising a three-component double-precision vector.">vec3d</a></code>. <a href="#bd3209f50d025b3a8380fda978141188"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#1acbb9cdd19170cadc431363e3338e07">make_vec3d</a> (const double(&<a class="el" href="structopenvrml_1_1vec3d.html#1a06fad568f3614c2d18164e5ad2b711">vec</a>)[3]) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <code><a class="el" href="structopenvrml_1_1vec3d.html" title="A POD-struct comprising a three-component double-precision vector.">vec3d</a></code> from an array. <a href="#1acbb9cdd19170cadc431363e3338e07"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#e3bfa5d7c4225e4b798936260187393d">make_vec3d</a> (const double x, const double y, const double z) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <code><a class="el" href="structopenvrml_1_1vec3d.html" title="A POD-struct comprising a three-component double-precision vector.">vec3d</a></code> from <code>x</code>, <code>y</code>, and <code>z</code> components. <a href="#e3bfa5d7c4225e4b798936260187393d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#d70dd72e73a7c739d9c3cdfc4192e92d">operator*</a> (const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &lhs, const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Cross multiply two vectors. <a href="#d70dd72e73a7c739d9c3cdfc4192e92d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#aba3838029be102dc1b95be59cfdab04">operator*</a> (const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &<a class="el" href="structopenvrml_1_1vec3d.html#1a06fad568f3614c2d18164e5ad2b711">vec</a>, const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &mat) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply a vector by a matrix. <a href="#aba3838029be102dc1b95be59cfdab04"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#0a4019093ba60584ba10081a8819bf3c">operator*</a> (const <a class="el" href="structopenvrml_1_1mat4f.html">mat4f</a> &mat, const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &<a class="el" href="structopenvrml_1_1vec3d.html#1a06fad568f3614c2d18164e5ad2b711">vec</a>) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply a matrix by a vector. <a href="#0a4019093ba60584ba10081a8819bf3c"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#7464634d17f6e51afd52b60328c929a8">operator*</a> (const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &lhs, const double rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply a vector by a scalar. <a href="#7464634d17f6e51afd52b60328c929a8"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#47e8fac3b1c8ec0a7f70e00830dca1fc">operator*</a> (const double lhs, const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply a vector by a scalar. <a href="#47e8fac3b1c8ec0a7f70e00830dca1fc"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#8a70daa1ff7d6d9db9e587b3b0d3cb17">operator/</a> (const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &lhs, const double rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Divide a vector by a scalar. <a href="#8a70daa1ff7d6d9db9e587b3b0d3cb17"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#df983502104a5ba8b953207e7991a422">operator+</a> (const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &lhs, const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add two vectors. <a href="#df983502104a5ba8b953207e7991a422"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structopenvrml_1_1vec3d.html#be6cf6ea0f805ebeefd93901cd304654">operator-</a> (const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &lhs, const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Subtract two vectors. <a href="#be6cf6ea0f805ebeefd93901cd304654"></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_1vec3d.html#2f26218c84e6f2258347a6fad37eb08d">operator==</a> (const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &lhs, const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compare for equality. <a href="#2f26218c84e6f2258347a6fad37eb08d"></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_1vec3d.html#9f99e798cda1ae753701b82944a48849">operator!=</a> (const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &lhs, const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &rhs) throw()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compare for inequality. <a href="#9f99e798cda1ae753701b82944a48849"></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_1vec3d.html#5eaf5e0b048265cf5c7cb9d383ab9bc0">operator>></a> (std::istream &in, <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Stream input. <a href="#5eaf5e0b048265cf5c7cb9d383ab9bc0"></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_1vec3d.html#051c43b768351b1362386ef2be9cb554">operator<<</a> (std::ostream &out, const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> &v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Stream output. <a href="#051c43b768351b1362386ef2be9cb554"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> A POD-struct comprising a three-component double-precision vector. <hr><h2>Member Function Documentation</h2> <a class="anchor" name="0b8f8094ffa57fcaeadf2476ec130326"></a><!-- doxytag: member="openvrml::vec3d::operator*=" ref="0b8f8094ffa57fcaeadf2476ec130326" args="(const vec3d &vec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> & openvrml::vec3d::operator*= </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> & </td> <td class="paramname"> <em>vec</em> </td> <td> ) </td> <td> throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Cross multiply. <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>vec</em> </td><td>vector 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="352c3503486e757eb1b967e65ed512d2"></a><!-- doxytag: member="openvrml::vec3d::operator*=" ref="352c3503486e757eb1b967e65ed512d2" args="(const mat4f &mat)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> & openvrml::vec3d::operator*= </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 ()</td> </tr> </table> </div> <div class="memdoc"> <p> Multiply by 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>matrix by which to multiply.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a reference to the object. </dd></dl> </div> </div><p> <a class="anchor" name="2fca931d31d87c2476744f1e84d2c117"></a><!-- doxytag: member="openvrml::vec3d::operator*=" ref="2fca931d31d87c2476744f1e84d2c117" args="(double scalar)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> & openvrml::vec3d::operator*= </td> <td>(</td> <td class="paramtype">double </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>factor 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="6dc45ef8ec1a1e0d3cc1fab0ff09ce4e"></a><!-- doxytag: member="openvrml::vec3d::operator/=" ref="6dc45ef8ec1a1e0d3cc1fab0ff09ce4e" args="(double scalar)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> & openvrml::vec3d::operator/= </td> <td>(</td> <td class="paramtype">double </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 class="pre" compact><dt><b>Precondition:</b></dt><dd><code>scalar</code> is nonzero.</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>scalar</em> </td><td>divisor.</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="aa0105f7aeac1281ba3f9121280cce56"></a><!-- doxytag: member="openvrml::vec3d::operator+=" ref="aa0105f7aeac1281ba3f9121280cce56" args="(const vec3d &vec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> & openvrml::vec3d::operator+= </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> & </td> <td class="paramname"> <em>vec</em> </td> <td> ) </td> <td> throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Add a vector. <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>vec</em> </td><td>the vector 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="08e6f8bc64e83532a6acbbb883f498f3"></a><!-- doxytag: member="openvrml::vec3d::operator-=" ref="08e6f8bc64e83532a6acbbb883f498f3" args="(const vec3d &vec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> & openvrml::vec3d::operator-= </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> & </td> <td class="paramname"> <em>vec</em> </td> <td> ) </td> <td> throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Subtract a vector. <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>vec</em> </td><td>the vector 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="eb273b0e8fec3848485967e3da1217d2"></a><!-- doxytag: member="openvrml::vec3d::operator-" ref="eb273b0e8fec3848485967e3da1217d2" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> openvrml::vec3d::operator- </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Negate. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the additive inverse of the vector. </dd></dl> </div> </div><p> <a class="anchor" name="97351d2ccb3d31c7fcaba1e05757b3d6"></a><!-- doxytag: member="openvrml::vec3d::operator[]" ref="97351d2ccb3d31c7fcaba1e05757b3d6" args="(std::size_t index) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const double & openvrml::vec3d::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 component 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 corresponds to the x component; 1 corresponds to the y component; 2 corresponds to the z component.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a const reference to the component corresponding to <code>index</code>.</dd></dl> <dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>index</code> is less than 3. </dd></dl> </div> </div><p> <a class="anchor" name="1fcc7596ee5f484dfe987b24c1359060"></a><!-- doxytag: member="openvrml::vec3d::x" ref="1fcc7596ee5f484dfe987b24c1359060" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double openvrml::vec3d::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. </dd></dl> </div> </div><p> <a class="anchor" name="f0b8d9fe13d6c8db59fe5927df591b5b"></a><!-- doxytag: member="openvrml::vec3d::x" ref="f0b8d9fe13d6c8db59fe5927df591b5b" args="(double value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void openvrml::vec3d::x </td> <td>(</td> <td class="paramtype">double </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 class="pre" compact><dt><b>Precondition:</b></dt><dd><code>value</code> is a valid numeric value (i.e., not NaN).</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>value</em> </td><td>new x component value. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="c644efc023f0af57fba0081fc4fa9ee1"></a><!-- doxytag: member="openvrml::vec3d::y" ref="c644efc023f0af57fba0081fc4fa9ee1" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double openvrml::vec3d::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. </dd></dl> </div> </div><p> <a class="anchor" name="584d2420f7b2ba41160a6ef431a41962"></a><!-- doxytag: member="openvrml::vec3d::y" ref="584d2420f7b2ba41160a6ef431a41962" args="(double value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void openvrml::vec3d::y </td> <td>(</td> <td class="paramtype">double </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 class="pre" compact><dt><b>Precondition:</b></dt><dd><code>value</code> is a valid numeric value (i.e., not NaN).</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>value</em> </td><td>new y component value. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="e8447abacbe458acf277db959615f5c8"></a><!-- doxytag: member="openvrml::vec3d::z" ref="e8447abacbe458acf277db959615f5c8" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double openvrml::vec3d::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. </dd></dl> </div> </div><p> <a class="anchor" name="890f0ca424ef7f69166cabc7540f9901"></a><!-- doxytag: member="openvrml::vec3d::z" ref="890f0ca424ef7f69166cabc7540f9901" args="(double value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void openvrml::vec3d::z </td> <td>(</td> <td class="paramtype">double </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 class="pre" compact><dt><b>Precondition:</b></dt><dd><code>value</code> is a valid numeric value (i.e., not NaN).</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>value</em> </td><td>new z component value. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="b4268c4bab8e3f2a947c7a886d2261d4"></a><!-- doxytag: member="openvrml::vec3d::dot" ref="b4268c4bab8e3f2a947c7a886d2261d4" args="(const vec3d &vec) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double openvrml::vec3d::dot </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> & </td> <td class="paramname"> <em>vec</em> </td> <td> ) </td> <td> const throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Dot product. <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>vec</em> </td><td></td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the dot product of the vector and <code>vec</code>. </dd></dl> </div> </div><p> <a class="anchor" name="bc4910e46199d290e35d4a156a55b5e4"></a><!-- doxytag: member="openvrml::vec3d::length" ref="bc4910e46199d290e35d4a156a55b5e4" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double openvrml::vec3d::length </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Geometric length. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the length of the vector. </dd></dl> </div> </div><p> <a class="anchor" name="fc5bba9a60cf3ad2217ece2b2c49500e"></a><!-- doxytag: member="openvrml::vec3d::normalize" ref="fc5bba9a60cf3ad2217ece2b2c49500e" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> openvrml::vec3d::normalize </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const throw ()</td> </tr> </table> </div> <div class="memdoc"> <p> Normalize. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the vector normalized. </dd></dl> </div> </div><p> <hr><h2>Friends And Related Function Documentation</h2> <a class="anchor" name="bd3209f50d025b3a8380fda978141188"></a><!-- doxytag: member="openvrml::vec3d::make_vec3d" ref="bd3209f50d025b3a8380fda978141188" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> make_vec3d </td> <td>(</td> <td class="paramname"> </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_1vec3d.html" title="A POD-struct comprising a three-component double-precision vector.">vec3d</a></code>. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a zero-initialized <code><a class="el" href="structopenvrml_1_1vec3d.html" title="A POD-struct comprising a three-component double-precision vector.">vec3d</a></code>. </dd></dl> </div> </div><p> <a class="anchor" name="1acbb9cdd19170cadc431363e3338e07"></a><!-- doxytag: member="openvrml::vec3d::make_vec3d" ref="1acbb9cdd19170cadc431363e3338e07" args="(const double(&vec)[3])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> make_vec3d </td> <td>(</td> <td class="paramtype">const double(&) </td> <td class="paramname"> <em>vec</em>[3] </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_1vec3d.html" title="A POD-struct comprising a three-component double-precision vector.">vec3d</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 class="pre" compact><dt><b>Precondition:</b></dt><dd>Elements of <code>vec</code> are valid numeric values (i.e., not NaN).</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>vec</em> </td><td>an array comprising the vector components.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="structopenvrml_1_1vec3d.html" title="A POD-struct comprising a three-component double-precision vector.">vec3d</a></code> with the values in <code>vec</code>. </dd></dl> </div> </div><p> <a class="anchor" name="e3bfa5d7c4225e4b798936260187393d"></a><!-- doxytag: member="openvrml::vec3d::make_vec3d" ref="e3bfa5d7c4225e4b798936260187393d" args="(const double x, const double y, const double z)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> make_vec3d </td> <td>(</td> <td class="paramtype">const double </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const double </td> <td class="paramname"> <em>y</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const double </td> <td class="paramname"> <em>z</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_1vec3d.html" title="A POD-struct comprising a three-component double-precision vector.">vec3d</a></code> from <code>x</code>, <code>y</code>, and <code>z</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 class="pre" compact><dt><b>Precondition:</b></dt><dd><code>x</code>, <code>y</code> and <code>z</code> are valid numeric values (i.e., not NaN).</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>x</em> </td><td>x component. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>y</em> </td><td>y component. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>z</em> </td><td>z component.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>a <code><a class="el" href="structopenvrml_1_1vec3d.html" title="A POD-struct comprising a three-component double-precision vector.">vec3d</a></code> with the values <code>x</code>, <code>y</code>, and <code>z</code>. </dd></dl> </div> </div><p> <a class="anchor" name="d70dd72e73a7c739d9c3cdfc4192e92d"></a><!-- doxytag: member="openvrml::vec3d::operator*" ref="d70dd72e73a7c739d9c3cdfc4192e92d" args="(const vec3d &lhs, const vec3d &rhs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> operator* </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</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_1vec3d.html">vec3d</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> Cross multiply two vectors. <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 result vector. </dd></dl> </div> </div><p> <a class="anchor" name="aba3838029be102dc1b95be59cfdab04"></a><!-- doxytag: member="openvrml::vec3d::operator*" ref="aba3838029be102dc1b95be59cfdab04" args="(const vec3d &vec, const mat4f &mat)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> operator* </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> & </td> <td class="paramname"> <em>vec</em>, </td> </tr> <tr> <td class="paramkey"></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> </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 vector by 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>vec</em> </td><td>a vector. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>mat</em> </td><td>a matrix.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the result vector. </dd></dl> </div> </div><p> <a class="anchor" name="0a4019093ba60584ba10081a8819bf3c"></a><!-- doxytag: member="openvrml::vec3d::operator*" ref="0a4019093ba60584ba10081a8819bf3c" args="(const mat4f &mat, const vec3d &vec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> operator* </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> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> & </td> <td class="paramname"> <em>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> Multiply a matrix by a vector. <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 matrix. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>vec</em> </td><td>a 3-component vector.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the result vector. </dd></dl> </div> </div><p> <a class="anchor" name="7464634d17f6e51afd52b60328c929a8"></a><!-- doxytag: member="openvrml::vec3d::operator*" ref="7464634d17f6e51afd52b60328c929a8" args="(const vec3d &lhs, const double rhs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> operator* </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> & </td> <td class="paramname"> <em>lhs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const double </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 a vector 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>lhs</em> </td><td>left-hand operand (the vector). </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rhs</em> </td><td>right-hand operand (the scalar).</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the result vector. </dd></dl> </div> </div><p> <a class="anchor" name="47e8fac3b1c8ec0a7f70e00830dca1fc"></a><!-- doxytag: member="openvrml::vec3d::operator*" ref="47e8fac3b1c8ec0a7f70e00830dca1fc" args="(const double lhs, const vec3d &rhs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> operator* </td> <td>(</td> <td class="paramtype">const double </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_1vec3d.html">vec3d</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 a vector 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>lhs</em> </td><td>left-hand operand (the scalar). </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rhs</em> </td><td>right-hand operand (the vector).</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the result vector. </dd></dl> </div> </div><p> <a class="anchor" name="8a70daa1ff7d6d9db9e587b3b0d3cb17"></a><!-- doxytag: member="openvrml::vec3d::operator/" ref="8a70daa1ff7d6d9db9e587b3b0d3cb17" args="(const vec3d &lhs, const double rhs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> operator/ </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</a> & </td> <td class="paramname"> <em>lhs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const double </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> Divide a vector by a scalar. <p> <dl class="pre" compact><dt><b>Precondition:</b></dt><dd><code>rhs</code> is nonzero.</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>lhs</em> </td><td>left-hand operand (the vector). </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rhs</em> </td><td>right-hand operand (the scalar).</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the result vector. </dd></dl> </div> </div><p> <a class="anchor" name="df983502104a5ba8b953207e7991a422"></a><!-- doxytag: member="openvrml::vec3d::operator+" ref="df983502104a5ba8b953207e7991a422" args="(const vec3d &lhs, const vec3d &rhs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> operator+ </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</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_1vec3d.html">vec3d</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 vectors. <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 result vector. </dd></dl> </div> </div><p> <a class="anchor" name="be6cf6ea0f805ebeefd93901cd304654"></a><!-- doxytag: member="openvrml::vec3d::operator-" ref="be6cf6ea0f805ebeefd93901cd304654" args="(const vec3d &lhs, const vec3d &rhs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structopenvrml_1_1vec3d.html">openvrml::vec3d</a> operator- </td> <td>(</td> <td class="paramtype">const <a class="el" href="structopenvrml_1_1vec3d.html">vec3d</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_1vec3d.html">vec3d</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> Subtract two vectors. <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 result vector. </dd></dl> </div> </div><p> <a class="anchor" name="2f26218c84e6f2258347a6fad37eb08d"></a><!-- doxytag: member="openvrml::vec3d::operator==" ref="2f26218c84e6f2258347a6fad37eb08d" args="(const vec3d &lhs, const vec3d &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_1vec3d.html">vec3d</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_1vec3d.html">vec3d</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> have the same value; <code>false</code> otherwise. </dd></dl> </div> </div><p> <a class="anchor" name="9f99e798cda1ae753701b82944a48849"></a><!-- doxytag: member="openvrml::vec3d::operator!=" ref="9f99e798cda1ae753701b82944a48849" args="(const vec3d &lhs, const vec3d &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_1vec3d.html">vec3d</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_1vec3d.html">vec3d</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> dot not have the same value; <code>false</code> otherwise. </dd></dl> </div> </div><p> <a class="anchor" name="5eaf5e0b048265cf5c7cb9d383ab9bc0"></a><!-- doxytag: member="openvrml::vec3d::operator>>" ref="5eaf5e0b048265cf5c7cb9d383ab9bc0" args="(std::istream &in, vec3d &v)" --> <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_1vec3d.html">vec3d</a> & </td> <td class="paramname"> <em>v</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> <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>v</em> </td><td>a <code><a class="el" href="structopenvrml_1_1vec3d.html" title="A POD-struct comprising a three-component double-precision vector.">vec3d</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="051c43b768351b1362386ef2be9cb554"></a><!-- doxytag: member="openvrml::vec3d::operator<<" ref="051c43b768351b1362386ef2be9cb554" args="(std::ostream &out, const vec3d &v)" --> <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_1vec3d.html">vec3d</a> & </td> <td class="paramname"> <em>v</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>v</em> </td><td>a 3-component vector.</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="1a06fad568f3614c2d18164e5ad2b711"></a><!-- doxytag: member="openvrml::vec3d::vec" ref="1a06fad568f3614c2d18164e5ad2b711" args="[3]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double <a class="el" href="structopenvrml_1_1vec3d.html#1a06fad568f3614c2d18164e5ad2b711">openvrml::vec3d::vec</a>[3] </td> </tr> </table> </div> <div class="memdoc"> <p> Vector 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>