<!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> <a href="modules.html" class="qindex">Groups</a> <a href="namespaces.html" class="qindex">Namespace List</a> <a href="hierarchy.html" class="qindex">Class Hierarchy</a> <a href="classes.html" class="qindex">Alphabetical List</a> <a href="annotated.html" class="qindex">Compound List</a> <a href="files.html" class="qindex">File List</a> <a href="namespacemembers.html" class="qindex">Namespace Members</a> <a href="functions.html" class="qindex">Compound Members</a> <a href="globals.html" class="qindex">File Members</a> <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> » <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 & 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><<span class="keyword">class</span> T> <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<ValueType>::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<T,3></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<T,3></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<T,3></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<T,3> <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<T> <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<T,3,3></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<T> <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> & ); <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> & 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>& <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> & 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>& <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> & 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>& <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> & 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> &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> &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> &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> &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> & 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> & 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> & 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> & 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> & 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> & 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> & 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>< <span class="keyword">class</span> T> <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& <a class="code" href="namespaceitk.html#1a9c40969bca6a50e9d688a35d3c4984">operator<<</a>( std::ostream& 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<T></a> & v) <a name="l00288"></a>00288 { <a name="l00289"></a>00289 os << <span class="stringliteral">"[ "</span>; <a name="l00290"></a>00290 os << v.<a class="code" href="classitk_1_1Versor.html#0d83976fe33626aace4e684f39ae3da2">GetX</a>() << <span class="stringliteral">", "</span> << v.<a class="code" href="classitk_1_1Versor.html#40421e9662c4f3e9a968654d02b76ad1">GetY</a>() << <span class="stringliteral">", "</span>; <a name="l00291"></a>00291 os << v.<a class="code" href="classitk_1_1Versor.html#afbb686acd55527e05c43cf2e8e42153">GetZ</a>() << <span class="stringliteral">", "</span> << v.<a class="code" href="classitk_1_1Versor.html#c5497c3ee33a1542c2faee088803e1fe">GetW</a>() << <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>< <span class="keyword">class</span> T> <a name="l00296"></a>00296 <a class="code" href="itkWin32Header_8h.html#7d4384322557205d75f0719c012dded6">ITK_EXPORT</a> std::istream& <a class="code" href="namespaceitk.html#687a81e337cd6bd3a5de73c2e31e6d84">operator>></a>(std::istream& is, <a name="l00297"></a>00297 Versor<T> & 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< ITK_TEMPLATE_1 x >)) \</span> <a name="l00306"></a>00306 <span class="preprocessor"> namespace Templates { typedef Versor< ITK_TEMPLATE_1 x > 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>, © 1997-2000</small></address> </body> </html>