mirror of
https://github.com/mcneel/opennurbs.git
synced 2026-04-19 04:36:09 +08:00
1376 lines
72 KiB
HTML
1376 lines
72 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.14"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>openNURBS SDK Help: ON_Quaternion Class Reference</title>
|
|
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="../../jquery.js"></script>
|
|
<script type="text/javascript" src="../../dynsections.js"></script>
|
|
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="../../search/searchdata.js"></script>
|
|
<script type="text/javascript" src="../../search/search.js"></script>
|
|
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">openNURBS SDK Help
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.14 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="../../menudata.js"></script>
|
|
<script type="text/javascript" src="../../menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(function() {
|
|
initMenu('../../',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */</script>
|
|
<div id="main-nav"></div>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="#pub-static-methods">Static Public Member Functions</a> |
|
|
<a href="#pub-attribs">Public Attributes</a> |
|
|
<a href="#pub-static-attribs">Static Public Attributes</a> |
|
|
<a href="../../db/d53/class_o_n___quaternion-members.html">List of all members</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">ON_Quaternion Class Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p><code>#include <<a class="el" href="../../da/d53/opennurbs__quaternion_8h_source.html">opennurbs_quaternion.h</a>></code></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:a6049aaea1fef16350e0a4bb31a594e17"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a6049aaea1fef16350e0a4bb31a594e17">ON_Quaternion</a> ()</td></tr>
|
|
<tr class="separator:a6049aaea1fef16350e0a4bb31a594e17"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a18107027364c01893a122d08e36b4996"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a18107027364c01893a122d08e36b4996">ON_Quaternion</a> (double qa, double qb, double qc, double qd)</td></tr>
|
|
<tr class="separator:a18107027364c01893a122d08e36b4996"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac31b4c41441825e5826b79376edbfa9f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#ac31b4c41441825e5826b79376edbfa9f">ON_Quaternion</a> (const <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &v)</td></tr>
|
|
<tr class="memdesc:ac31b4c41441825e5826b79376edbfa9f"><td class="mdescLeft"> </td><td class="mdescRight">(a,b,c,d) = (0,v.x,v.y,v.z) <a href="#ac31b4c41441825e5826b79376edbfa9f">More...</a><br /></td></tr>
|
|
<tr class="separator:ac31b4c41441825e5826b79376edbfa9f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7c57a2950765a6ccaf75a9616506b213"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a7c57a2950765a6ccaf75a9616506b213">Conjugate</a> () const</td></tr>
|
|
<tr class="separator:a7c57a2950765a6ccaf75a9616506b213"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa04e085f17f83b02e75989306470dcd8"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#aa04e085f17f83b02e75989306470dcd8">DistanceTo</a> (const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> &q) const</td></tr>
|
|
<tr class="separator:aa04e085f17f83b02e75989306470dcd8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afaa88efe61d7f72b59fd6d2cdc61361d"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#afaa88efe61d7f72b59fd6d2cdc61361d">GetRotation</a> (double &angle, <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &axis) const</td></tr>
|
|
<tr class="separator:afaa88efe61d7f72b59fd6d2cdc61361d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afea34ea8a527a736523bb70520889991"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#afea34ea8a527a736523bb70520889991">GetRotation</a> (<a class="el" href="../../d3/d13/class_o_n___xform.html">ON_Xform</a> &xform) const</td></tr>
|
|
<tr class="separator:afea34ea8a527a736523bb70520889991"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aac26334d57e502cb81b4e4de7a88d36c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#aac26334d57e502cb81b4e4de7a88d36c">GetRotation</a> (<a class="el" href="../../d4/d48/class_o_n___plane.html">ON_Plane</a> &plane) const</td></tr>
|
|
<tr class="separator:aac26334d57e502cb81b4e4de7a88d36c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1bc13ce7ad41adafb53424d9fcc006ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a1bc13ce7ad41adafb53424d9fcc006ec">Inverse</a> () const</td></tr>
|
|
<tr class="separator:a1bc13ce7ad41adafb53424d9fcc006ec"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab57b9e8619d188c2517a6b7f6e705619"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#ab57b9e8619d188c2517a6b7f6e705619">Invert</a> ()</td></tr>
|
|
<tr class="separator:ab57b9e8619d188c2517a6b7f6e705619"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a01f25c00ead2e578de541dc5be06131b"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a01f25c00ead2e578de541dc5be06131b">IsNotZero</a> () const</td></tr>
|
|
<tr class="separator:a01f25c00ead2e578de541dc5be06131b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5993b62fcf53705ecfaeb521774b5a01"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a5993b62fcf53705ecfaeb521774b5a01">IsScalar</a> () const</td></tr>
|
|
<tr class="separator:a5993b62fcf53705ecfaeb521774b5a01"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:acd60d68d08fc0e708f41338d92059df2"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#acd60d68d08fc0e708f41338d92059df2">IsValid</a> () const</td></tr>
|
|
<tr class="separator:acd60d68d08fc0e708f41338d92059df2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8e65d466cf9a3cb1d7ba5be20c1a4af0"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a8e65d466cf9a3cb1d7ba5be20c1a4af0">IsVector</a> () const</td></tr>
|
|
<tr class="separator:a8e65d466cf9a3cb1d7ba5be20c1a4af0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab9f5b7df609a1d1903c3521517ec56a9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#ab9f5b7df609a1d1903c3521517ec56a9">IsZero</a> () const</td></tr>
|
|
<tr class="separator:ab9f5b7df609a1d1903c3521517ec56a9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae618b56f8488cc484bea9d7ce4d03dac"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#ae618b56f8488cc484bea9d7ce4d03dac">Length</a> () const</td></tr>
|
|
<tr class="separator:ae618b56f8488cc484bea9d7ce4d03dac"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7374cffe3374e0cde4e047a07f8131da"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a7374cffe3374e0cde4e047a07f8131da">LengthSquared</a> () const</td></tr>
|
|
<tr class="separator:a7374cffe3374e0cde4e047a07f8131da"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:adc30079f12ae54e9979ca5369c51fe91"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d3/d13/class_o_n___xform.html">ON_Xform</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#adc30079f12ae54e9979ca5369c51fe91">MatrixForm</a> () const</td></tr>
|
|
<tr class="separator:adc30079f12ae54e9979ca5369c51fe91"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6d164ed82cd2bee7713f9f0004c4c4c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a6d164ed82cd2bee7713f9f0004c4c4c2">operator*</a> (int) const</td></tr>
|
|
<tr class="memdesc:a6d164ed82cd2bee7713f9f0004c4c4c2"><td class="mdescLeft"> </td><td class="mdescRight">arithmetic operators <a href="#a6d164ed82cd2bee7713f9f0004c4c4c2">More...</a><br /></td></tr>
|
|
<tr class="separator:a6d164ed82cd2bee7713f9f0004c4c4c2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5cf1e56c7b174370a13be12d435b21c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a5cf1e56c7b174370a13be12d435b21c0">operator*</a> (float) const</td></tr>
|
|
<tr class="separator:a5cf1e56c7b174370a13be12d435b21c0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad06737eeb2f0d1b745e2308a5b52e5b2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#ad06737eeb2f0d1b745e2308a5b52e5b2">operator*</a> (double) const</td></tr>
|
|
<tr class="separator:ad06737eeb2f0d1b745e2308a5b52e5b2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afa9e1e7d50854f3fcee5dacd841b372c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#afa9e1e7d50854f3fcee5dacd841b372c">operator*</a> (const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> &) const</td></tr>
|
|
<tr class="memdesc:afa9e1e7d50854f3fcee5dacd841b372c"><td class="mdescLeft"> </td><td class="mdescRight">quaternion multiplication is not commutative <a href="#afa9e1e7d50854f3fcee5dacd841b372c">More...</a><br /></td></tr>
|
|
<tr class="separator:afa9e1e7d50854f3fcee5dacd841b372c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9173f0915b43cd2ce0249896e171a8ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a9173f0915b43cd2ce0249896e171a8ab">operator+</a> (const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> &) const</td></tr>
|
|
<tr class="separator:a9173f0915b43cd2ce0249896e171a8ab"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af42e593b28aeb47120fb1c5c571e5293"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#af42e593b28aeb47120fb1c5c571e5293">operator-</a> (const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> &) const</td></tr>
|
|
<tr class="separator:af42e593b28aeb47120fb1c5c571e5293"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af2230b5d4d70c4cb44f4e7eb86f213c5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#af2230b5d4d70c4cb44f4e7eb86f213c5">operator/</a> (int) const</td></tr>
|
|
<tr class="separator:af2230b5d4d70c4cb44f4e7eb86f213c5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1eb5963d25694400e4e50509fa7be476"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a1eb5963d25694400e4e50509fa7be476">operator/</a> (float) const</td></tr>
|
|
<tr class="separator:a1eb5963d25694400e4e50509fa7be476"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa70ac3ecb3a296d2d469c4e0daf57635"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#aa70ac3ecb3a296d2d469c4e0daf57635">operator/</a> (double) const</td></tr>
|
|
<tr class="separator:aa70ac3ecb3a296d2d469c4e0daf57635"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab5b96eec4852ccaee790cb1387090a81"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#ab5b96eec4852ccaee790cb1387090a81">operator=</a> (const <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &v)</td></tr>
|
|
<tr class="memdesc:ab5b96eec4852ccaee790cb1387090a81"><td class="mdescLeft"> </td><td class="mdescRight">(a,b,c,d) = (0,v.x,v.y,v.z) <a href="#ab5b96eec4852ccaee790cb1387090a81">More...</a><br /></td></tr>
|
|
<tr class="separator:ab5b96eec4852ccaee790cb1387090a81"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa5236c80111bbf83b239bdc91cfdd43e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#aa5236c80111bbf83b239bdc91cfdd43e">Rotate</a> (<a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> v) const</td></tr>
|
|
<tr class="separator:aa5236c80111bbf83b239bdc91cfdd43e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8671876840b8ceea6f51584ec640d374"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a8671876840b8ceea6f51584ec640d374">Scalar</a> () const</td></tr>
|
|
<tr class="separator:a8671876840b8ceea6f51584ec640d374"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2701cbcee25d051f44be1a4a3bab6f0c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a2701cbcee25d051f44be1a4a3bab6f0c">Set</a> (double qa, double qb, double qc, double qd)</td></tr>
|
|
<tr class="separator:a2701cbcee25d051f44be1a4a3bab6f0c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2ce1cf23657d2a22523bc11d95acf7ac"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a2ce1cf23657d2a22523bc11d95acf7ac">SetRotation</a> (double angle, const <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &axis)</td></tr>
|
|
<tr class="separator:a2ce1cf23657d2a22523bc11d95acf7ac"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a820d1c0c15c15c49061e728a0a352033"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a820d1c0c15c15c49061e728a0a352033">SetRotation</a> (const <a class="el" href="../../d4/d48/class_o_n___plane.html">ON_Plane</a> &plane0, const <a class="el" href="../../d4/d48/class_o_n___plane.html">ON_Plane</a> &plane1)</td></tr>
|
|
<tr class="separator:a820d1c0c15c15c49061e728a0a352033"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3ad085599a112d37b6c7bc9d019f5e57"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a3ad085599a112d37b6c7bc9d019f5e57">Unitize</a> ()</td></tr>
|
|
<tr class="separator:a3ad085599a112d37b6c7bc9d019f5e57"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8f944b92989264bd7a7cb68f7a99d237"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a8f944b92989264bd7a7cb68f7a99d237">Vector</a> () const</td></tr>
|
|
<tr class="separator:a8f944b92989264bd7a7cb68f7a99d237"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
|
|
Static Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:a963a3d7750fb10f095a1076ba200c4c9"><td class="memItemLeft" align="right" valign="top">static double </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a963a3d7750fb10f095a1076ba200c4c9">Distance</a> (const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> &p, const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> &q)</td></tr>
|
|
<tr class="separator:a963a3d7750fb10f095a1076ba200c4c9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac2e0017f24e1152961cce97d8b45ef53"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#ac2e0017f24e1152961cce97d8b45ef53">Exp</a> (<a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> q)</td></tr>
|
|
<tr class="separator:ac2e0017f24e1152961cce97d8b45ef53"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a55c2d9a6d39ab2b518c603a7e05e25d8"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a55c2d9a6d39ab2b518c603a7e05e25d8">Log</a> (<a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> q)</td></tr>
|
|
<tr class="separator:a55c2d9a6d39ab2b518c603a7e05e25d8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a39fdcf5cfd8d2882ffcff6b1298d1ac8"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a39fdcf5cfd8d2882ffcff6b1298d1ac8">Pow</a> (<a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> q, double t)</td></tr>
|
|
<tr class="separator:a39fdcf5cfd8d2882ffcff6b1298d1ac8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1f7ed0932a4144a9da5ee9b0cd6f0453"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a1f7ed0932a4144a9da5ee9b0cd6f0453">Rotation</a> (double angle, const <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> &axis)</td></tr>
|
|
<tr class="separator:a1f7ed0932a4144a9da5ee9b0cd6f0453"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3f89ae6858b0275dc7559f8a99638e38"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a3f89ae6858b0275dc7559f8a99638e38">Rotation</a> (const <a class="el" href="../../d4/d48/class_o_n___plane.html">ON_Plane</a> &plane0, const <a class="el" href="../../d4/d48/class_o_n___plane.html">ON_Plane</a> &plane1)</td></tr>
|
|
<tr class="separator:a3f89ae6858b0275dc7559f8a99638e38"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a483463908c48f8956079326685a46d1b"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a483463908c48f8956079326685a46d1b">Slerp</a> (<a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> q0, <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> q1, double t)</td></tr>
|
|
<tr class="separator:a483463908c48f8956079326685a46d1b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
|
Public Attributes</h2></td></tr>
|
|
<tr class="memitem:ad9487d2d3e2f0eef4b6b0a4692918a48"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#ad9487d2d3e2f0eef4b6b0a4692918a48">a</a></td></tr>
|
|
<tr class="memdesc:ad9487d2d3e2f0eef4b6b0a4692918a48"><td class="mdescLeft"> </td><td class="mdescRight">quaternion = a + bi + cj + dk <a href="#ad9487d2d3e2f0eef4b6b0a4692918a48">More...</a><br /></td></tr>
|
|
<tr class="separator:ad9487d2d3e2f0eef4b6b0a4692918a48"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab7ce2904f16c283a1e4e005978275243"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#ab7ce2904f16c283a1e4e005978275243">b</a></td></tr>
|
|
<tr class="separator:ab7ce2904f16c283a1e4e005978275243"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a081163f0371dfe698b836f0939e68e42"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a081163f0371dfe698b836f0939e68e42">c</a></td></tr>
|
|
<tr class="separator:a081163f0371dfe698b836f0939e68e42"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9d929b768ea432cb9e2f4d2c45431c05"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a9d929b768ea432cb9e2f4d2c45431c05">d</a></td></tr>
|
|
<tr class="separator:a9d929b768ea432cb9e2f4d2c45431c05"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
|
|
Static Public Attributes</h2></td></tr>
|
|
<tr class="memitem:a0d34db53e780c5081c90180ba59ebd92"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a0d34db53e780c5081c90180ba59ebd92">I</a></td></tr>
|
|
<tr class="memdesc:a0d34db53e780c5081c90180ba59ebd92"><td class="mdescLeft"> </td><td class="mdescRight">"i" = (0,1,0,0) <a href="#a0d34db53e780c5081c90180ba59ebd92">More...</a><br /></td></tr>
|
|
<tr class="separator:a0d34db53e780c5081c90180ba59ebd92"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a70fe3af1b1d8598e85e2649029d3f554"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a70fe3af1b1d8598e85e2649029d3f554">Identity</a></td></tr>
|
|
<tr class="memdesc:a70fe3af1b1d8598e85e2649029d3f554"><td class="mdescLeft"> </td><td class="mdescRight">1 = (1,0,0,0) <a href="#a70fe3af1b1d8598e85e2649029d3f554">More...</a><br /></td></tr>
|
|
<tr class="separator:a70fe3af1b1d8598e85e2649029d3f554"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a68ec3851e8d2ee8774e541eea06a69cb"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a68ec3851e8d2ee8774e541eea06a69cb">J</a></td></tr>
|
|
<tr class="memdesc:a68ec3851e8d2ee8774e541eea06a69cb"><td class="mdescLeft"> </td><td class="mdescRight">"j" = (0,0,1,0) <a href="#a68ec3851e8d2ee8774e541eea06a69cb">More...</a><br /></td></tr>
|
|
<tr class="separator:a68ec3851e8d2ee8774e541eea06a69cb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9dc264f67e8bdb22726d79d078d3dc7f"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#a9dc264f67e8bdb22726d79d078d3dc7f">K</a></td></tr>
|
|
<tr class="memdesc:a9dc264f67e8bdb22726d79d078d3dc7f"><td class="mdescLeft"> </td><td class="mdescRight">"k" = (0,0,0,1) <a href="#a9dc264f67e8bdb22726d79d078d3dc7f">More...</a><br /></td></tr>
|
|
<tr class="separator:a9dc264f67e8bdb22726d79d078d3dc7f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac5b5284547fce4d835db622a13952c93"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d33/class_o_n___quaternion.html#ac5b5284547fce4d835db622a13952c93">Zero</a></td></tr>
|
|
<tr class="memdesc:ac5b5284547fce4d835db622a13952c93"><td class="mdescLeft"> </td><td class="mdescRight">0 = (0,0,0,0 <a href="#ac5b5284547fce4d835db622a13952c93">More...</a><br /></td></tr>
|
|
<tr class="separator:ac5b5284547fce4d835db622a13952c93"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><dl class="section rcs"><dt>NoKeywords</dt><dd></dd></dl>
|
|
<p><br />
|
|
/ / Copyright (c) 1993-2012 Robert McNeel & Associates. All rights reserved. / OpenNURBS, Rhinoceros, and Rhino3D are registered trademarks of Robert / McNeel & Associates. / / THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. / ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF / MERCHANTABILITY ARE HEREBY DISCLAIMED. / <br />
|
|
/ For complete openNURBS copyright information see <a href="http://www.opennurbs.org">http://www.opennurbs.org</a>. / ////////////////////////////////////////////////////////////// </p>
|
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="a6049aaea1fef16350e0a4bb31a594e17"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6049aaea1fef16350e0a4bb31a594e17">◆ </a></span>ON_Quaternion() <span class="overload">[1/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">ON_Quaternion::ON_Quaternion </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a18107027364c01893a122d08e36b4996"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a18107027364c01893a122d08e36b4996">◆ </a></span>ON_Quaternion() <span class="overload">[2/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">ON_Quaternion::ON_Quaternion </td>
|
|
<td>(</td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>qa</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>qb</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>qc</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>qd</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac31b4c41441825e5826b79376edbfa9f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac31b4c41441825e5826b79376edbfa9f">◆ </a></span>ON_Quaternion() <span class="overload">[3/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">ON_Quaternion::ON_Quaternion </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> & </td>
|
|
<td class="paramname"><em>v</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>(a,b,c,d) = (0,v.x,v.y,v.z) </p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="a7c57a2950765a6ccaf75a9616506b213"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7c57a2950765a6ccaf75a9616506b213">◆ </a></span>Conjugate()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::Conjugate </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Description: Returns the conjugate of the quaternion = (a,-b,-c,-d). </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a963a3d7750fb10f095a1076ba200c4c9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a963a3d7750fb10f095a1076ba200c4c9">◆ </a></span>Distance()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static double ON_Quaternion::Distance </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> & </td>
|
|
<td class="paramname"><em>p</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> & </td>
|
|
<td class="paramname"><em>q</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: The distance or norm of the difference between the two quaternions. = (p - q).<a class="el" href="../../d9/d33/class_o_n___quaternion.html#ae618b56f8488cc484bea9d7ce4d03dac">Length()</a>. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aa04e085f17f83b02e75989306470dcd8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa04e085f17f83b02e75989306470dcd8">◆ </a></span>DistanceTo()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">double ON_Quaternion::DistanceTo </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> & </td>
|
|
<td class="paramname"><em>q</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: The distance or norm of the difference between the two quaternions. = ("this" - q).<a class="el" href="../../d9/d33/class_o_n___quaternion.html#ae618b56f8488cc484bea9d7ce4d03dac">Length()</a>. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac2e0017f24e1152961cce97d8b45ef53"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac2e0017f24e1152961cce97d8b45ef53">◆ </a></span>Exp()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::Exp </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td>
|
|
<td class="paramname"><em>q</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: exp(q) = e^a*( cos(|V|) + V/|V|*sin(|V|) ), where V = b*i + c*j + d*k. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="afaa88efe61d7f72b59fd6d2cdc61361d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afaa88efe61d7f72b59fd6d2cdc61361d">◆ </a></span>GetRotation() <span class="overload">[1/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool ON_Quaternion::GetRotation </td>
|
|
<td>(</td>
|
|
<td class="paramtype">double & </td>
|
|
<td class="paramname"><em>angle</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> & </td>
|
|
<td class="paramname"><em>axis</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Parameters: angle - [out] in radians axis - [out] unit axis of rotation of 0 if (b,c,d) is the zero vector. Returns: The rotation defined by the quaternion. Remarks: If the quaternion is not unitized, the rotation of its unitized form is returned. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="afea34ea8a527a736523bb70520889991"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afea34ea8a527a736523bb70520889991">◆ </a></span>GetRotation() <span class="overload">[2/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool ON_Quaternion::GetRotation </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="../../d3/d13/class_o_n___xform.html">ON_Xform</a> & </td>
|
|
<td class="paramname"><em>xform</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Description: The transformation returned by this function has the property that xform*V = q.Rotate(V). Parameters: xform - [out] Returns: A transformation matrix that performs the rotation defined by the quaternion. Remarks: If the quaternion is not unitized, the rotation of its unitized form is returned. Do not confuse the result of this function the matrix returned by <a class="el" href="../../d9/d33/class_o_n___quaternion.html#adc30079f12ae54e9979ca5369c51fe91">ON_Quaternion::MatrixForm()</a>. The transformation returned by this function has the property that xform*V = q.Rotate(V). </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aac26334d57e502cb81b4e4de7a88d36c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aac26334d57e502cb81b4e4de7a88d36c">◆ </a></span>GetRotation() <span class="overload">[3/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool ON_Quaternion::GetRotation </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="../../d4/d48/class_o_n___plane.html">ON_Plane</a> & </td>
|
|
<td class="paramname"><em>plane</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Parameters: plane - [out] Returns: The frame created by applying the quaternion's rotation to the canonical world frame (1,0,0),(0,1,0),(0,0,1). </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a1bc13ce7ad41adafb53424d9fcc006ec"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1bc13ce7ad41adafb53424d9fcc006ec">◆ </a></span>Inverse()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::Inverse </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: Sets the quaternion to a/L2, -b/L2, -c/L2, -d/L2, where L2 = length squared = (a*a + b*b + c*c + d*d). This is the multiplicative inverse, i.e., (a,b,c,d)*(a/L2, -b/L2, -c/L2, -d/L2) = (1,0,0,0). If "this" is the zero quaternion, then the zero quaternion is returned. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab57b9e8619d188c2517a6b7f6e705619"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab57b9e8619d188c2517a6b7f6e705619">◆ </a></span>Invert()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool ON_Quaternion::Invert </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Description: Sets the quaternion to a/L2, -b/L2, -c/L2, -d/L2, where L2 = length squared = (a*a + b*b + c*c + d*d). This is the multiplicative inverse, i.e., (a,b,c,d)*(a/L2, -b/L2, -c/L2, -d/L2) = (1,0,0,0). Returns: True if successful. False if the quaternion is zero and cannot be inverted. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a01f25c00ead2e578de541dc5be06131b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a01f25c00ead2e578de541dc5be06131b">◆ </a></span>IsNotZero()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool ON_Quaternion::IsNotZero </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: True if a, b, c, and d are all valid, finite and at least one is non-zero. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5993b62fcf53705ecfaeb521774b5a01"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5993b62fcf53705ecfaeb521774b5a01">◆ </a></span>IsScalar()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool ON_Quaternion::IsScalar </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: True if b, c, and d are all zero. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="acd60d68d08fc0e708f41338d92059df2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#acd60d68d08fc0e708f41338d92059df2">◆ </a></span>IsValid()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool ON_Quaternion::IsValid </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: True if a, b, c, and d are valid finite IEEE doubles. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8e65d466cf9a3cb1d7ba5be20c1a4af0"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8e65d466cf9a3cb1d7ba5be20c1a4af0">◆ </a></span>IsVector()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool ON_Quaternion::IsVector </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: True if a = 0 and at least one of b, c, or d is not zero. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab9f5b7df609a1d1903c3521517ec56a9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab9f5b7df609a1d1903c3521517ec56a9">◆ </a></span>IsZero()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool ON_Quaternion::IsZero </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: True if a, b, c, and d are all zero. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae618b56f8488cc484bea9d7ce4d03dac"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae618b56f8488cc484bea9d7ce4d03dac">◆ </a></span>Length()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">double ON_Quaternion::Length </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: Returns the length or norm of the quaternion sqrt(a*a + b*b + c*c + d*d). </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7374cffe3374e0cde4e047a07f8131da"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7374cffe3374e0cde4e047a07f8131da">◆ </a></span>LengthSquared()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">double ON_Quaternion::LengthSquared </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: Returns a*a + b*b + c*c + d*d. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a55c2d9a6d39ab2b518c603a7e05e25d8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a55c2d9a6d39ab2b518c603a7e05e25d8">◆ </a></span>Log()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::Log </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td>
|
|
<td class="paramname"><em>q</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: log(q) = log(|q|) + V/|V|*acos(a/|q|), where V = b*i + c*j + d*k. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="adc30079f12ae54e9979ca5369c51fe91"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#adc30079f12ae54e9979ca5369c51fe91">◆ </a></span>MatrixForm()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d3/d13/class_o_n___xform.html">ON_Xform</a> ON_Quaternion::MatrixForm </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: 4x4 real valued matrix form of the quaternion </p><pre class="fragment"> a b c d
|
|
-b a -d c
|
|
-c d a -b
|
|
-d -c b a
|
|
</pre><p>which has the same arithmetic properties in as the quaternion. Remarks: Do not confuse this with the rotation defined by the quaternion. This function will only be interesting to math nerds and is not useful in rendering or animation applications. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a6d164ed82cd2bee7713f9f0004c4c4c2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6d164ed82cd2bee7713f9f0004c4c4c2">◆ </a></span>operator*() <span class="overload">[1/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::operator* </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>arithmetic operators </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5cf1e56c7b174370a13be12d435b21c0"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5cf1e56c7b174370a13be12d435b21c0">◆ </a></span>operator*() <span class="overload">[2/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::operator* </td>
|
|
<td>(</td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ad06737eeb2f0d1b745e2308a5b52e5b2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad06737eeb2f0d1b745e2308a5b52e5b2">◆ </a></span>operator*() <span class="overload">[3/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::operator* </td>
|
|
<td>(</td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="afa9e1e7d50854f3fcee5dacd841b372c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afa9e1e7d50854f3fcee5dacd841b372c">◆ </a></span>operator*() <span class="overload">[4/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::operator* </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> & </td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>quaternion multiplication is not commutative </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9173f0915b43cd2ce0249896e171a8ab"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9173f0915b43cd2ce0249896e171a8ab">◆ </a></span>operator+()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::operator+ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> & </td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af42e593b28aeb47120fb1c5c571e5293"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af42e593b28aeb47120fb1c5c571e5293">◆ </a></span>operator-()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::operator- </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> & </td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af2230b5d4d70c4cb44f4e7eb86f213c5"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af2230b5d4d70c4cb44f4e7eb86f213c5">◆ </a></span>operator/() <span class="overload">[1/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::operator/ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a1eb5963d25694400e4e50509fa7be476"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1eb5963d25694400e4e50509fa7be476">◆ </a></span>operator/() <span class="overload">[2/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::operator/ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aa70ac3ecb3a296d2d469c4e0daf57635"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa70ac3ecb3a296d2d469c4e0daf57635">◆ </a></span>operator/() <span class="overload">[3/3]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::operator/ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab5b96eec4852ccaee790cb1387090a81"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab5b96eec4852ccaee790cb1387090a81">◆ </a></span>operator=()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a>& ON_Quaternion::operator= </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> & </td>
|
|
<td class="paramname"><em>v</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>(a,b,c,d) = (0,v.x,v.y,v.z) </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a39fdcf5cfd8d2882ffcff6b1298d1ac8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a39fdcf5cfd8d2882ffcff6b1298d1ac8">◆ </a></span>Pow()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::Pow </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td>
|
|
<td class="paramname"><em>q</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>t</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: q^t = Exp(t*Log(q)) </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aa5236c80111bbf83b239bdc91cfdd43e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa5236c80111bbf83b239bdc91cfdd43e">◆ </a></span>Rotate()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> ON_Quaternion::Rotate </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> </td>
|
|
<td class="paramname"><em>v</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Description Rotate a 3d vector. This operation is also called conjugation, because the result is the same as</p>
|
|
<p>(q.Conjugate()*(0,x,y,x)*q/q.<a class="el" href="../../d9/d33/class_o_n___quaternion.html#a7374cffe3374e0cde4e047a07f8131da">LengthSquared()</a>).<a class="el" href="../../d9/d33/class_o_n___quaternion.html#a8f944b92989264bd7a7cb68f7a99d237">Vector()</a></p>
|
|
<p>Parameters: v - [in] Returns: R*v, where R is the rotation defined by the unit quaternion. This is mathematically the same as the values (Inverse(q)*(0,x,y,z)*q).<a class="el" href="../../d9/d33/class_o_n___quaternion.html#a8f944b92989264bd7a7cb68f7a99d237">Vector()</a> and (q.Conjugate()*(0,x,y,x)*q/q.<a class="el" href="../../d9/d33/class_o_n___quaternion.html#a7374cffe3374e0cde4e047a07f8131da">LengthSquared()</a>).<a class="el" href="../../d9/d33/class_o_n___quaternion.html#a8f944b92989264bd7a7cb68f7a99d237">Vector()</a> Remarks: If you need to rotate more than a dozen or so vectors, it will be more efficient to call GetRotation(ON_Xform& xform) and multiply the vectors by xform. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a1f7ed0932a4144a9da5ee9b0cd6f0453"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1f7ed0932a4144a9da5ee9b0cd6f0453">◆ </a></span>Rotation() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::Rotation </td>
|
|
<td>(</td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>angle</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> & </td>
|
|
<td class="paramname"><em>axis</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Parameters: angle - [in] in radians axis - [in] axis of rotation Returns: The unit quaternion</p>
|
|
<p>cos(angle/2), sin(angle/2)*x, sin(angle/2)*y, sin(angle/2)*z</p>
|
|
<p>where (x,y,z) is the unit vector parallel to axis. This is the unit quaternion that represents the rotation of angle about axis. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3f89ae6858b0275dc7559f8a99638e38"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3f89ae6858b0275dc7559f8a99638e38">◆ </a></span>Rotation() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::Rotation </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="../../d4/d48/class_o_n___plane.html">ON_Plane</a> & </td>
|
|
<td class="paramname"><em>plane0</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="../../d4/d48/class_o_n___plane.html">ON_Plane</a> & </td>
|
|
<td class="paramname"><em>plane1</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Parameters: plane0 - [in] plane1 - [in] Returns: The unit quaternion that represents the the rotation that maps plane0.xaxis to plane1.xaxis, plane0.yaxis to plane1.yaxis, and plane0.zaxis to plane1.zaxis. Remarks: The plane origins are ignored. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8671876840b8ceea6f51584ec640d374"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8671876840b8ceea6f51584ec640d374">◆ </a></span>Scalar()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">double ON_Quaternion::Scalar </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: The "real" or "scalar" part of the quaternion = a. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a2701cbcee25d051f44be1a4a3bab6f0c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2701cbcee25d051f44be1a4a3bab6f0c">◆ </a></span>Set()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ON_Quaternion::Set </td>
|
|
<td>(</td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>qa</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>qb</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>qc</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>qd</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a2ce1cf23657d2a22523bc11d95acf7ac"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2ce1cf23657d2a22523bc11d95acf7ac">◆ </a></span>SetRotation() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ON_Quaternion::SetRotation </td>
|
|
<td>(</td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>angle</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> & </td>
|
|
<td class="paramname"><em>axis</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Description: Sets the quaternion to</p>
|
|
<p>cos(angle/2), sin(angle/2)*x, sin(angle/2)*y, sin(angle/2)*z</p>
|
|
<p>where (x,y,z) is the unit vector parallel to axis. This is the unit quaternion that represents the rotation of angle about axis. Parameters: angle - [in] in radians axis - [in] axis of rotation Returns: </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a820d1c0c15c15c49061e728a0a352033"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a820d1c0c15c15c49061e728a0a352033">◆ </a></span>SetRotation() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ON_Quaternion::SetRotation </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="../../d4/d48/class_o_n___plane.html">ON_Plane</a> & </td>
|
|
<td class="paramname"><em>plane0</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="../../d4/d48/class_o_n___plane.html">ON_Plane</a> & </td>
|
|
<td class="paramname"><em>plane1</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Descriptin: Sets the quaternion to the unit quaternion which rotates plane0.xaxis to plane1.xaxis, plane0.yaxis to plane1.yaxis, and plane0.zaxis to plane1.zaxis. Parameters: plane0 - [in] plane1 - [in] Remarks: The plane origins are ignored. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a483463908c48f8956079326685a46d1b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a483463908c48f8956079326685a46d1b">◆ </a></span>Slerp()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::Slerp </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td>
|
|
<td class="paramname"><em>q0</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> </td>
|
|
<td class="paramname"><em>q1</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">double </td>
|
|
<td class="paramname"><em>t</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3ad085599a112d37b6c7bc9d019f5e57"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3ad085599a112d37b6c7bc9d019f5e57">◆ </a></span>Unitize()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool ON_Quaternion::Unitize </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Description: Scales the quaternion's coordinates so that a*a + b*b + c*c + d*d = 1. Returns: True if successful. False if the quaternion is zero and cannot be unitized. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8f944b92989264bd7a7cb68f7a99d237"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8f944b92989264bd7a7cb68f7a99d237">◆ </a></span>Vector()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../d5/dae/class_o_n__3d_vector.html">ON_3dVector</a> ON_Quaternion::Vector </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns: The "vector" or "imaginary" part of the quaternion = (b,c,d) </p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Data Documentation</h2>
|
|
<a id="ad9487d2d3e2f0eef4b6b0a4692918a48"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad9487d2d3e2f0eef4b6b0a4692918a48">◆ </a></span>a</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">double ON_Quaternion::a</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>quaternion = a + bi + cj + dk </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab7ce2904f16c283a1e4e005978275243"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab7ce2904f16c283a1e4e005978275243">◆ </a></span>b</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">double ON_Quaternion::b</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a081163f0371dfe698b836f0939e68e42"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a081163f0371dfe698b836f0939e68e42">◆ </a></span>c</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">double ON_Quaternion::c</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9d929b768ea432cb9e2f4d2c45431c05"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9d929b768ea432cb9e2f4d2c45431c05">◆ </a></span>d</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">double ON_Quaternion::d</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0d34db53e780c5081c90180ba59ebd92"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0d34db53e780c5081c90180ba59ebd92">◆ </a></span>I</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::I</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>"i" = (0,1,0,0) </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a70fe3af1b1d8598e85e2649029d3f554"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a70fe3af1b1d8598e85e2649029d3f554">◆ </a></span>Identity</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::Identity</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>1 = (1,0,0,0) </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a68ec3851e8d2ee8774e541eea06a69cb"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a68ec3851e8d2ee8774e541eea06a69cb">◆ </a></span>J</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::J</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>"j" = (0,0,1,0) </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9dc264f67e8bdb22726d79d078d3dc7f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9dc264f67e8bdb22726d79d078d3dc7f">◆ </a></span>K</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::K</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>"k" = (0,0,0,1) </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac5b5284547fce4d835db622a13952c93"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac5b5284547fce4d835db622a13952c93">◆ </a></span>Zero</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const <a class="el" href="../../d9/d33/class_o_n___quaternion.html">ON_Quaternion</a> ON_Quaternion::Zero</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>0 = (0,0,0,0 </p>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated on Fri Jan 26 2018 12:38:23 for openNURBS SDK Help by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.14
|
|
</small></address>
|
|
</body>
|
|
</html>
|