Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > d5e74628f0e673bb8680aebce32b2c04 > files > 17683

itk-doc-3.12.0-1mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta name="robots" content="noindex">
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>ITK: itkVersor.h Source File</title>
<link href="DoxygenStyle.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">


<!--  Section customized for INSIGHT : Tue Jul 17 01:02:45 2001 -->
<center>
<a href="index.html" class="qindex">Main Page</a>&nbsp;&nbsp; 
<a href="modules.html" class="qindex">Groups</a>&nbsp;&nbsp;
<a href="namespaces.html" class="qindex">Namespace List</a>&nbsp;&nbsp;
<a href="hierarchy.html" class="qindex">Class Hierarchy</a>&nbsp;&nbsp;
<a href="classes.html" class="qindex">Alphabetical List</a>&nbsp;&nbsp;
<a href="annotated.html" class="qindex">Compound List</a>&nbsp;&nbsp; 
<a href="files.html" class="qindex">File
List</a>&nbsp;&nbsp; 
<a href="namespacemembers.html" class="qindex">Namespace Members</a>&nbsp;&nbsp; 
<a href="functions.html" class="qindex">Compound Members</a>&nbsp;&nbsp; 
<a href="globals.html" class="qindex">File Members</a>&nbsp;&nbsp;
<a href="pages.html" class="qindex">Concepts</a></center>


<!-- Generated by Doxygen 1.5.9 -->
  <div class="navpath"><a class="el" href="dir_02e23d841c198393a6e961e9a0678fff.html">Code</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_ea7fc529ede9a38b0438cf13831ae873.html">Common</a>
  </div>
<div class="contents">
<h1>itkVersor.h</h1><a href="itkVersor_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*=========================================================================</span>
<a name="l00002"></a>00002 <span class="comment"></span>
<a name="l00003"></a>00003 <span class="comment">  Program:   Insight Segmentation &amp; Registration Toolkit</span>
<a name="l00004"></a>00004 <span class="comment">  Module:    $RCSfile: itkVersor.h,v $</span>
<a name="l00005"></a>00005 <span class="comment">  Language:  C++</span>
<a name="l00006"></a>00006 <span class="comment">  Date:      $Date: 2007-12-20 19:19:18 $</span>
<a name="l00007"></a>00007 <span class="comment">  Version:   $Revision: 1.22 $</span>
<a name="l00008"></a>00008 <span class="comment"></span>
<a name="l00009"></a>00009 <span class="comment">  Copyright (c) Insight Software Consortium. All rights reserved.</span>
<a name="l00010"></a>00010 <span class="comment">  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.</span>
<a name="l00011"></a>00011 <span class="comment"></span>
<a name="l00012"></a>00012 <span class="comment">     This software is distributed WITHOUT ANY WARRANTY; without even </span>
<a name="l00013"></a>00013 <span class="comment">     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR </span>
<a name="l00014"></a>00014 <span class="comment">     PURPOSE.  See the above copyright notices for more information.</span>
<a name="l00015"></a>00015 <span class="comment"></span>
<a name="l00016"></a>00016 <span class="comment">=========================================================================*/</span>
<a name="l00017"></a>00017 <span class="preprocessor">#ifndef __itkVersor_h</span>
<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define __itkVersor_h</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span>
<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="itkVector_8h.html">itkVector.h</a>"</span>
<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="itkPoint_8h.html">itkPoint.h</a>"</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="itkMatrix_8h.html">itkMatrix.h</a>"</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="itkCovariantVector_8h.html">itkCovariantVector.h</a>"</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include "vnl/vnl_quaternion.h"</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include "vnl/vnl_vector_fixed.h"</span>
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 <span class="keyword">namespace </span>itk
<a name="l00028"></a>00028 {
<a name="l00029"></a>00029 
<a name="l00051"></a>00051 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; 
<a name="l00052"></a><a class="code" href="classitk_1_1Versor.html">00052</a> <span class="keyword">class </span><a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Versor</a> 
<a name="l00053"></a>00053 {
<a name="l00054"></a>00054 <span class="keyword">public</span>:
<a name="l00056"></a><a class="code" href="classitk_1_1Versor.html#5168833b384aa41aa5db77e850e1af21">00056</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Versor</a>  <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a>;
<a name="l00057"></a>00057 
<a name="l00060"></a><a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">00060</a>   <span class="keyword">typedef</span> T <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a>;
<a name="l00061"></a>00061 
<a name="l00063"></a><a class="code" href="classitk_1_1Versor.html#ffbdfef95833b33015541c29a27126ed">00063</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> NumericTraits&lt;ValueType&gt;::RealType    <a class="code" href="classitk_1_1Versor.html#ffbdfef95833b33015541c29a27126ed">RealType</a>;
<a name="l00064"></a>00064 
<a name="l00066"></a><a class="code" href="classitk_1_1Versor.html#747ef420c3854a48e416f50d21496db4">00066</a>   <span class="keyword">typedef</span>  <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Vector&lt;T,3&gt;</a>   <a class="code" href="classitk_1_1Vector.html">VectorType</a>;
<a name="l00067"></a>00067 
<a name="l00069"></a><a class="code" href="classitk_1_1Versor.html#39114efc8e606651f7b6dc5e17525808">00069</a>   <span class="keyword">typedef</span>  <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">Point&lt;T,3&gt;</a>   <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">PointType</a>;
<a name="l00070"></a>00070 
<a name="l00072"></a><a class="code" href="classitk_1_1Versor.html#cc335f5a15ed33693fb93f24c8d08e9d">00072</a>   <span class="keyword">typedef</span>  <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">CovariantVector&lt;T,3&gt;</a>   <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">CovariantVectorType</a>;
<a name="l00073"></a>00073 
<a name="l00075"></a><a class="code" href="classitk_1_1Versor.html#855ceff5742080cc4a1c31089564f861">00075</a>   <span class="keyword">typedef</span>  vnl_vector_fixed&lt;T,3&gt;   <a class="code" href="classitk_1_1Versor.html#855ceff5742080cc4a1c31089564f861">VnlVectorType</a>;
<a name="l00076"></a>00076 
<a name="l00078"></a><a class="code" href="classitk_1_1Versor.html#52ec040aa0278c862ab37fa167b4b2fb">00078</a>   <span class="keyword">typedef</span>  vnl_quaternion&lt;T&gt;       <a class="code" href="classitk_1_1Versor.html#52ec040aa0278c862ab37fa167b4b2fb">VnlQuaternionType</a>;
<a name="l00079"></a>00079 
<a name="l00081"></a><a class="code" href="classitk_1_1Versor.html#0a8a1bfdeb3dd64eb7245cdc4dbe0c11">00081</a>   <span class="keyword">typedef</span>  <a class="code" href="classitk_1_1Matrix.html" title="A templated class holding a M x N size Matrix This class contains a vnl_matrix_fixed...">Matrix&lt;T,3,3&gt;</a>          <a class="code" href="classitk_1_1Matrix.html" title="A templated class holding a M x N size Matrix This class contains a vnl_matrix_fixed...">MatrixType</a>;
<a name="l00082"></a>00082 
<a name="l00084"></a>00084   vnl_quaternion&lt;T&gt; <a class="code" href="classitk_1_1Versor.html#5dc32e252b30fcaee4f0c48330f3d2ff">GetVnlQuaternion</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
<a name="l00085"></a>00085 
<a name="l00089"></a>00089   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Versor.html#9da1e5c6d1c9a51daae55684021048a1">Set</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html#52ec040aa0278c862ab37fa167b4b2fb">VnlQuaternionType</a> &amp; ); 
<a name="l00090"></a>00090 
<a name="l00108"></a>00108   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Versor.html#9da1e5c6d1c9a51daae55684021048a1">Set</a>( T x, T y, T z, T w );  
<a name="l00110"></a>00110 
<a name="l00111"></a>00111 
<a name="l00114"></a>00114   <a class="code" href="classitk_1_1Versor.html#f9a3d71d51822d2f76ae31fa2c53e424">Versor</a>();
<a name="l00115"></a>00115 
<a name="l00117"></a>00117   <a class="code" href="classitk_1_1Versor.html#f9a3d71d51822d2f76ae31fa2c53e424">Versor</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a> &amp; v);
<a name="l00118"></a>00118 
<a name="l00120"></a>00120   <span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a>&amp; <a class="code" href="classitk_1_1Versor.html#9921cca6464a64d81d5f1d3777b8893a">operator=</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a> &amp; v);
<a name="l00121"></a>00121 
<a name="l00125"></a>00125   <span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a>&amp; <a class="code" href="classitk_1_1Versor.html#e8431eb4817b6d46170501bad0b6e5c3">operator*=</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a> &amp; v);
<a name="l00126"></a>00126 
<a name="l00131"></a>00131   <span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a>&amp; <a class="code" href="classitk_1_1Versor.html#c82e7509e446e1b04eaf4f3f27184cdd">operator/=</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a> &amp; v);
<a name="l00132"></a>00132 
<a name="l00133"></a>00133 
<a name="l00137"></a>00137   <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a> <a class="code" href="classitk_1_1Versor.html#bf44ded0b41b1b6aff8bf9719e561d48">GetTensor</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
<a name="l00138"></a>00138 
<a name="l00143"></a>00143   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Versor.html#e910c46eaaa309f8afae8671a0363ff6">Normalize</a>(<span class="keywordtype">void</span>);
<a name="l00144"></a>00144 
<a name="l00147"></a>00147   <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a> <a class="code" href="classitk_1_1Versor.html#b17c97cf8c95d49354089d06223a1c4a">GetConjugate</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
<a name="l00148"></a>00148 
<a name="l00152"></a>00152   <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a> <a class="code" href="classitk_1_1Versor.html#7a4e827179aa5bb5c08d733b08e3f144">GetReciprocal</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
<a name="l00153"></a>00153 
<a name="l00156"></a>00156   <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a> <a class="code" href="classitk_1_1Versor.html#8b4a1917598e4474f5d49bdb96abaee2">operator*</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a> &amp;vec) <span class="keyword">const</span>;
<a name="l00157"></a>00157 
<a name="l00159"></a>00159   <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a> <a class="code" href="classitk_1_1Versor.html#8997dba400b5514ef42eb218205be062">operator/</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a> &amp;vec) <span class="keyword">const</span>;
<a name="l00160"></a>00160 
<a name="l00163"></a>00163   <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1Versor.html#9399ffb749237306ca30d586466cc187">operator==</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a> &amp;vec) <span class="keyword">const</span>;
<a name="l00164"></a>00164 
<a name="l00167"></a>00167   <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1Versor.html#8a58bd499236bd10d5c4cb3cf4e8dfb7">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Self</a> &amp;vec) <span class="keyword">const</span>;
<a name="l00168"></a>00168 
<a name="l00170"></a>00170   <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a> <a class="code" href="classitk_1_1Versor.html#184b40d091f937447bfcda86af49d818">GetScalar</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
<a name="l00171"></a>00171 
<a name="l00173"></a><a class="code" href="classitk_1_1Versor.html#0d83976fe33626aace4e684f39ae3da2">00173</a>   <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a> <a class="code" href="classitk_1_1Versor.html#0d83976fe33626aace4e684f39ae3da2">GetX</a>( <span class="keywordtype">void</span> )<span class="keyword"> const</span>
<a name="l00174"></a>00174 <span class="keyword">    </span>{ <span class="keywordflow">return</span> m_X; }
<a name="l00175"></a>00175 
<a name="l00177"></a><a class="code" href="classitk_1_1Versor.html#40421e9662c4f3e9a968654d02b76ad1">00177</a>   <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a> <a class="code" href="classitk_1_1Versor.html#40421e9662c4f3e9a968654d02b76ad1">GetY</a>( <span class="keywordtype">void</span> )<span class="keyword"> const</span>
<a name="l00178"></a>00178 <span class="keyword">    </span>{ <span class="keywordflow">return</span> m_Y; }
<a name="l00179"></a>00179 
<a name="l00181"></a><a class="code" href="classitk_1_1Versor.html#afbb686acd55527e05c43cf2e8e42153">00181</a>   <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a> <a class="code" href="classitk_1_1Versor.html#afbb686acd55527e05c43cf2e8e42153">GetZ</a>( <span class="keywordtype">void</span> )<span class="keyword"> const</span>
<a name="l00182"></a>00182 <span class="keyword">    </span>{ <span class="keywordflow">return</span> m_Z; }
<a name="l00183"></a>00183 
<a name="l00185"></a><a class="code" href="classitk_1_1Versor.html#c5497c3ee33a1542c2faee088803e1fe">00185</a>   <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a> <a class="code" href="classitk_1_1Versor.html#c5497c3ee33a1542c2faee088803e1fe">GetW</a>( <span class="keywordtype">void</span> )<span class="keyword"> const</span>
<a name="l00186"></a>00186 <span class="keyword">    </span>{ <span class="keywordflow">return</span> m_W; }
<a name="l00187"></a>00187 
<a name="l00189"></a>00189   <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a> <a class="code" href="classitk_1_1Versor.html#44eb824ede24c516dbf7600199a5dbbd">GetAngle</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
<a name="l00190"></a>00190 
<a name="l00193"></a>00193   <a class="code" href="classitk_1_1Versor.html#747ef420c3854a48e416f50d21496db4">VectorType</a> <a class="code" href="classitk_1_1Versor.html#98dbb150e21c9c6cd02f8432d2484c85">GetAxis</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
<a name="l00194"></a>00194 
<a name="l00199"></a>00199   <a class="code" href="classitk_1_1Versor.html#747ef420c3854a48e416f50d21496db4">VectorType</a> <a class="code" href="classitk_1_1Versor.html#f1a9cb958d24cd34c2bd60024e24b841">GetRight</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
<a name="l00200"></a>00200 
<a name="l00204"></a>00204   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Versor.html#9da1e5c6d1c9a51daae55684021048a1">Set</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html#747ef420c3854a48e416f50d21496db4">VectorType</a> &amp; axis, <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a> angle );
<a name="l00205"></a>00205 
<a name="l00211"></a>00211   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Versor.html#9da1e5c6d1c9a51daae55684021048a1">Set</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html#0a8a1bfdeb3dd64eb7245cdc4dbe0c11">MatrixType</a> &amp; m );
<a name="l00212"></a>00212 
<a name="l00218"></a>00218   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Versor.html#9da1e5c6d1c9a51daae55684021048a1">Set</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html#747ef420c3854a48e416f50d21496db4">VectorType</a> &amp; axis );
<a name="l00219"></a>00219 
<a name="l00226"></a>00226   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Versor.html#df882c1fa42c755cfb42c77bea7fdfdf">SetRotationAroundX</a>( <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a> angle );
<a name="l00227"></a>00227 
<a name="l00234"></a>00234   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Versor.html#c11199be1609dcad266f1bdea9d04d84">SetRotationAroundY</a>( <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a> angle );
<a name="l00235"></a>00235 
<a name="l00242"></a>00242   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Versor.html#817c1cab4a5566d40f46035345754539">SetRotationAroundZ</a>( <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a> angle );
<a name="l00243"></a>00243 
<a name="l00246"></a>00246   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Versor.html#23ca7d20f1af882701447ec571ab0437">SetIdentity</a>();
<a name="l00247"></a>00247 
<a name="l00249"></a>00249   <a class="code" href="classitk_1_1Versor.html#747ef420c3854a48e416f50d21496db4">VectorType</a> <a class="code" href="classitk_1_1Versor.html#084a6f3bfbb0765a3077ffb9d4842d77">Transform</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html#747ef420c3854a48e416f50d21496db4">VectorType</a> &amp; v ) <span class="keyword">const</span>;
<a name="l00250"></a>00250 
<a name="l00252"></a>00252   <a class="code" href="classitk_1_1Versor.html#cc335f5a15ed33693fb93f24c8d08e9d">CovariantVectorType</a> <a class="code" href="classitk_1_1Versor.html#084a6f3bfbb0765a3077ffb9d4842d77">Transform</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html#cc335f5a15ed33693fb93f24c8d08e9d">CovariantVectorType</a> &amp; v ) <span class="keyword">const</span>;
<a name="l00253"></a>00253 
<a name="l00255"></a>00255   <a class="code" href="classitk_1_1Versor.html#39114efc8e606651f7b6dc5e17525808">PointType</a> <a class="code" href="classitk_1_1Versor.html#084a6f3bfbb0765a3077ffb9d4842d77">Transform</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html#39114efc8e606651f7b6dc5e17525808">PointType</a> &amp; v ) <span class="keyword">const</span>;
<a name="l00256"></a>00256 
<a name="l00258"></a>00258   <a class="code" href="classitk_1_1Versor.html#855ceff5742080cc4a1c31089564f861">VnlVectorType</a> <a class="code" href="classitk_1_1Versor.html#084a6f3bfbb0765a3077ffb9d4842d77">Transform</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html#855ceff5742080cc4a1c31089564f861">VnlVectorType</a> &amp; v ) <span class="keyword">const</span>;
<a name="l00259"></a>00259 
<a name="l00261"></a>00261   <a class="code" href="classitk_1_1Versor.html#0a8a1bfdeb3dd64eb7245cdc4dbe0c11">MatrixType</a> <a class="code" href="classitk_1_1Versor.html#4f0f947910bdb1a80ab0553a72cc34e5">GetMatrix</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
<a name="l00262"></a>00262 
<a name="l00264"></a>00264   <a class="code" href="classitk_1_1Versor.html#5168833b384aa41aa5db77e850e1af21">Self</a> <a class="code" href="classitk_1_1Versor.html#52d7add53c9b883fd1076ff8565b6718">SquareRoot</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
<a name="l00265"></a>00265 
<a name="l00269"></a>00269   <a class="code" href="classitk_1_1Versor.html#5168833b384aa41aa5db77e850e1af21">Self</a> <a class="code" href="classitk_1_1Versor.html#4271004f22244e8fee9ec78cbae0fbc9">Exponential</a>( <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a> exponent ) <span class="keyword">const</span>;
<a name="l00270"></a>00270 
<a name="l00271"></a>00271 <span class="keyword">private</span>: 
<a name="l00273"></a>00273   <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a>  m_X;
<a name="l00274"></a>00274 
<a name="l00276"></a>00276   <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a>  m_Y;
<a name="l00277"></a>00277 
<a name="l00279"></a>00279   <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a>  m_Z;
<a name="l00280"></a>00280 
<a name="l00282"></a>00282   <a class="code" href="classitk_1_1Versor.html#9dfee332294098f7bda65163c2615588">ValueType</a>  m_W;
<a name="l00283"></a>00283 };
<a name="l00284"></a>00284 
<a name="l00285"></a>00285 <span class="keyword">template</span>&lt; <span class="keyword">class</span> T&gt;  
<a name="l00286"></a><a class="code" href="namespaceitk.html#9f6414cb1f0e69961dacabc55de831cb">00286</a> <a class="code" href="itkWin32Header_8h.html#7d4384322557205d75f0719c012dded6">ITK_EXPORT</a> std::ostream&amp; <a class="code" href="namespaceitk.html#1a9c40969bca6a50e9d688a35d3c4984">operator&lt;&lt;</a>( std::ostream&amp; os, 
<a name="l00287"></a>00287                                      <span class="keyword">const</span> <a class="code" href="classitk_1_1Versor.html" title="A templated class holding a unit quaternion.">Versor&lt;T&gt;</a> &amp; v)
<a name="l00288"></a>00288 {
<a name="l00289"></a>00289   os &lt;&lt; <span class="stringliteral">"[ "</span>;
<a name="l00290"></a>00290   os &lt;&lt; v.<a class="code" href="classitk_1_1Versor.html#0d83976fe33626aace4e684f39ae3da2">GetX</a>() &lt;&lt; <span class="stringliteral">", "</span> &lt;&lt; v.<a class="code" href="classitk_1_1Versor.html#40421e9662c4f3e9a968654d02b76ad1">GetY</a>() &lt;&lt; <span class="stringliteral">", "</span>;
<a name="l00291"></a>00291   os &lt;&lt; v.<a class="code" href="classitk_1_1Versor.html#afbb686acd55527e05c43cf2e8e42153">GetZ</a>() &lt;&lt; <span class="stringliteral">", "</span> &lt;&lt; v.<a class="code" href="classitk_1_1Versor.html#c5497c3ee33a1542c2faee088803e1fe">GetW</a>() &lt;&lt; <span class="stringliteral">" ]"</span>;
<a name="l00292"></a>00292   <span class="keywordflow">return</span> os;
<a name="l00293"></a>00293 }
<a name="l00294"></a>00294 
<a name="l00295"></a>00295 <span class="keyword">template</span>&lt; <span class="keyword">class</span> T&gt;
<a name="l00296"></a>00296 <a class="code" href="itkWin32Header_8h.html#7d4384322557205d75f0719c012dded6">ITK_EXPORT</a> std::istream&amp; <a class="code" href="namespaceitk.html#687a81e337cd6bd3a5de73c2e31e6d84">operator&gt;&gt;</a>(std::istream&amp; is, 
<a name="l00297"></a>00297                                     Versor&lt;T&gt; &amp; v); 
<a name="l00298"></a>00298 
<a name="l00299"></a>00299 
<a name="l00300"></a>00300 } <span class="comment">// end namespace itk</span>
<a name="l00301"></a>00301   
<a name="l00302"></a>00302 
<a name="l00303"></a>00303 <span class="comment">// Define instantiation macro for this template.</span>
<a name="l00304"></a><a class="code" href="itkVersor_8h.html#143c8b8bcb769a0c8ea64fdd6419a6db">00304</a> <span class="preprocessor">#define ITK_TEMPLATE_Versor(_, EXPORT, x, y) namespace itk { \</span>
<a name="l00305"></a>00305 <span class="preprocessor">  _(1(class EXPORT Versor&lt; ITK_TEMPLATE_1 x &gt;)) \</span>
<a name="l00306"></a>00306 <span class="preprocessor">  namespace Templates { typedef Versor&lt; ITK_TEMPLATE_1 x &gt; Versor##y; } \</span>
<a name="l00307"></a>00307 <span class="preprocessor">  }</span>
<a name="l00308"></a>00308 <span class="preprocessor"></span>
<a name="l00309"></a>00309 <span class="preprocessor">#if ITK_TEMPLATE_EXPLICIT</span>
<a name="l00310"></a>00310 <span class="preprocessor"></span><span class="preprocessor"># include "Templates/itkVersor+-.h"</span>
<a name="l00311"></a>00311 <span class="preprocessor">#endif</span>
<a name="l00312"></a>00312 <span class="preprocessor"></span>
<a name="l00313"></a>00313 <span class="preprocessor">#if ITK_TEMPLATE_TXX</span>
<a name="l00314"></a>00314 <span class="preprocessor"></span><span class="preprocessor"># include "itkVersor.txx"</span>
<a name="l00315"></a>00315 <span class="preprocessor">#endif</span>
<a name="l00316"></a>00316 <span class="preprocessor"></span>
<a name="l00317"></a>00317 
<a name="l00318"></a>00318 <span class="preprocessor">#endif </span>
<a name="l00319"></a>00319 <span class="preprocessor"></span>
</pre></div></div>
<hr><address><small>
Generated at Fri May 8 00:34:49 2009 for ITK  by <a href="http://www.stack.nl/~dimitri/doxygen/index.html"> <img 
src="http://www.stack.nl/~dimitri/doxygen/doxygen.png" alt="doxygen"
align="middle" border=0 width=110 height=53>
</a> 1.5.9 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
 &copy;&nbsp;1997-2000</small></address>
</body>
</html>