blob: eaf58f68644082e469f74080f5d12636bac04cbf [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>FieldRotation (Apache Commons Math 3.3 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="FieldRotation (Apache Commons Math 3.3 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/FieldRotation.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Euclidean3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" target="_top">Frames</a></li>
<li><a href="FieldRotation.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.math3.geometry.euclidean.threed</div>
<h2 title="Class FieldRotation" class="title">Class FieldRotation&lt;T extends <a href="../../../../../../../org/apache/commons/math3/RealFieldElement.html" title="interface in org.apache.commons.math3">RealFieldElement</a>&lt;T&gt;&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.commons.math3.geometry.euclidean.threed.FieldRotation&lt;T&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>T</code> - the type of the field elements</dd></dl>
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">FieldRotation&lt;T extends <a href="../../../../../../../org/apache/commons/math3/RealFieldElement.html" title="interface in org.apache.commons.math3">RealFieldElement</a>&lt;T&gt;&gt;</span>
extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
<div class="block">This class is a re-implementation of <a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed"><code>Rotation</code></a> using <a href="../../../../../../../org/apache/commons/math3/RealFieldElement.html" title="interface in org.apache.commons.math3"><code>RealFieldElement</code></a>.
<p>Instance of this class are guaranteed to be immutable.</p></div>
<dl><dt><span class="strong">Since:</span></dt>
<dd>3.2</dd>
<dt><span class="strong">Version:</span></dt>
<dd>$Id: FieldRotation.java 1591835 2014-05-02 09:04:01Z tn $</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed"><code>FieldVector3D</code></a>,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/RotationOrder.html" title="class in org.apache.commons.math3.geometry.euclidean.threed"><code>RotationOrder</code></a>,
<a href="../../../../../../../serialized-form.html#org.apache.commons.math3.geometry.euclidean.threed.FieldRotation">Serialized Form</a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#FieldRotation(org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D, org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D)">FieldRotation</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;u,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;v)</code>
<div class="block">Build one of the rotations that transform one vector into another one.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#FieldRotation(org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D, org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D, org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D, org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D)">FieldRotation</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;u1,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;u2,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;v1,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;v2)</code>
<div class="block">Build the rotation that transforms a pair of vector into another pair.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#FieldRotation(org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D, T)">FieldRotation</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;axis,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;angle)</code>
<div class="block">Build a rotation from an axis and an angle.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#FieldRotation(org.apache.commons.math3.geometry.euclidean.threed.RotationOrder, T, T, T)">FieldRotation</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/RotationOrder.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">RotationOrder</a>&nbsp;order,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;alpha1,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;alpha2,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;alpha3)</code>
<div class="block">Build a rotation from three Cardan or Euler elementary rotations.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#FieldRotation(T[][], double)">FieldRotation</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[][]&nbsp;m,
double&nbsp;threshold)</code>
<div class="block">Build a rotation from a 3X3 matrix.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#FieldRotation(T, T, T, T, boolean)">FieldRotation</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;q0,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;q1,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;q2,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;q3,
boolean&nbsp;needsNormalization)</code>
<div class="block">Build a rotation from the quaternion coordinates.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyInverseTo(double[], T[])">applyInverseTo</a></strong>(double[]&nbsp;in,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[]&nbsp;out)</code>
<div class="block">Apply the inverse of the rotation to a vector stored in an array.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyInverseTo(org.apache.commons.math3.geometry.euclidean.threed.FieldRotation)">applyInverseTo</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;r)</code>
<div class="block">Apply the inverse of the instance to another rotation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyInverseTo(org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D)">applyInverseTo</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;u)</code>
<div class="block">Apply the inverse of the rotation to a vector.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyInverseTo(org.apache.commons.math3.geometry.euclidean.threed.Rotation)">applyInverseTo</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Rotation</a>&nbsp;r)</code>
<div class="block">Apply the inverse of the instance to another rotation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static &lt;T extends <a href="../../../../../../../org/apache/commons/math3/RealFieldElement.html" title="interface in org.apache.commons.math3">RealFieldElement</a>&lt;T&gt;&gt;&nbsp;<br><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;T&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyInverseTo(org.apache.commons.math3.geometry.euclidean.threed.Rotation, org.apache.commons.math3.geometry.euclidean.threed.FieldRotation)">applyInverseTo</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Rotation</a>&nbsp;rOuter,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;T&gt;&nbsp;rInner)</code>
<div class="block">Apply the inverse of a rotation to another rotation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static &lt;T extends <a href="../../../../../../../org/apache/commons/math3/RealFieldElement.html" title="interface in org.apache.commons.math3">RealFieldElement</a>&lt;T&gt;&gt;&nbsp;<br><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;T&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyInverseTo(org.apache.commons.math3.geometry.euclidean.threed.Rotation, org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D)">applyInverseTo</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Rotation</a>&nbsp;r,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;T&gt;&nbsp;u)</code>
<div class="block">Apply the inverse of a rotation to a vector.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyInverseTo(T[], T[])">applyInverseTo</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[]&nbsp;in,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[]&nbsp;out)</code>
<div class="block">Apply the inverse of the rotation to a vector stored in an array.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyInverseTo(org.apache.commons.math3.geometry.euclidean.threed.Vector3D)">applyInverseTo</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Vector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Vector3D</a>&nbsp;u)</code>
<div class="block">Apply the inverse of the rotation to a vector.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyTo(double[], T[])">applyTo</a></strong>(double[]&nbsp;in,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[]&nbsp;out)</code>
<div class="block">Apply the rotation to a vector stored in an array.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyTo(org.apache.commons.math3.geometry.euclidean.threed.FieldRotation)">applyTo</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;r)</code>
<div class="block">Apply the instance to another rotation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyTo(org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D)">applyTo</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;u)</code>
<div class="block">Apply the rotation to a vector.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyTo(org.apache.commons.math3.geometry.euclidean.threed.Rotation)">applyTo</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Rotation</a>&nbsp;r)</code>
<div class="block">Apply the instance to another rotation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static &lt;T extends <a href="../../../../../../../org/apache/commons/math3/RealFieldElement.html" title="interface in org.apache.commons.math3">RealFieldElement</a>&lt;T&gt;&gt;&nbsp;<br><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;T&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyTo(org.apache.commons.math3.geometry.euclidean.threed.Rotation, org.apache.commons.math3.geometry.euclidean.threed.FieldRotation)">applyTo</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Rotation</a>&nbsp;r1,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;T&gt;&nbsp;rInner)</code>
<div class="block">Apply a rotation to another rotation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static &lt;T extends <a href="../../../../../../../org/apache/commons/math3/RealFieldElement.html" title="interface in org.apache.commons.math3">RealFieldElement</a>&lt;T&gt;&gt;&nbsp;<br><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;T&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyTo(org.apache.commons.math3.geometry.euclidean.threed.Rotation, org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D)">applyTo</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Rotation</a>&nbsp;r,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;T&gt;&nbsp;u)</code>
<div class="block">Apply a rotation to a vector.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyTo(T[], T[])">applyTo</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[]&nbsp;in,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[]&nbsp;out)</code>
<div class="block">Apply the rotation to a vector stored in an array.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyTo(org.apache.commons.math3.geometry.euclidean.threed.Vector3D)">applyTo</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Vector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Vector3D</a>&nbsp;u)</code>
<div class="block">Apply the rotation to a vector.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static &lt;T extends <a href="../../../../../../../org/apache/commons/math3/RealFieldElement.html" title="interface in org.apache.commons.math3">RealFieldElement</a>&lt;T&gt;&gt;&nbsp;<br>T</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#distance(org.apache.commons.math3.geometry.euclidean.threed.FieldRotation, org.apache.commons.math3.geometry.euclidean.threed.FieldRotation)">distance</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;T&gt;&nbsp;r1,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;T&gt;&nbsp;r2)</code>
<div class="block">Compute the <i>distance</i> between two rotations.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#getAngle()">getAngle</a></strong>()</code>
<div class="block">Get the angle of the rotation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[]</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#getAngles(org.apache.commons.math3.geometry.euclidean.threed.RotationOrder)">getAngles</a></strong>(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/RotationOrder.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">RotationOrder</a>&nbsp;order)</code>
<div class="block">Get the Cardan or Euler angles corresponding to the instance.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#getAxis()">getAxis</a></strong>()</code>
<div class="block">Get the normalized axis of the rotation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[][]</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#getMatrix()">getMatrix</a></strong>()</code>
<div class="block">Get the 3X3 matrix corresponding to the instance</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#getQ0()">getQ0</a></strong>()</code>
<div class="block">Get the scalar coordinate of the quaternion.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#getQ1()">getQ1</a></strong>()</code>
<div class="block">Get the first coordinate of the vectorial part of the quaternion.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#getQ2()">getQ2</a></strong>()</code>
<div class="block">Get the second coordinate of the vectorial part of the quaternion.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#getQ3()">getQ3</a></strong>()</code>
<div class="block">Get the third coordinate of the vectorial part of the quaternion.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#revert()">revert</a></strong>()</code>
<div class="block">Revert a rotation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Rotation</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#toRotation()">toRotation</a></strong>()</code>
<div class="block">Convert to a constant vector without derivatives.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="FieldRotation(org.apache.commons.math3.RealFieldElement,org.apache.commons.math3.RealFieldElement,org.apache.commons.math3.RealFieldElement,org.apache.commons.math3.RealFieldElement,boolean)">
<!-- -->
</a><a name="FieldRotation(T, T, T, T, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FieldRotation</h4>
<pre>public&nbsp;FieldRotation(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;q0,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;q1,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;q2,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;q3,
boolean&nbsp;needsNormalization)</pre>
<div class="block">Build a rotation from the quaternion coordinates.
<p>A rotation can be built from a <em>normalized</em> quaternion,
i.e. a quaternion for which q<sub>0</sub><sup>2</sup> +
q<sub>1</sub><sup>2</sup> + q<sub>2</sub><sup>2</sup> +
q<sub>3</sub><sup>2</sup> = 1. If the quaternion is not normalized,
the constructor can normalize it in a preprocessing step.</p>
<p>Note that some conventions put the scalar part of the quaternion
as the 4<sup>th</sup> component and the vector part as the first three
components. This is <em>not</em> our convention. We put the scalar part
as the first component.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>q0</code> - scalar part of the quaternion</dd><dd><code>q1</code> - first coordinate of the vectorial part of the quaternion</dd><dd><code>q2</code> - second coordinate of the vectorial part of the quaternion</dd><dd><code>q3</code> - third coordinate of the vectorial part of the quaternion</dd><dd><code>needsNormalization</code> - if true, the coordinates are considered
not to be normalized, a normalization preprocessing step is performed
before using them</dd></dl>
</li>
</ul>
<a name="FieldRotation(org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D,org.apache.commons.math3.RealFieldElement)">
<!-- -->
</a><a name="FieldRotation(org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D, T)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FieldRotation</h4>
<pre>public&nbsp;FieldRotation(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;axis,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;angle)
throws <a href="../../../../../../../org/apache/commons/math3/exception/MathIllegalArgumentException.html" title="class in org.apache.commons.math3.exception">MathIllegalArgumentException</a></pre>
<div class="block">Build a rotation from an axis and an angle.
<p>We use the convention that angles are oriented according to
the effect of the rotation on vectors around the axis. That means
that if (i, j, k) is a direct frame and if we first provide +k as
the axis and &pi;/2 as the angle to this constructor, and then
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#applyTo(org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D)"><code>apply</code></a> the instance to +i, we will get
+j.</p>
<p>Another way to represent our convention is to say that a rotation
of angle &theta; about the unit vector (x, y, z) is the same as the
rotation build from quaternion components { cos(-&theta;/2),
x * sin(-&theta;/2), y * sin(-&theta;/2), z * sin(-&theta;/2) }.
Note the minus sign on the angle!</p>
<p>On the one hand this convention is consistent with a vectorial
perspective (moving vectors in fixed frames), on the other hand it
is different from conventions with a frame perspective (fixed vectors
viewed from different frames) like the ones used for example in spacecraft
attitude community or in the graphics community.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - axis around which to rotate</dd><dd><code>angle</code> - rotation angle.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../../org/apache/commons/math3/exception/MathIllegalArgumentException.html" title="class in org.apache.commons.math3.exception">MathIllegalArgumentException</a></code> - if the axis norm is zero</dd></dl>
</li>
</ul>
<a name="FieldRotation(org.apache.commons.math3.RealFieldElement[][],double)">
<!-- -->
</a><a name="FieldRotation(T[][], double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FieldRotation</h4>
<pre>public&nbsp;FieldRotation(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[][]&nbsp;m,
double&nbsp;threshold)
throws <a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/NotARotationMatrixException.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">NotARotationMatrixException</a></pre>
<div class="block">Build a rotation from a 3X3 matrix.
<p>Rotation matrices are orthogonal matrices, i.e. unit matrices
(which are matrices for which m.m<sup>T</sup> = I) with real
coefficients. The module of the determinant of unit matrices is
1, among the orthogonal 3X3 matrices, only the ones having a
positive determinant (+1) are rotation matrices.</p>
<p>When a rotation is defined by a matrix with truncated values
(typically when it is extracted from a technical sheet where only
four to five significant digits are available), the matrix is not
orthogonal anymore. This constructor handles this case
transparently by using a copy of the given matrix and applying a
correction to the copy in order to perfect its orthogonality. If
the Frobenius norm of the correction needed is above the given
threshold, then the matrix is considered to be too far from a
true rotation matrix and an exception is thrown.<p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>m</code> - rotation matrix</dd><dd><code>threshold</code> - convergence threshold for the iterative
orthogonality correction (convergence is reached when the
difference between two steps of the Frobenius norm of the
correction is below this threshold)</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/NotARotationMatrixException.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">NotARotationMatrixException</a></code> - if the matrix is not a 3X3
matrix, or if it cannot be transformed into an orthogonal matrix
with the given threshold, or if the determinant of the resulting
orthogonal matrix is negative</dd></dl>
</li>
</ul>
<a name="FieldRotation(org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D, org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D, org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D, org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FieldRotation</h4>
<pre>public&nbsp;FieldRotation(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;u1,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;u2,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;v1,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;v2)
throws <a href="../../../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Build the rotation that transforms a pair of vector into another pair.
<p>Except for possible scale factors, if the instance were applied to
the pair (u<sub>1</sub>, u<sub>2</sub>) it will produce the pair
(v<sub>1</sub>, v<sub>2</sub>).</p>
<p>If the angular separation between u<sub>1</sub> and u<sub>2</sub> is
not the same as the angular separation between v<sub>1</sub> and
v<sub>2</sub>, then a corrected v'<sub>2</sub> will be used rather than
v<sub>2</sub>, the corrected vector will be in the (v<sub>1</sub>,
v<sub>2</sub>) plane.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>u1</code> - first vector of the origin pair</dd><dd><code>u2</code> - second vector of the origin pair</dd><dd><code>v1</code> - desired image of u1 by the rotation</dd><dd><code>v2</code> - desired image of u2 by the rotation</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the norm of one of the vectors is zero,
or if one of the pair is degenerated (i.e. the vectors of the pair are colinear)</dd></dl>
</li>
</ul>
<a name="FieldRotation(org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D, org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FieldRotation</h4>
<pre>public&nbsp;FieldRotation(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;u,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;v)
throws <a href="../../../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></pre>
<div class="block">Build one of the rotations that transform one vector into another one.
<p>Except for a possible scale factor, if the instance were
applied to the vector u it will produce the vector v. There is an
infinite number of such rotations, this constructor choose the
one with the smallest associated angle (i.e. the one whose axis
is orthogonal to the (u, v) plane). If u and v are colinear, an
arbitrary rotation axis is chosen.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>u</code> - origin vector</dd><dd><code>v</code> - desired image of u by the rotation</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../../org/apache/commons/math3/exception/MathArithmeticException.html" title="class in org.apache.commons.math3.exception">MathArithmeticException</a></code> - if the norm of one of the vectors is zero</dd></dl>
</li>
</ul>
<a name="FieldRotation(org.apache.commons.math3.geometry.euclidean.threed.RotationOrder,org.apache.commons.math3.RealFieldElement,org.apache.commons.math3.RealFieldElement,org.apache.commons.math3.RealFieldElement)">
<!-- -->
</a><a name="FieldRotation(org.apache.commons.math3.geometry.euclidean.threed.RotationOrder, T, T, T)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FieldRotation</h4>
<pre>public&nbsp;FieldRotation(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/RotationOrder.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">RotationOrder</a>&nbsp;order,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;alpha1,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;alpha2,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;alpha3)</pre>
<div class="block">Build a rotation from three Cardan or Euler elementary rotations.
<p>Cardan rotations are three successive rotations around the
canonical axes X, Y and Z, each axis being used once. There are
6 such sets of rotations (XYZ, XZY, YXZ, YZX, ZXY and ZYX). Euler
rotations are three successive rotations around the canonical
axes X, Y and Z, the first and last rotations being around the
same axis. There are 6 such sets of rotations (XYX, XZX, YXY,
YZY, ZXZ and ZYZ), the most popular one being ZXZ.</p>
<p>Beware that many people routinely use the term Euler angles even
for what really are Cardan angles (this confusion is especially
widespread in the aerospace business where Roll, Pitch and Yaw angles
are often wrongly tagged as Euler angles).</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>order</code> - order of rotations to use</dd><dd><code>alpha1</code> - angle of the first elementary rotation</dd><dd><code>alpha2</code> - angle of the second elementary rotation</dd><dd><code>alpha3</code> - angle of the third elementary rotation</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="revert()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>revert</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;revert()</pre>
<div class="block">Revert a rotation.
Build a rotation which reverse the effect of another
rotation. This means that if r(u) = v, then r.revert(v) = u. The
instance is not changed.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>a new rotation whose effect is the reverse of the effect
of the instance</dd></dl>
</li>
</ul>
<a name="getQ0()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQ0</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;getQ0()</pre>
<div class="block">Get the scalar coordinate of the quaternion.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>scalar coordinate of the quaternion</dd></dl>
</li>
</ul>
<a name="getQ1()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQ1</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;getQ1()</pre>
<div class="block">Get the first coordinate of the vectorial part of the quaternion.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>first coordinate of the vectorial part of the quaternion</dd></dl>
</li>
</ul>
<a name="getQ2()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQ2</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;getQ2()</pre>
<div class="block">Get the second coordinate of the vectorial part of the quaternion.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>second coordinate of the vectorial part of the quaternion</dd></dl>
</li>
</ul>
<a name="getQ3()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQ3</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;getQ3()</pre>
<div class="block">Get the third coordinate of the vectorial part of the quaternion.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>third coordinate of the vectorial part of the quaternion</dd></dl>
</li>
</ul>
<a name="getAxis()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAxis</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;getAxis()</pre>
<div class="block">Get the normalized axis of the rotation.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>normalized axis of the rotation</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#FieldRotation(org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D, T)"><code>FieldRotation(FieldVector3D, RealFieldElement)</code></a></dd></dl>
</li>
</ul>
<a name="getAngle()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAngle</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&nbsp;getAngle()</pre>
<div class="block">Get the angle of the rotation.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>angle of the rotation (between 0 and &pi;)</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html#FieldRotation(org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D, T)"><code>FieldRotation(FieldVector3D, RealFieldElement)</code></a></dd></dl>
</li>
</ul>
<a name="getAngles(org.apache.commons.math3.geometry.euclidean.threed.RotationOrder)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAngles</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[]&nbsp;getAngles(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/RotationOrder.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">RotationOrder</a>&nbsp;order)
throws <a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/CardanEulerSingularityException.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">CardanEulerSingularityException</a></pre>
<div class="block">Get the Cardan or Euler angles corresponding to the instance.
<p>The equations show that each rotation can be defined by two
different values of the Cardan or Euler angles set. For example
if Cardan angles are used, the rotation defined by the angles
a<sub>1</sub>, a<sub>2</sub> and a<sub>3</sub> is the same as
the rotation defined by the angles &pi; + a<sub>1</sub>, &pi;
- a<sub>2</sub> and &pi; + a<sub>3</sub>. This method implements
the following arbitrary choices:</p>
<ul>
<li>for Cardan angles, the chosen set is the one for which the
second angle is between -&pi;/2 and &pi;/2 (i.e its cosine is
positive),</li>
<li>for Euler angles, the chosen set is the one for which the
second angle is between 0 and &pi; (i.e its sine is positive).</li>
</ul>
<p>Cardan and Euler angle have a very disappointing drawback: all
of them have singularities. This means that if the instance is
too close to the singularities corresponding to the given
rotation order, it will be impossible to retrieve the angles. For
Cardan angles, this is often called gimbal lock. There is
<em>nothing</em> to do to prevent this, it is an intrinsic problem
with Cardan and Euler representation (but not a problem with the
rotation itself, which is perfectly well defined). For Cardan
angles, singularities occur when the second angle is close to
-&pi;/2 or +&pi;/2, for Euler angle singularities occur when the
second angle is close to 0 or &pi;, this implies that the identity
rotation is always singular for Euler angles!</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>order</code> - rotation order to use</dd>
<dt><span class="strong">Returns:</span></dt><dd>an array of three angles, in the order specified by the set</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/CardanEulerSingularityException.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">CardanEulerSingularityException</a></code> - if the rotation is
singular with respect to the angles set specified</dd></dl>
</li>
</ul>
<a name="getMatrix()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMatrix</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[][]&nbsp;getMatrix()</pre>
<div class="block">Get the 3X3 matrix corresponding to the instance</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the matrix corresponding to the instance</dd></dl>
</li>
</ul>
<a name="toRotation()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toRotation</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Rotation</a>&nbsp;toRotation()</pre>
<div class="block">Convert to a constant vector without derivatives.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>a constant vector</dd></dl>
</li>
</ul>
<a name="applyTo(org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyTo</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;applyTo(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;u)</pre>
<div class="block">Apply the rotation to a vector.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>u</code> - vector to apply the rotation to</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new vector which is the image of u by the rotation</dd></dl>
</li>
</ul>
<a name="applyTo(org.apache.commons.math3.geometry.euclidean.threed.Vector3D)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyTo</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;applyTo(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Vector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Vector3D</a>&nbsp;u)</pre>
<div class="block">Apply the rotation to a vector.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>u</code> - vector to apply the rotation to</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new vector which is the image of u by the rotation</dd></dl>
</li>
</ul>
<a name="applyTo(org.apache.commons.math3.RealFieldElement[],org.apache.commons.math3.RealFieldElement[])">
<!-- -->
</a><a name="applyTo(T[], T[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyTo</h4>
<pre>public&nbsp;void&nbsp;applyTo(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[]&nbsp;in,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[]&nbsp;out)</pre>
<div class="block">Apply the rotation to a vector stored in an array.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>in</code> - an array with three items which stores vector to rotate</dd><dd><code>out</code> - an array with three items to put result to (it can be the same
array as in)</dd></dl>
</li>
</ul>
<a name="applyTo(double[],org.apache.commons.math3.RealFieldElement[])">
<!-- -->
</a><a name="applyTo(double[], T[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyTo</h4>
<pre>public&nbsp;void&nbsp;applyTo(double[]&nbsp;in,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[]&nbsp;out)</pre>
<div class="block">Apply the rotation to a vector stored in an array.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>in</code> - an array with three items which stores vector to rotate</dd><dd><code>out</code> - an array with three items to put result to</dd></dl>
</li>
</ul>
<a name="applyTo(org.apache.commons.math3.geometry.euclidean.threed.Rotation, org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyTo</h4>
<pre>public static&nbsp;&lt;T extends <a href="../../../../../../../org/apache/commons/math3/RealFieldElement.html" title="interface in org.apache.commons.math3">RealFieldElement</a>&lt;T&gt;&gt;&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;T&gt;&nbsp;applyTo(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Rotation</a>&nbsp;r,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;T&gt;&nbsp;u)</pre>
<div class="block">Apply a rotation to a vector.</div>
<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>T</code> - the type of the field elements</dd><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - rotation to apply</dd><dd><code>u</code> - vector to apply the rotation to</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new vector which is the image of u by the rotation</dd></dl>
</li>
</ul>
<a name="applyInverseTo(org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyInverseTo</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;applyInverseTo(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;u)</pre>
<div class="block">Apply the inverse of the rotation to a vector.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>u</code> - vector to apply the inverse of the rotation to</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new vector which such that u is its image by the rotation</dd></dl>
</li>
</ul>
<a name="applyInverseTo(org.apache.commons.math3.geometry.euclidean.threed.Vector3D)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyInverseTo</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;applyInverseTo(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Vector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Vector3D</a>&nbsp;u)</pre>
<div class="block">Apply the inverse of the rotation to a vector.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>u</code> - vector to apply the inverse of the rotation to</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new vector which such that u is its image by the rotation</dd></dl>
</li>
</ul>
<a name="applyInverseTo(org.apache.commons.math3.RealFieldElement[],org.apache.commons.math3.RealFieldElement[])">
<!-- -->
</a><a name="applyInverseTo(T[], T[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyInverseTo</h4>
<pre>public&nbsp;void&nbsp;applyInverseTo(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[]&nbsp;in,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[]&nbsp;out)</pre>
<div class="block">Apply the inverse of the rotation to a vector stored in an array.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>in</code> - an array with three items which stores vector to rotate</dd><dd><code>out</code> - an array with three items to put result to (it can be the same
array as in)</dd></dl>
</li>
</ul>
<a name="applyInverseTo(double[],org.apache.commons.math3.RealFieldElement[])">
<!-- -->
</a><a name="applyInverseTo(double[], T[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyInverseTo</h4>
<pre>public&nbsp;void&nbsp;applyInverseTo(double[]&nbsp;in,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>[]&nbsp;out)</pre>
<div class="block">Apply the inverse of the rotation to a vector stored in an array.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>in</code> - an array with three items which stores vector to rotate</dd><dd><code>out</code> - an array with three items to put result to</dd></dl>
</li>
</ul>
<a name="applyInverseTo(org.apache.commons.math3.geometry.euclidean.threed.Rotation, org.apache.commons.math3.geometry.euclidean.threed.FieldVector3D)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyInverseTo</h4>
<pre>public static&nbsp;&lt;T extends <a href="../../../../../../../org/apache/commons/math3/RealFieldElement.html" title="interface in org.apache.commons.math3">RealFieldElement</a>&lt;T&gt;&gt;&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;T&gt;&nbsp;applyInverseTo(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Rotation</a>&nbsp;r,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldVector3D</a>&lt;T&gt;&nbsp;u)</pre>
<div class="block">Apply the inverse of a rotation to a vector.</div>
<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>T</code> - the type of the field elements</dd><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - rotation to apply</dd><dd><code>u</code> - vector to apply the inverse of the rotation to</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new vector which such that u is its image by the rotation</dd></dl>
</li>
</ul>
<a name="applyTo(org.apache.commons.math3.geometry.euclidean.threed.FieldRotation)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyTo</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;applyTo(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;r)</pre>
<div class="block">Apply the instance to another rotation.
Applying the instance to a rotation is computing the composition
in an order compliant with the following rule : let u be any
vector and v its image by r (i.e. r.applyTo(u) = v), let w be the image
of v by the instance (i.e. applyTo(v) = w), then w = comp.applyTo(u),
where comp = applyTo(r).</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - rotation to apply the rotation to</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new rotation which is the composition of r by the instance</dd></dl>
</li>
</ul>
<a name="applyTo(org.apache.commons.math3.geometry.euclidean.threed.Rotation)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyTo</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;applyTo(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Rotation</a>&nbsp;r)</pre>
<div class="block">Apply the instance to another rotation.
Applying the instance to a rotation is computing the composition
in an order compliant with the following rule : let u be any
vector and v its image by r (i.e. r.applyTo(u) = v), let w be the image
of v by the instance (i.e. applyTo(v) = w), then w = comp.applyTo(u),
where comp = applyTo(r).</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - rotation to apply the rotation to</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new rotation which is the composition of r by the instance</dd></dl>
</li>
</ul>
<a name="applyTo(org.apache.commons.math3.geometry.euclidean.threed.Rotation, org.apache.commons.math3.geometry.euclidean.threed.FieldRotation)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyTo</h4>
<pre>public static&nbsp;&lt;T extends <a href="../../../../../../../org/apache/commons/math3/RealFieldElement.html" title="interface in org.apache.commons.math3">RealFieldElement</a>&lt;T&gt;&gt;&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;T&gt;&nbsp;applyTo(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Rotation</a>&nbsp;r1,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;T&gt;&nbsp;rInner)</pre>
<div class="block">Apply a rotation to another rotation.
Applying a rotation to another rotation is computing the composition
in an order compliant with the following rule : let u be any
vector and v its image by rInner (i.e. rInner.applyTo(u) = v), let w be the image
of v by rOuter (i.e. rOuter.applyTo(v) = w), then w = comp.applyTo(u),
where comp = applyTo(rOuter, rInner).</div>
<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>T</code> - the type of the field elements</dd><dt><span class="strong">Parameters:</span></dt><dd><code>r1</code> - rotation to apply</dd><dd><code>rInner</code> - rotation to apply the rotation to</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new rotation which is the composition of r by the instance</dd></dl>
</li>
</ul>
<a name="applyInverseTo(org.apache.commons.math3.geometry.euclidean.threed.FieldRotation)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyInverseTo</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;applyInverseTo(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;r)</pre>
<div class="block">Apply the inverse of the instance to another rotation.
Applying the inverse of the instance to a rotation is computing
the composition in an order compliant with the following rule :
let u be any vector and v its image by r (i.e. r.applyTo(u) = v),
let w be the inverse image of v by the instance
(i.e. applyInverseTo(v) = w), then w = comp.applyTo(u), where
comp = applyInverseTo(r).</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - rotation to apply the rotation to</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new rotation which is the composition of r by the inverse
of the instance</dd></dl>
</li>
</ul>
<a name="applyInverseTo(org.apache.commons.math3.geometry.euclidean.threed.Rotation)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyInverseTo</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="type parameter in FieldRotation">T</a>&gt;&nbsp;applyInverseTo(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Rotation</a>&nbsp;r)</pre>
<div class="block">Apply the inverse of the instance to another rotation.
Applying the inverse of the instance to a rotation is computing
the composition in an order compliant with the following rule :
let u be any vector and v its image by r (i.e. r.applyTo(u) = v),
let w be the inverse image of v by the instance
(i.e. applyInverseTo(v) = w), then w = comp.applyTo(u), where
comp = applyInverseTo(r).</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - rotation to apply the rotation to</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new rotation which is the composition of r by the inverse
of the instance</dd></dl>
</li>
</ul>
<a name="applyInverseTo(org.apache.commons.math3.geometry.euclidean.threed.Rotation, org.apache.commons.math3.geometry.euclidean.threed.FieldRotation)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyInverseTo</h4>
<pre>public static&nbsp;&lt;T extends <a href="../../../../../../../org/apache/commons/math3/RealFieldElement.html" title="interface in org.apache.commons.math3">RealFieldElement</a>&lt;T&gt;&gt;&nbsp;<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;T&gt;&nbsp;applyInverseTo(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Rotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">Rotation</a>&nbsp;rOuter,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;T&gt;&nbsp;rInner)</pre>
<div class="block">Apply the inverse of a rotation to another rotation.
Applying the inverse of a rotation to another rotation is computing
the composition in an order compliant with the following rule :
let u be any vector and v its image by rInner (i.e. rInner.applyTo(u) = v),
let w be the inverse image of v by rOuter
(i.e. rOuter.applyInverseTo(v) = w), then w = comp.applyTo(u), where
comp = applyInverseTo(rOuter, rInner).</div>
<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>T</code> - the type of the field elements</dd><dt><span class="strong">Parameters:</span></dt><dd><code>rOuter</code> - rotation to apply the rotation to</dd><dd><code>rInner</code> - rotation to apply the rotation to</dd>
<dt><span class="strong">Returns:</span></dt><dd>a new rotation which is the composition of r by the inverse
of the instance</dd></dl>
</li>
</ul>
<a name="distance(org.apache.commons.math3.geometry.euclidean.threed.FieldRotation, org.apache.commons.math3.geometry.euclidean.threed.FieldRotation)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>distance</h4>
<pre>public static&nbsp;&lt;T extends <a href="../../../../../../../org/apache/commons/math3/RealFieldElement.html" title="interface in org.apache.commons.math3">RealFieldElement</a>&lt;T&gt;&gt;&nbsp;T&nbsp;distance(<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;T&gt;&nbsp;r1,
<a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" title="class in org.apache.commons.math3.geometry.euclidean.threed">FieldRotation</a>&lt;T&gt;&nbsp;r2)</pre>
<div class="block">Compute the <i>distance</i> between two rotations.
<p>The <i>distance</i> is intended here as a way to check if two
rotations are almost similar (i.e. they transform vectors the same way)
or very different. It is mathematically defined as the angle of
the rotation r that prepended to one of the rotations gives the other
one:</p>
<pre>
r<sub>1</sub>(r) = r<sub>2</sub>
</pre>
<p>This distance is an angle between 0 and &pi;. Its value is the smallest
possible upper bound of the angle in radians between r<sub>1</sub>(v)
and r<sub>2</sub>(v) for all possible vectors v. This upper bound is
reached for some v. The distance is equal to 0 if and only if the two
rotations are identical.</p>
<p>Comparing two rotations should always be done using this value rather
than for example comparing the components of the quaternions. It is much
more stable, and has a geometric meaning. Also comparing quaternions
components is error prone since for example quaternions (0.36, 0.48, -0.48, -0.64)
and (-0.36, -0.48, 0.48, 0.64) represent exactly the same rotation despite
their components are different (they are exact opposites).</p></div>
<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>T</code> - the type of the field elements</dd><dt><span class="strong">Parameters:</span></dt><dd><code>r1</code> - first rotation</dd><dd><code>r2</code> - second rotation</dd>
<dt><span class="strong">Returns:</span></dt><dd><i>distance</i> between r1 and r2</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/FieldRotation.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/Euclidean3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../../org/apache/commons/math3/geometry/euclidean/threed/FieldVector3D.html" title="class in org.apache.commons.math3.geometry.euclidean.threed"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/commons/math3/geometry/euclidean/threed/FieldRotation.html" target="_top">Frames</a></li>
<li><a href="FieldRotation.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>