Sophie

Sophie

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

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: itkVector.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>itkVector.h</h1><a href="itkVector_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: itkVector.h,v $</span>
<a name="l00005"></a>00005 <span class="comment">  Language:  C++</span>
<a name="l00006"></a>00006 <span class="comment">  Date:      $Date: 2008-05-12 21:11:21 $</span>
<a name="l00007"></a>00007 <span class="comment">  Version:   $Revision: 1.82 $</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 __itkVector_h</span>
<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define __itkVector_h</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span>
<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="itkFixedArray_8h.html">itkFixedArray.h</a>"</span>
<a name="l00021"></a>00021 
<a name="l00022"></a>00022 <span class="preprocessor">#include "itkNumericTraits.h"</span>   <span class="comment">// RealValueType type</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;vnl/vnl_vector_ref.h&gt;</span> <span class="comment">// Get_vnl_vector method return</span>
<a name="l00024"></a>00024 
<a name="l00025"></a>00025 
<a name="l00026"></a>00026 <span class="keyword">namespace </span>itk
<a name="l00027"></a>00027 {
<a name="l00028"></a>00028 
<a name="l00057"></a>00057 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> NVectorDimension=3&gt;
<a name="l00058"></a><a class="code" href="classitk_1_1Vector.html">00058</a> <span class="keyword">class </span><a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Vector</a> : <span class="keyword">public</span> <a class="code" href="classitk_1_1FixedArray.html" title="Simulate a standard C array with copy semnatics.">FixedArray</a>&lt;T,NVectorDimension&gt;
<a name="l00059"></a>00059 {
<a name="l00060"></a>00060 <span class="keyword">public</span>:
<a name="l00062"></a><a class="code" href="classitk_1_1Vector.html#5c57e85364330075748dd2c629966d43">00062</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Vector</a>  <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Self</a>;
<a name="l00063"></a><a class="code" href="classitk_1_1Vector.html#586aab371935254fa24c1305c8ada2c3">00063</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1FixedArray.html">FixedArray&lt;T,NVectorDimension&gt;</a>  <a class="code" href="classitk_1_1FixedArray.html" title="Simulate a standard C array with copy semnatics.">Superclass</a>;
<a name="l00064"></a>00064 
<a name="l00067"></a><a class="code" href="classitk_1_1Vector.html#1048e34a366d73fd16db005b8b25bf12">00067</a>   <span class="keyword">typedef</span> T <a class="code" href="classitk_1_1Vector.html#1048e34a366d73fd16db005b8b25bf12">ValueType</a>;
<a name="l00068"></a><a class="code" href="classitk_1_1Vector.html#4a31d837db4d82bc3cd607c94e472d05">00068</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> NumericTraits&lt; ValueType &gt;::RealType   <a class="code" href="classitk_1_1Vector.html#4a31d837db4d82bc3cd607c94e472d05">RealValueType</a>;
<a name="l00069"></a>00069 
<a name="l00071"></a>00071   <a class="code" href="classitk_1_1Vector.html#62ea36f65e43ce733ee97c725415373d">itkStaticConstMacro</a>(Dimension, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>, NVectorDimension);
<a name="l00072"></a>00072 
<a name="l00074"></a><a class="code" href="classitk_1_1Vector.html#d60c9b495997e0c1286633daf2d48b96">00074</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Self</a> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">VectorType</a>;
<a name="l00075"></a>00075 
<a name="l00077"></a><a class="code" href="classitk_1_1Vector.html#569c7421c814600a0ed646c7e65eacbd">00077</a>   <span class="keyword">typedef</span> T <a class="code" href="classitk_1_1Vector.html#569c7421c814600a0ed646c7e65eacbd">ComponentType</a>;
<a name="l00078"></a>00078 
<a name="l00080"></a><a class="code" href="classitk_1_1Vector.html#df87b2f910661dd9ceb6bb777406505a">00080</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1FixedArray.html">FixedArray&lt;T, NVectorDimension&gt;</a>                <a class="code" href="classitk_1_1FixedArray.html" title="Simulate a standard C array with copy semnatics.">BaseArray</a>;
<a name="l00081"></a>00081 
<a name="l00083"></a><a class="code" href="classitk_1_1Vector.html#44974cdf3362648a57cba351baf95ab6">00083</a>   <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1Vector.html#44974cdf3362648a57cba351baf95ab6">GetVectorDimension</a>() 
<a name="l00084"></a>00084     { <span class="keywordflow">return</span> NVectorDimension; }  
<a name="l00085"></a>00085 
<a name="l00087"></a>00087   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Vector.html#736f6e6d4549f16fc2bbbf732b4eed97">SetVnlVector</a>( <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">vnl_vector&lt;T&gt;</a> &amp; );
<a name="l00088"></a>00088 
<a name="l00090"></a>00090   vnl_vector_ref&lt;T&gt; <a class="code" href="classitk_1_1Vector.html#b17c8a7a555074a8f23ec070982dd605">GetVnlVector</a>( <span class="keywordtype">void</span> );
<a name="l00091"></a>00091 
<a name="l00093"></a>00093   <a class="code" href="classvnl__vector.html">vnl_vector&lt;T&gt;</a> <a class="code" href="classitk_1_1Vector.html#b17c8a7a555074a8f23ec070982dd605">GetVnlVector</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
<a name="l00094"></a>00094 
<a name="l00095"></a>00095 
<a name="l00098"></a>00098   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Vector.html#81676686efa6f6abb245b2e586f34072">Set_vnl_vector</a>( <span class="keyword">const</span> <a class="code" href="classvnl__vector.html">vnl_vector&lt;T&gt;</a> &amp; );
<a name="l00099"></a>00099 
<a name="l00102"></a>00102   vnl_vector_ref&lt;T&gt; <a class="code" href="classitk_1_1Vector.html#14f3c33f282e82bf91774ad529e5c922">Get_vnl_vector</a>( <span class="keywordtype">void</span> );
<a name="l00103"></a>00103 
<a name="l00106"></a>00106   <a class="code" href="classvnl__vector.html">vnl_vector&lt;T&gt;</a> <a class="code" href="classitk_1_1Vector.html#14f3c33f282e82bf91774ad529e5c922">Get_vnl_vector</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
<a name="l00107"></a>00107 
<a name="l00109"></a><a class="code" href="classitk_1_1Vector.html#9edd67ea37eefae9cdce26ba8197986f">00109</a>   <a class="code" href="classitk_1_1Vector.html#9edd67ea37eefae9cdce26ba8197986f">Vector</a>(): <a class="code" href="classitk_1_1FixedArray.html" title="Simulate a standard C array with copy semnatics.">BaseArray</a>() { }
<a name="l00110"></a>00110   <a class="code" href="classitk_1_1Vector.html#9edd67ea37eefae9cdce26ba8197986f">Vector</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html#1048e34a366d73fd16db005b8b25bf12">ValueType</a>&amp; r);
<a name="l00111"></a>00111 
<a name="l00113"></a>00113   <span class="keyword">template</span>&lt; <span class="keyword">class</span> TVectorValueType &gt;
<a name="l00114"></a><a class="code" href="classitk_1_1Vector.html#a7de004689c627f2a681f3d4c8c2d619">00114</a>   <a class="code" href="classitk_1_1Vector.html#a7de004689c627f2a681f3d4c8c2d619">Vector</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Vector&lt; TVectorValueType, NVectorDimension&gt;</a>&amp; r): <a class="code" href="classitk_1_1FixedArray.html" title="Simulate a standard C array with copy semnatics.">BaseArray</a>(r) {}
<a name="l00115"></a><a class="code" href="classitk_1_1Vector.html#4a1b2c84432ad552e9b1b0694edc5e87">00115</a>   <a class="code" href="classitk_1_1Vector.html#4a1b2c84432ad552e9b1b0694edc5e87">Vector</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html#1048e34a366d73fd16db005b8b25bf12">ValueType</a> r[Dimension]): <a class="code" href="classitk_1_1FixedArray.html" title="Simulate a standard C array with copy semnatics.">BaseArray</a>(r) {}  
<a name="l00117"></a>00117 
<a name="l00119"></a>00119   <span class="keyword">template</span>&lt; <span class="keyword">class</span> TVectorValueType &gt;
<a name="l00120"></a><a class="code" href="classitk_1_1Vector.html#7c8358c277c1e6db12827e675dde5fac">00120</a>   <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Vector</a>&amp; <a class="code" href="classitk_1_1Vector.html#7c8358c277c1e6db12827e675dde5fac">operator= </a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Vector&lt; TVectorValueType, NVectorDimension&gt;</a> &amp; r)
<a name="l00121"></a>00121     {
<a name="l00122"></a>00122     <a class="code" href="classitk_1_1FixedArray.html#d16ed6955993844c65a5cf404c6e32d9">BaseArray::operator=</a>(r);
<a name="l00123"></a>00123     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00124"></a>00124     }
<a name="l00126"></a>00126 
<a name="l00127"></a>00127   <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Vector</a>&amp; <a class="code" href="classitk_1_1Vector.html#7c8358c277c1e6db12827e675dde5fac">operator= </a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html#1048e34a366d73fd16db005b8b25bf12">ValueType</a> r[NVectorDimension]);
<a name="l00128"></a>00128     
<a name="l00130"></a><a class="code" href="classitk_1_1Vector.html#6bd1f27f9700c861e6cff86ac17049b6">00130</a>   <span class="keyword">template</span>&lt; <span class="keyword">class</span> Tt &gt; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Self</a>&amp; <a class="code" href="classitk_1_1Vector.html#6bd1f27f9700c861e6cff86ac17049b6">operator*=</a>(<span class="keyword">const</span> Tt &amp;value)
<a name="l00131"></a>00131     {
<a name="l00132"></a>00132     <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i&lt;NVectorDimension; i++)
<a name="l00133"></a>00133       {
<a name="l00134"></a>00134       (*this)[i] = <span class="keyword">static_cast&lt;</span> <a class="code" href="classitk_1_1Vector.html#1048e34a366d73fd16db005b8b25bf12">ValueType</a> <span class="keyword">&gt;</span>((*this)[i] * value);
<a name="l00135"></a>00135       }
<a name="l00136"></a>00136     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00137"></a>00137     }
<a name="l00139"></a>00139 
<a name="l00141"></a><a class="code" href="classitk_1_1Vector.html#e32b9ba0d2fbf2bee1a9b36469820815">00141</a>   <span class="keyword">template</span>&lt; <span class="keyword">class</span> Tt &gt; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Self</a>&amp; <a class="code" href="classitk_1_1Vector.html#e32b9ba0d2fbf2bee1a9b36469820815">operator/=</a>(<span class="keyword">const</span> Tt &amp;value)
<a name="l00142"></a>00142     {
<a name="l00143"></a>00143     <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i&lt;NVectorDimension; i++)
<a name="l00144"></a>00144       {
<a name="l00145"></a>00145       (*this)[i] = <span class="keyword">static_cast&lt;</span> <a class="code" href="classitk_1_1Vector.html#1048e34a366d73fd16db005b8b25bf12">ValueType</a> <span class="keyword">&gt;</span>((*this)[i] / value);
<a name="l00146"></a>00146       }
<a name="l00147"></a>00147     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00148"></a>00148     }
<a name="l00150"></a>00150 
<a name="l00152"></a>00152   <span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html#5c57e85364330075748dd2c629966d43">Self</a>&amp; <a class="code" href="classitk_1_1Vector.html#926552fc9e23c350b972b9a55e9d2f0d">operator+=</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html#5c57e85364330075748dd2c629966d43">Self</a> &amp;vec);
<a name="l00153"></a>00153 
<a name="l00155"></a>00155   <span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html#5c57e85364330075748dd2c629966d43">Self</a>&amp; <a class="code" href="classitk_1_1Vector.html#3bc8899675b678aac2285715b39a54d6">operator-=</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html#5c57e85364330075748dd2c629966d43">Self</a> &amp;vec);
<a name="l00156"></a>00156 
<a name="l00159"></a>00159   <a class="code" href="classitk_1_1Vector.html#5c57e85364330075748dd2c629966d43">Self</a> <a class="code" href="classitk_1_1Vector.html#fbdc40fbc7cc222261ffa9418fd443d4">operator-</a>() <span class="keyword">const</span>;
<a name="l00160"></a>00160 
<a name="l00162"></a>00162   <a class="code" href="classitk_1_1Vector.html#5c57e85364330075748dd2c629966d43">Self</a> <a class="code" href="classitk_1_1Vector.html#1e86ef661ed48b5a688250d34bcfe10f">operator+</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html#5c57e85364330075748dd2c629966d43">Self</a> &amp;vec) <span class="keyword">const</span>;
<a name="l00163"></a>00163 
<a name="l00165"></a>00165   <a class="code" href="classitk_1_1Vector.html#5c57e85364330075748dd2c629966d43">Self</a> <a class="code" href="classitk_1_1Vector.html#fbdc40fbc7cc222261ffa9418fd443d4">operator-</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html#5c57e85364330075748dd2c629966d43">Self</a> &amp;vec) <span class="keyword">const</span>;
<a name="l00166"></a>00166 
<a name="l00169"></a>00169   <a class="code" href="classitk_1_1Vector.html#1048e34a366d73fd16db005b8b25bf12">ValueType</a> <a class="code" href="classitk_1_1Vector.html#51bad5a3835ffc0fbbc02d5437f7e691">operator*</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html#5c57e85364330075748dd2c629966d43">Self</a> &amp;vec) <span class="keyword">const</span>;
<a name="l00170"></a>00170 
<a name="l00173"></a><a class="code" href="classitk_1_1Vector.html#bc6ce860d5adcb03bbfd129c1ba2c409">00173</a>   <span class="keyword">inline</span> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Self</a> <a class="code" href="classitk_1_1Vector.html#51bad5a3835ffc0fbbc02d5437f7e691">operator*</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html#1048e34a366d73fd16db005b8b25bf12">ValueType</a>&amp; value)<span class="keyword"> const</span>
<a name="l00174"></a>00174 <span class="keyword">    </span>{
<a name="l00175"></a>00175     <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Self</a> result;
<a name="l00176"></a>00176     <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i&lt;NVectorDimension; i++) 
<a name="l00177"></a>00177       {
<a name="l00178"></a>00178       result[i] = <span class="keyword">static_cast&lt;</span> <a class="code" href="classitk_1_1Vector.html#1048e34a366d73fd16db005b8b25bf12">ValueType</a> <span class="keyword">&gt;</span>((*this)[i] * value);
<a name="l00179"></a>00179       }
<a name="l00180"></a>00180     <span class="keywordflow">return</span> result;
<a name="l00181"></a>00181     }
<a name="l00183"></a>00183 
<a name="l00186"></a><a class="code" href="classitk_1_1Vector.html#a5b026284e36f952b9b6c7996946d99d">00186</a>   <span class="keyword">template</span>&lt; <span class="keyword">class</span> Tt &gt; <span class="keyword">inline</span> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Self</a> <a class="code" href="classitk_1_1Vector.html#a5b026284e36f952b9b6c7996946d99d">operator/</a>(<span class="keyword">const</span> Tt&amp; value)<span class="keyword"> const</span>
<a name="l00187"></a>00187 <span class="keyword">    </span>{
<a name="l00188"></a>00188     <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Self</a> result;
<a name="l00189"></a>00189     <span class="keywordflow">for</span>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i&lt;NVectorDimension; i++) 
<a name="l00190"></a>00190       {
<a name="l00191"></a>00191       result[i] = <span class="keyword">static_cast&lt;</span> <a class="code" href="classitk_1_1Vector.html#1048e34a366d73fd16db005b8b25bf12">ValueType</a> <span class="keyword">&gt;</span>((*this)[i] / value);
<a name="l00192"></a>00192       }
<a name="l00193"></a>00193     <span class="keywordflow">return</span> result;
<a name="l00194"></a>00194     }
<a name="l00196"></a>00196 
<a name="l00201"></a><a class="code" href="classitk_1_1Vector.html#aad054c8f9daeacc0e4a9e1ac41b1f6c">00201</a>   <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1Vector.html#aad054c8f9daeacc0e4a9e1ac41b1f6c">operator==</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Self</a>&amp; v)<span class="keyword"> const</span>
<a name="l00202"></a>00202 <span class="keyword">    </span>{ <span class="keywordflow">return</span> <a class="code" href="classitk_1_1FixedArray.html#c00b25f8a41da2d065f9f154d2ddc400">Superclass::operator==</a>(v); }
<a name="l00203"></a><a class="code" href="classitk_1_1Vector.html#250bb3d6ffaaa4f76aa493161da34638">00203</a>   <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1Vector.html#250bb3d6ffaaa4f76aa493161da34638">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Self</a>&amp; v)<span class="keyword"> const</span>
<a name="l00204"></a>00204 <span class="keyword">    </span>{ <span class="keywordflow">return</span> !<a class="code" href="classitk_1_1Vector.html#aad054c8f9daeacc0e4a9e1ac41b1f6c">operator==</a>(v); }
<a name="l00206"></a>00206 
<a name="l00208"></a>00208   <a class="code" href="classitk_1_1Vector.html#4a31d837db4d82bc3cd607c94e472d05">RealValueType</a> <a class="code" href="classitk_1_1Vector.html#0f103636ffc85fd3df1ae6c838d3e70e">GetNorm</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>;
<a name="l00209"></a>00209 
<a name="l00211"></a>00211   <a class="code" href="classitk_1_1Vector.html#4a31d837db4d82bc3cd607c94e472d05">RealValueType</a> <a class="code" href="classitk_1_1Vector.html#7456ed4f2f3d0c6f1d8c73120dd69abc">GetSquaredNorm</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>; 
<a name="l00212"></a>00212 
<a name="l00214"></a><a class="code" href="classitk_1_1Vector.html#dac8a73b6789f76176c58ca67e1d9a94">00214</a>   <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1Vector.html#dac8a73b6789f76176c58ca67e1d9a94">GetNumberOfComponents</a>(){ <span class="keywordflow">return</span> NVectorDimension;}
<a name="l00215"></a>00215 
<a name="l00217"></a>00217   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Vector.html#7e9abf11fcebea563f91fc0703f7339c">Normalize</a>(<span class="keywordtype">void</span>);
<a name="l00218"></a>00218 
<a name="l00219"></a><a class="code" href="classitk_1_1Vector.html#628d20b7eb446e3612d8c426f57095bc">00219</a>   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Vector.html#628d20b7eb446e3612d8c426f57095bc">SetNthComponent</a>(<span class="keywordtype">int</span> c, <span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html#569c7421c814600a0ed646c7e65eacbd">ComponentType</a>&amp; v)  
<a name="l00220"></a>00220     {  this-&gt;<a class="code" href="classitk_1_1FixedArray.html#6266788e1529e419e5028c15780d53de">operator[]</a>(c) = v; }
<a name="l00221"></a>00221   
<a name="l00224"></a>00224   <span class="keyword">template</span> &lt; <span class="keyword">typename</span> TCoordRepB &gt;
<a name="l00225"></a><a class="code" href="classitk_1_1Vector.html#39ac43f32755381894812aff1abbfd8d">00225</a>   <span class="keywordtype">void</span> <a class="code" href="classitk_1_1Vector.html#39ac43f32755381894812aff1abbfd8d">CastFrom</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Vector&lt;TCoordRepB,NVectorDimension&gt;</a> &amp; pa )
<a name="l00226"></a>00226   {
<a name="l00227"></a>00227     <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i&lt;NVectorDimension; i++ )
<a name="l00228"></a>00228       {
<a name="l00229"></a>00229       (*this)[i] = <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>( pa[i] );
<a name="l00230"></a>00230       }
<a name="l00231"></a>00231   }
<a name="l00233"></a>00233 
<a name="l00234"></a>00234 };
<a name="l00235"></a>00235 
<a name="l00238"></a>00238 <span class="keyword">template</span>&lt; <span class="keyword">class</span> T, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> NVectorDimension &gt;
<a name="l00239"></a>00239 <span class="keyword">inline</span>
<a name="l00240"></a>00240 Vector&lt;T,NVectorDimension&gt;
<a name="l00241"></a><a class="code" href="namespaceitk.html#eca1ba1b57590d14dd37efff87c95eb5">00241</a> <a class="code" href="namespaceitk.html#f78c6e7736d8f1eb0a9924605a33cded">operator*</a>(<span class="keyword">const</span> T &amp;scalar, <span class="keyword">const</span>  <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Vector&lt;T,NVectorDimension&gt;</a> &amp; v)
<a name="l00242"></a>00242 {
<a name="l00243"></a>00243   <span class="keywordflow">return</span> v * scalar;
<a name="l00244"></a>00244 }
<a name="l00245"></a>00245 
<a name="l00246"></a>00246 <span class="keyword">template</span>&lt; <span class="keyword">class</span> T, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> NVectorDimension &gt;  
<a name="l00247"></a>00247 std::ostream&amp; <a class="code" href="namespaceitk.html#1a9c40969bca6a50e9d688a35d3c4984">operator&lt;&lt;</a>(std::ostream&amp; os, 
<a name="l00248"></a>00248                                     <span class="keyword">const</span> Vector&lt;T,NVectorDimension&gt; &amp; v); 
<a name="l00249"></a>00249 
<a name="l00250"></a>00250 <span class="keyword">template</span>&lt; <span class="keyword">class</span> T, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> NVectorDimension &gt;  
<a name="l00251"></a>00251 std::istream&amp; <a class="code" href="namespaceitk.html#687a81e337cd6bd3a5de73c2e31e6d84">operator&gt;&gt;</a>(std::istream&amp; is, 
<a name="l00252"></a>00252                                     Vector&lt;T,NVectorDimension&gt; &amp; v); 
<a name="l00253"></a>00253 
<a name="l00254"></a>00254 <a class="code" href="itkWin32Header_8h.html#faefe352c9fb4179f5a770afc70ea90f">ITKCommon_EXPORT</a> Vector&lt;double,3&gt; <a class="code" href="namespaceitk.html#84705e26daae45fb95382fe1dc953c6e">CrossProduct</a>( <span class="keyword">const</span> Vector&lt;double,3&gt; &amp;,
<a name="l00255"></a>00255                                           <span class="keyword">const</span> Vector&lt;double,3&gt; &amp;  );
<a name="l00256"></a>00256 
<a name="l00257"></a>00257 <a class="code" href="itkWin32Header_8h.html#faefe352c9fb4179f5a770afc70ea90f">ITKCommon_EXPORT</a> Vector&lt;float,3&gt; <a class="code" href="namespaceitk.html#84705e26daae45fb95382fe1dc953c6e">CrossProduct</a>( <span class="keyword">const</span> Vector&lt;float,3&gt; &amp;,
<a name="l00258"></a>00258                                          <span class="keyword">const</span> Vector&lt;float,3&gt; &amp;  );
<a name="l00259"></a>00259 
<a name="l00260"></a>00260 <a class="code" href="itkWin32Header_8h.html#faefe352c9fb4179f5a770afc70ea90f">ITKCommon_EXPORT</a> Vector&lt;int,3&gt; <a class="code" href="namespaceitk.html#84705e26daae45fb95382fe1dc953c6e">CrossProduct</a>( <span class="keyword">const</span> Vector&lt;int,3&gt; &amp;,
<a name="l00261"></a>00261                                        <span class="keyword">const</span> Vector&lt;int,3&gt; &amp;  );
<a name="l00262"></a>00262 
<a name="l00263"></a>00263 } <span class="comment">// end namespace itk</span>
<a name="l00264"></a>00264 
<a name="l00265"></a>00265 
<a name="l00266"></a>00266 <span class="comment">// Define instantiation macro for this template.</span>
<a name="l00267"></a><a class="code" href="itkVector_8h.html#ea63b81ed6c87f05f3f9c55fcd7bbbcf">00267</a> <span class="preprocessor">#define ITK_TEMPLATE_Vector(_, EXPORT, x, y) namespace itk { \</span>
<a name="l00268"></a>00268 <span class="preprocessor">  _(2(class EXPORT Vector&lt; ITK_TEMPLATE_2 x &gt;)) \</span>
<a name="l00269"></a>00269 <span class="preprocessor">  _(1(EXPORT std::ostream&amp; operator&lt;&lt;(std::ostream&amp;, \</span>
<a name="l00270"></a>00270 <span class="preprocessor">                                      const Vector&lt; ITK_TEMPLATE_2 x &gt;&amp;))) \</span>
<a name="l00271"></a>00271 <span class="preprocessor">  _(1(EXPORT std::istream&amp; operator&gt;&gt;(std::istream&amp;, \</span>
<a name="l00272"></a>00272 <span class="preprocessor">                                      Vector&lt; ITK_TEMPLATE_2 x &gt;&amp;))) \</span>
<a name="l00273"></a>00273 <span class="preprocessor">  namespace Templates { typedef Vector&lt; ITK_TEMPLATE_2 x &gt; Vector##y; } \</span>
<a name="l00274"></a>00274 <span class="preprocessor">  }</span>
<a name="l00275"></a>00275 <span class="preprocessor"></span>
<a name="l00276"></a>00276 <span class="preprocessor">#if ITK_TEMPLATE_EXPLICIT</span>
<a name="l00277"></a>00277 <span class="preprocessor"></span><span class="preprocessor"># include "Templates/itkVector+-.h"</span>
<a name="l00278"></a>00278 <span class="preprocessor">#endif</span>
<a name="l00279"></a>00279 <span class="preprocessor"></span>
<a name="l00280"></a>00280 <span class="comment">//</span>
<a name="l00281"></a>00281 <span class="comment">// Numeric traits must be included after (optionally) including the explicit</span>
<a name="l00282"></a>00282 <span class="comment">// instantiations control of this class, in case the implicit instantiation</span>
<a name="l00283"></a>00283 <span class="comment">// needs to be disabled. </span>
<a name="l00284"></a>00284 <span class="comment">//</span>
<a name="l00285"></a>00285 <span class="comment">// NumericTraits must be included before (optionally) including the .txx file,</span>
<a name="l00286"></a>00286 <span class="comment">// in case the .txx requires to use NumericTraits.</span>
<a name="l00287"></a>00287 <span class="comment">//</span>
<a name="l00288"></a>00288 <span class="preprocessor">#include "itkNumericTraitsVectorPixel.h"</span>
<a name="l00289"></a>00289 
<a name="l00290"></a>00290 <span class="preprocessor">#if ITK_TEMPLATE_TXX</span>
<a name="l00291"></a>00291 <span class="preprocessor"></span><span class="preprocessor"># include "itkVector.txx"</span>
<a name="l00292"></a>00292 <span class="preprocessor">#endif</span>
<a name="l00293"></a>00293 <span class="preprocessor"></span>
<a name="l00294"></a>00294 
<a name="l00295"></a>00295 <span class="preprocessor">#endif</span>
<a name="l00296"></a>00296 <span class="preprocessor"></span>
</pre></div></div>
<hr><address><small>
Generated at Fri May 8 00:27:06 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>