Sophie

Sophie

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

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: itkCellInterface.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>itkCellInterface.h</h1><a href="itkCellInterface_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: itkCellInterface.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-07-10 19:09:39 $</span>
<a name="l00007"></a>00007 <span class="comment">  Version:   $Revision: 1.67 $</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 __itkCellInterface_h</span>
<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define __itkCellInterface_h</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span>
<a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="itkObject_8h.html">itkObject.h</a>"</span>
<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="itkObjectFactory_8h.html">itkObjectFactory.h</a>"</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;map&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="itkCellInterfaceVisitor_8h.html">itkCellInterfaceVisitor.h</a>"</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="itkAutoPointer_8h.html">itkAutoPointer.h</a>"</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="itkArray_8h.html">itkArray.h</a>"</span>
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 
<a name="l00028"></a>00028 <span class="comment">// Define a macro for CellInterface sub-classes to use</span>
<a name="l00029"></a>00029 <span class="comment">// to define the Accept and GetTopologyId virtuals used</span>
<a name="l00030"></a>00030 <span class="comment">// by the MultiVisitor class</span>
<a name="l00031"></a><a class="code" href="itkCellInterface_8h.html#7617e22aa9b8626636cc18eba6f39573">00031</a> <span class="preprocessor">#define itkCellVisitMacro(TopologyId) \</span>
<a name="l00032"></a>00032 <span class="preprocessor">static int GetTopologyId() {return TopologyId;}\</span>
<a name="l00033"></a>00033 <span class="preprocessor">virtual void Accept(unsigned long cellid, typename CellInterface&lt;PixelType,\</span>
<a name="l00034"></a>00034 <span class="preprocessor">                                               CellTraits&gt;::MultiVisitor* mv)\</span>
<a name="l00035"></a>00035 <span class="preprocessor">{\</span>
<a name="l00036"></a>00036 <span class="preprocessor">  typename CellInterfaceVisitor&lt;PixelType, CellTraits&gt;::Pointer v = \</span>
<a name="l00037"></a>00037 <span class="preprocessor">                                           mv-&gt;GetVisitor(TopologyId);\</span>
<a name="l00038"></a>00038 <span class="preprocessor">  if(v)\</span>
<a name="l00039"></a>00039 <span class="preprocessor">    {\</span>
<a name="l00040"></a>00040 <span class="preprocessor">    v-&gt;VisitFromCell(cellid, this);\</span>
<a name="l00041"></a>00041 <span class="preprocessor">    }\</span>
<a name="l00042"></a>00042 <span class="preprocessor">}</span>
<a name="l00043"></a>00043 <span class="preprocessor"></span>
<a name="l00044"></a>00044 
<a name="l00045"></a>00045 <span class="comment">// Define a macro for the common typedefs required by the </span>
<a name="l00046"></a>00046 <span class="comment">// classes deriving form CellInterface (included).</span>
<a name="l00047"></a>00047 <span class="comment">// This wouldn't be necessary if SGI compilers </span>
<a name="l00048"></a>00048 <span class="comment">// were able to inherit types.</span>
<a name="l00049"></a><a class="code" href="itkCellInterface_8h.html#3e1296d588048ac4867d18e9859da647">00049</a> <span class="preprocessor">#define itkCellCommonTypedefs( celltype ) \</span>
<a name="l00050"></a>00050 <span class="preprocessor">  typedef celltype                  Self;   \</span>
<a name="l00051"></a>00051 <span class="preprocessor">  typedef AutoPointer&lt;const Self&gt;   ConstSelfAutoPointer;  \</span>
<a name="l00052"></a>00052 <span class="preprocessor">  typedef AutoPointer&lt;Self&gt;         SelfAutoPointer;   \</span>
<a name="l00053"></a>00053 <span class="preprocessor">  typedef Self *                    RawPointer;        \</span>
<a name="l00054"></a>00054 <span class="preprocessor">  typedef const Self *              ConstRawPointer;   \</span>
<a name="l00055"></a>00055 <span class="preprocessor">  SelfAutoPointer   New(void) {                        \</span>
<a name="l00056"></a>00056 <span class="preprocessor">                SelfAutoPointer ptr( new celltype );   \</span>
<a name="l00057"></a>00057 <span class="preprocessor">                ptr.TakeOwnership();                   \</span>
<a name="l00058"></a>00058 <span class="preprocessor">                return ptr;                            \</span>
<a name="l00059"></a>00059 <span class="preprocessor">                }                                      \</span>
<a name="l00060"></a>00060 <span class="preprocessor"></span>
<a name="l00061"></a>00061 <span class="preprocessor"></span>
<a name="l00062"></a>00062 <span class="comment">// Define a macro for the common typedefs required by the </span>
<a name="l00063"></a>00063 <span class="comment">// classes deriving form CellInterface (excluded).</span>
<a name="l00064"></a>00064 <span class="comment">// This wouldn't be necessary if SGI compilers </span>
<a name="l00065"></a>00065 <span class="comment">// were able to inherit types.</span>
<a name="l00066"></a><a class="code" href="itkCellInterface_8h.html#36c4891ac730e6adc8a85f05625c79dd">00066</a> <span class="preprocessor">#define itkCellInheritedTypedefs( superclassArg ) \</span>
<a name="l00067"></a>00067 <span class="preprocessor">  typedef superclassArg                                Superclass; \</span>
<a name="l00068"></a>00068 <span class="preprocessor">  typedef typename Superclass::PixelType               PixelType;  \</span>
<a name="l00069"></a>00069 <span class="preprocessor">  typedef typename Superclass::CellType                CellType;  \</span>
<a name="l00070"></a>00070 <span class="preprocessor">  typedef typename Superclass::CellAutoPointer         CellAutoPointer;  \</span>
<a name="l00071"></a>00071 <span class="preprocessor">  typedef typename Superclass::CellConstAutoPointer    CellConstAutoPointer;  \</span>
<a name="l00072"></a>00072 <span class="preprocessor">  typedef typename Superclass::CellRawPointer          CellRawPointer;  \</span>
<a name="l00073"></a>00073 <span class="preprocessor">  typedef typename Superclass::CellConstRawPointer     CellConstRawPointer;  \</span>
<a name="l00074"></a>00074 <span class="preprocessor">  typedef typename Superclass::CellTraits              CellTraits;  \</span>
<a name="l00075"></a>00075 <span class="preprocessor">  typedef typename Superclass::CoordRepType            CoordRepType;  \</span>
<a name="l00076"></a>00076 <span class="preprocessor">  typedef typename Superclass::InterpolationWeightType \</span>
<a name="l00077"></a>00077 <span class="preprocessor">                                                     InterpolationWeightType; \</span>
<a name="l00078"></a>00078 <span class="preprocessor">  typedef typename Superclass::PointIdentifier         PointIdentifier; \</span>
<a name="l00079"></a>00079 <span class="preprocessor">  typedef typename Superclass::PointIdIterator         PointIdIterator; \</span>
<a name="l00080"></a>00080 <span class="preprocessor">  typedef typename Superclass::PointIdConstIterator    PointIdConstIterator; \</span>
<a name="l00081"></a>00081 <span class="preprocessor">  typedef typename Superclass::CellIdentifier          CellIdentifier; \</span>
<a name="l00082"></a>00082 <span class="preprocessor">  typedef typename Superclass::CellFeatureIdentifier   CellFeatureIdentifier; \</span>
<a name="l00083"></a>00083 <span class="preprocessor">  typedef typename Superclass::CellFeatureIdentifier   CellFeatureCount; \</span>
<a name="l00084"></a>00084 <span class="preprocessor">  typedef typename Superclass::PointType               PointType; \</span>
<a name="l00085"></a>00085 <span class="preprocessor">  typedef typename Superclass::VectorType              VectorType; \</span>
<a name="l00086"></a>00086 <span class="preprocessor">  typedef typename Superclass::PointsContainer         PointsContainer; \</span>
<a name="l00087"></a>00087 <span class="preprocessor">  typedef typename Superclass::UsingCellsContainer     UsingCellsContainer; \</span>
<a name="l00088"></a>00088 <span class="preprocessor">  typedef typename Superclass::CellGeometry            CellGeometry;  \</span>
<a name="l00089"></a>00089 <span class="preprocessor">  typedef typename Superclass::ParametricCoordArrayType  \</span>
<a name="l00090"></a>00090 <span class="preprocessor">                                                  ParametricCoordArrayType;  \</span>
<a name="l00091"></a>00091 <span class="preprocessor">  typedef typename Superclass::ShapeFunctionsArrayType   \</span>
<a name="l00092"></a>00092 <span class="preprocessor">                                                   ShapeFunctionsArrayType;  \</span>
<a name="l00093"></a>00093 <span class="preprocessor">  itkStaticConstMacro(PointDimension, unsigned int, Superclass::PointDimension)</span>
<a name="l00094"></a>00094 <span class="preprocessor"></span> 
<a name="l00095"></a>00095 
<a name="l00096"></a>00096 <span class="keyword">namespace </span>itk
<a name="l00097"></a>00097 {
<a name="l00098"></a>00098 
<a name="l00111"></a>00111 <span class="keyword">template</span> &lt;
<a name="l00112"></a>00112   <span class="keyword">typename</span> TPixelType,
<a name="l00113"></a>00113   <span class="keyword">typename</span> TCellTraits
<a name="l00114"></a>00114   &gt;
<a name="l00115"></a><a class="code" href="classitk_1_1CellInterface.html">00115</a> <span class="keyword">class </span><a class="code" href="classitk_1_1CellInterface.html">CellInterface</a>
<a name="l00116"></a>00116 {
<a name="l00117"></a>00117 <span class="keyword">public</span>:
<a name="l00118"></a>00118 
<a name="l00120"></a>00120   <a class="code" href="classitk_1_1CellInterface.html#da1f07629af75c4cb9a419cb6600fb29">itkCellCommonTypedefs</a>(<a class="code" href="classitk_1_1CellInterface.html">CellInterface</a>);
<a name="l00121"></a>00121 
<a name="l00123"></a><a class="code" href="classitk_1_1CellInterface.html#f4eabba41cfbf7225769cc0c8e449aca">00123</a>   <span class="keyword">typedef</span> TPixelType                                <a class="code" href="classitk_1_1CellInterface.html#f4eabba41cfbf7225769cc0c8e449aca">PixelType</a>;
<a name="l00124"></a>00124 
<a name="l00126"></a><a class="code" href="classitk_1_1CellInterface.html#08fb9fdb69965825d810eb38d42ff97d">00126</a>   <span class="keyword">typedef</span> TCellTraits                                 <a class="code" href="classitk_1_1CellInterface.html#08fb9fdb69965825d810eb38d42ff97d">CellTraits</a>;
<a name="l00127"></a>00127 
<a name="l00129"></a><a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">00129</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> CellTraits::CoordRepType            <a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a>;
<a name="l00130"></a><a class="code" href="classitk_1_1CellInterface.html#9bdd814aca10a36c6bb280690379b73f">00130</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> CellTraits::InterpolationWeightType <a class="code" href="classitk_1_1CellInterface.html#9bdd814aca10a36c6bb280690379b73f">InterpolationWeightType</a>;
<a name="l00131"></a><a class="code" href="classitk_1_1CellInterface.html#412afa10aeef5c020de2bdd077ead5f5">00131</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> CellTraits::PointIdentifier         <a class="code" href="classitk_1_1CellInterface.html#412afa10aeef5c020de2bdd077ead5f5">PointIdentifier</a>;
<a name="l00132"></a><a class="code" href="classitk_1_1CellInterface.html#6dd9b3cb49aa2bb68d4a806170b313aa">00132</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> CellTraits::PointIdIterator         <a class="code" href="classitk_1_1CellInterface.html#6dd9b3cb49aa2bb68d4a806170b313aa">PointIdIterator</a>;
<a name="l00133"></a><a class="code" href="classitk_1_1CellInterface.html#83f560ee0ec24a243a43f7f5a591c0d8">00133</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> CellTraits::PointIdConstIterator    <a class="code" href="classitk_1_1CellInterface.html#83f560ee0ec24a243a43f7f5a591c0d8">PointIdConstIterator</a>;
<a name="l00134"></a><a class="code" href="classitk_1_1CellInterface.html#ebf3f7ea6e09ace57840f021d725b04e">00134</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> CellTraits::CellIdentifier          <a class="code" href="classitk_1_1CellInterface.html#ebf3f7ea6e09ace57840f021d725b04e">CellIdentifier</a>;
<a name="l00135"></a><a class="code" href="classitk_1_1CellInterface.html#93e7805570f1ad6fa2adcc675c79a399">00135</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> CellTraits::CellFeatureIdentifier   <a class="code" href="classitk_1_1CellInterface.html#93e7805570f1ad6fa2adcc675c79a399">CellFeatureIdentifier</a>;
<a name="l00136"></a><a class="code" href="classitk_1_1CellInterface.html#dbec3abe73301503c59cb6d196b1fcb4">00136</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> CellTraits::PointType               <a class="code" href="classitk_1_1CellInterface.html#dbec3abe73301503c59cb6d196b1fcb4">PointType</a>;
<a name="l00137"></a><a class="code" href="classitk_1_1CellInterface.html#bbf907f597121cc09dc1d90b2d14d942">00137</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> CellTraits::PointsContainer         <a class="code" href="classitk_1_1CellInterface.html#bbf907f597121cc09dc1d90b2d14d942">PointsContainer</a>;
<a name="l00138"></a><a class="code" href="classitk_1_1CellInterface.html#4b555206cd7ba5e5084a0695666cf6bc">00138</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> CellTraits::UsingCellsContainer     <a class="code" href="classitk_1_1CellInterface.html#4b555206cd7ba5e5084a0695666cf6bc">UsingCellsContainer</a>;
<a name="l00139"></a>00139 
<a name="l00141"></a><a class="code" href="classitk_1_1CellInterface.html#e089ff9a6218d9d3040421cb0532a121">00141</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> PointType::VectorType               <a class="code" href="classitk_1_1CellInterface.html#e089ff9a6218d9d3040421cb0532a121" title="NOTE: it should normally be defined in the traits.">VectorType</a>;
<a name="l00142"></a>00142     
<a name="l00144"></a>00144   <a class="code" href="classitk_1_1CellInterface.html#38d81bc232a5587184ba2c8e1abf9827">itkStaticConstMacro</a>(PointDimension, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>,CellTraits::PointDimension);
<a name="l00145"></a>00145 
<a name="l00147"></a><a class="code" href="classitk_1_1CellInterface.html#9289ee142165bfcc1c0a5f78f6387de3">00147</a>   <span class="keyword">typedef</span> <span class="keyword">typename</span> UsingCellsContainer::iterator  <a class="code" href="classitk_1_1CellInterface.html#9289ee142165bfcc1c0a5f78f6387de3">UsingCellsContainerIterator</a>;
<a name="l00148"></a>00148 
<a name="l00150"></a><a class="code" href="classitk_1_1CellInterface.html#254198dd04f2687854e17910aed5a66d">00150</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1CellInterface.html">CellInterface</a>         <a class="code" href="classitk_1_1CellInterface.html">CellType</a>;
<a name="l00151"></a><a class="code" href="classitk_1_1CellInterface.html#c5573ca4be06fc73221d175a5c888264">00151</a>   <span class="keyword">typedef</span> SelfAutoPointer       <a class="code" href="classitk_1_1CellInterface.html#c5573ca4be06fc73221d175a5c888264">CellAutoPointer</a>;
<a name="l00152"></a><a class="code" href="classitk_1_1CellInterface.html#4d367a6a1d7f066cfca12371be596f10">00152</a>   <span class="keyword">typedef</span> ConstSelfAutoPointer  <a class="code" href="classitk_1_1CellInterface.html#4d367a6a1d7f066cfca12371be596f10">CellConstAutoPointer</a>;
<a name="l00153"></a><a class="code" href="classitk_1_1CellInterface.html#370455050c190a05f54ea034082cc1b5">00153</a>   <span class="keyword">typedef</span> RawPointer            <a class="code" href="classitk_1_1CellInterface.html#370455050c190a05f54ea034082cc1b5">CellRawPointer</a>;
<a name="l00154"></a><a class="code" href="classitk_1_1CellInterface.html#cceba833b4d71defd511b718fc3df45c">00154</a>   <span class="keyword">typedef</span> ConstRawPointer       <a class="code" href="classitk_1_1CellInterface.html#cceba833b4d71defd511b718fc3df45c">CellConstRawPointer</a>;
<a name="l00155"></a>00155 
<a name="l00157"></a><a class="code" href="classitk_1_1CellInterface.html#ef49f6c839e54b16d66e18c7e41a228c">00157</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1CellInterface.html#93e7805570f1ad6fa2adcc675c79a399">CellFeatureIdentifier</a>  <a class="code" href="classitk_1_1CellInterface.html#ef49f6c839e54b16d66e18c7e41a228c">CellFeatureCount</a>;
<a name="l00158"></a>00158 
<a name="l00160"></a><a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba46199d021104b75029c15ef14762d07b2f4cc">00160</a>   <span class="keyword">enum</span> <a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba46199">CellGeometry</a> {<a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba46199d021104b75029c15ef14762d07b2f4cc">VERTEX_CELL</a>=0, <a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba46199551dfc9325fe3048d3e56f75667db1b8">LINE_CELL</a>, <a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba46199ff1ecb6fea521796781b46cd913cb05d">TRIANGLE_CELL</a>, 
<a name="l00161"></a><a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba461990b1840037f9c604bb37f4aac9d177412">00161</a>         <a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba4619954640b8fc43d10760ae60493f1c0e9f0">QUADRILATERAL_CELL</a>, <a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba461994dac716c69c9f794dcf81b7e87264636">POLYGON_CELL</a>, <a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba461990b1840037f9c604bb37f4aac9d177412">TETRAHEDRON_CELL</a>, <a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba461999e0298adb81fbf81a0c148d064510522">HEXAHEDRON_CELL</a>, 
<a name="l00162"></a><a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba461994b26d3f69c206bb19c9a49eac3f113c3">00162</a>         <a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba461998598cf2b1ea60b9227d2b8713fed9e34">QUADRATIC_EDGE_CELL</a>, <a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba461994b26d3f69c206bb19c9a49eac3f113c3">QUADRATIC_TRIANGLE_CELL</a>,
<a name="l00163"></a><a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba46199c2fa2b50f47491954fdfe2321b6b023c">00163</a>         <a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba46199f2d4129622bbafb9382eeaf81d3195df">LAST_ITK_CELL</a>, <a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba46199c2fa2b50f47491954fdfe2321b6b023c">MAX_ITK_CELLS</a>=255};
<a name="l00164"></a>00164 
<a name="l00166"></a><a class="code" href="classitk_1_1CellInterface.html#1055e806e4fd48971109229995d98e31">00166</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Array.html" title="Array class with size defined at construction time.">Array&lt;CoordRepType&gt;</a>                 <a class="code" href="classitk_1_1Array.html" title="Array class with size defined at construction time.">ParametricCoordArrayType</a>;
<a name="l00167"></a><a class="code" href="classitk_1_1CellInterface.html#06dca5b940d30e1b135b30b588acbd96">00167</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Array.html" title="Array class with size defined at construction time.">Array&lt;InterpolationWeightType&gt;</a>      <a class="code" href="classitk_1_1Array.html" title="Array class with size defined at construction time.">ShapeFunctionsArrayType</a>;
<a name="l00168"></a>00168 
<a name="l00169"></a>00169   <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1CellInterface.html#cf1850ab8959a3751f3c2dbdcc81b3a0">GetNextUserCellId</a>(); <span class="comment">// never return &gt; MAX_INTERFACE</span>
<a name="l00170"></a>00170 
<a name="l00177"></a><a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html">00177</a>   <span class="keyword">class </span><a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html" title="A visitor that can visit different cell types in a mesh. CellInterfaceVisitor instances...">MultiVisitor</a> : <span class="keyword">public</span> <a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">LightObject</a>
<a name="l00178"></a>00178     {
<a name="l00179"></a>00179     <span class="keyword">public</span>:
<a name="l00182"></a><a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#72f5eaddd3185da30f98098597c2c800">00182</a>     <span class="keyword">typedef</span> <a class="code" href="classitk_1_1CellInterfaceVisitor.html">CellInterfaceVisitor&lt;TPixelType, TCellTraits&gt;</a> <a class="code" href="classitk_1_1CellInterfaceVisitor.html">VisitorType</a>;
<a name="l00183"></a>00183 
<a name="l00185"></a><a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#eaa6caed944370a2c7cb8a086a0f2508">00185</a>     <span class="keyword">typedef</span> <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html" title="A visitor that can visit different cell types in a mesh. CellInterfaceVisitor instances...">MultiVisitor</a>        <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html" title="A visitor that can visit different cell types in a mesh. CellInterfaceVisitor instances...">Self</a>;
<a name="l00186"></a><a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#4246e618f4b14b4033163c3d5873b880">00186</a>     <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SmartPointer.html">SmartPointer&lt;Self&gt;</a>  <a class="code" href="classitk_1_1SmartPointer.html">Pointer</a>;
<a name="l00187"></a>00187 
<a name="l00189"></a>00189     <span class="comment">//itkNewMacro(Self);</span>
<a name="l00190"></a><a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#156fb27b71cef91c0611e9da08e0ba7d">00190</a>     <span class="keyword">static</span>  <a class="code" href="classitk_1_1SmartPointer.html">Pointer</a> <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#156fb27b71cef91c0611e9da08e0ba7d">New</a>(<span class="keywordtype">void</span>) { <a class="code" href="classitk_1_1SmartPointer.html">Pointer</a> smartPtr = <span class="keyword">new</span> <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html" title="A visitor that can visit different cell types in a mesh. CellInterfaceVisitor instances...">Self</a>; smartPtr-&gt;UnRegister(); <span class="keywordflow">return</span> smartPtr;}
<a name="l00192"></a>00192 
<a name="l00194"></a><a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#5da2d5f881aa970ac39212daa2db17ad">00194</a>     <a class="code" href="itkMacro_8h.html#574c1f86661d409dd32c742307a0e96a">itkTypeMacro</a>(<a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html" title="A visitor that can visit different cell types in a mesh. CellInterfaceVisitor instances...">MultiVisitor</a>,<a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">LightObject</a>);
<a name="l00195"></a>00195 
<a name="l00197"></a>00197     <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1SmartPointer.html">VisitorType::Pointer</a>       <a class="code" href="classitk_1_1SmartPointer.html">VisitorPointer</a>;
<a name="l00198"></a>00198     <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="namespaceitk.html#87ac35b82c3f0b7231a21eda576557d1">std::map&lt;int, VisitorPointer&gt;::value_type</a> 
<a name="l00199"></a><a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#f163d1672bf04fc1c72927c02a21e5f7">00199</a>                                                 <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#f163d1672bf04fc1c72927c02a21e5f7">VisitorPointerValueType</a>;
<a name="l00200"></a>00200 
<a name="l00201"></a>00201   <span class="keyword">public</span>:
<a name="l00202"></a><a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#6006c61f760978ee34355c18439f208f">00202</a>     <a class="code" href="classitk_1_1CellInterfaceVisitor.html">VisitorType</a> * <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#6006c61f760978ee34355c18439f208f">GetVisitor</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>)
<a name="l00203"></a>00203       {
<a name="l00204"></a>00204       <span class="keywordflow">if</span>(<span class="keywordtype">id</span> &lt;= <a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba46199f2d4129622bbafb9382eeaf81d3195df">LAST_ITK_CELL</a>)
<a name="l00205"></a>00205         {
<a name="l00206"></a>00206         <span class="keywordflow">return</span> <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#2d6eb6dd70635f965c635dedd46eb645">m_Visitors</a>[id];
<a name="l00207"></a>00207         }
<a name="l00208"></a>00208       <span class="keywordflow">else</span>
<a name="l00209"></a>00209         {
<a name="l00210"></a>00210         <span class="keyword">typename</span> std::map&lt;int, ITK_TYPENAME VisitorType::Pointer&gt;::iterator
<a name="l00211"></a>00211             pos = <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#d2eed64dd0cde866ab2f200f28b25d53">m_UserDefined</a>.find(<span class="keywordtype">id</span>);
<a name="l00212"></a>00212         <span class="keywordflow">if</span>(pos != <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#d2eed64dd0cde866ab2f200f28b25d53">m_UserDefined</a>.end())
<a name="l00213"></a>00213           {
<a name="l00214"></a>00214           <span class="keywordflow">return</span> (*pos).second;
<a name="l00215"></a>00215           }
<a name="l00216"></a>00216         }
<a name="l00217"></a>00217         <span class="keywordflow">return</span> 0;
<a name="l00218"></a>00218       }
<a name="l00219"></a>00219 
<a name="l00220"></a><a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#6d11582cd9ecf391f9128425f8a35102">00220</a>     <span class="keywordtype">void</span> <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#6d11582cd9ecf391f9128425f8a35102">AddVisitor</a>(<a class="code" href="classitk_1_1CellInterfaceVisitor.html">VisitorType</a>* v)
<a name="l00221"></a>00221       {
<a name="l00222"></a>00222       <span class="keywordtype">int</span> <span class="keywordtype">id</span> = v-&gt;<a class="code" href="classitk_1_1CellInterfaceVisitor.html#77ee1256803faebec8e0d0a418ccef23">GetCellTopologyId</a>();
<a name="l00223"></a>00223       <span class="keywordflow">if</span>(<span class="keywordtype">id</span> &lt;= <a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba46199f2d4129622bbafb9382eeaf81d3195df">LAST_ITK_CELL</a>)
<a name="l00224"></a>00224         {
<a name="l00225"></a>00225         <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#2d6eb6dd70635f965c635dedd46eb645">m_Visitors</a>[id] = v;
<a name="l00226"></a>00226         }
<a name="l00227"></a>00227       <span class="keywordflow">else</span>
<a name="l00228"></a>00228         {
<a name="l00229"></a>00229         <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#d2eed64dd0cde866ab2f200f28b25d53">m_UserDefined</a>.insert(<a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#f163d1672bf04fc1c72927c02a21e5f7">VisitorPointerValueType</a>(<span class="keywordtype">id</span>,v));
<a name="l00230"></a>00230         }
<a name="l00231"></a>00231       }
<a name="l00232"></a><a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#6d003d7e5c3779ab454df823f813d1c9">00232</a>     <span class="keyword">virtual</span> <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#6d003d7e5c3779ab454df823f813d1c9">~MultiVisitor</a>() {}
<a name="l00233"></a>00233 
<a name="l00234"></a>00234   <span class="keyword">protected</span>:
<a name="l00235"></a><a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#2d6eb6dd70635f965c635dedd46eb645">00235</a>     <a class="code" href="classitk_1_1SmartPointer.html">VisitorPointer</a> <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#2d6eb6dd70635f965c635dedd46eb645">m_Visitors</a>[<a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba46199f2d4129622bbafb9382eeaf81d3195df">LAST_ITK_CELL</a>]; <span class="comment">// fixed array set to the size </span>
<a name="l00236"></a>00236                                               <span class="comment">// from the enum</span>
<a name="l00237"></a><a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#d2eed64dd0cde866ab2f200f28b25d53">00237</a>     std::map&lt;int,VisitorPointer&gt; <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html#d2eed64dd0cde866ab2f200f28b25d53">m_UserDefined</a>; <span class="comment">// user defined cell types </span>
<a name="l00238"></a>00238                                                 <span class="comment">// go here</span>
<a name="l00239"></a>00239   };
<a name="l00240"></a>00240 
<a name="l00242"></a>00242   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1CellInterface.html#262fa18d492fd71f8e3ff68cd8664a8d">Accept</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> cellId, <a class="code" href="classitk_1_1CellInterface_1_1MultiVisitor.html" title="A visitor that can visit different cell types in a mesh. CellInterfaceVisitor instances...">MultiVisitor</a>*)= 0; 
<a name="l00243"></a>00243 
<a name="l00246"></a>00246   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1CellInterface.html#f0a3286a644617b2468edb596ba46199">CellGeometry</a> <a class="code" href="classitk_1_1CellInterface.html#19b466a1d109025c58efdbe4a45a9f16">GetType</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> =0;
<a name="l00247"></a>00247 
<a name="l00250"></a>00250   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1CellInterface.html#f449e373de247dca626f65f37adc3403">MakeCopy</a>( <a class="code" href="classitk_1_1CellInterface.html#c5573ca4be06fc73221d175a5c888264">CellAutoPointer</a> &amp; ) <span class="keyword">const</span> = 0;
<a name="l00251"></a>00251 
<a name="l00253"></a>00253   <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1CellInterface.html#ee96c255d1cccc8378e39b4377008764">GetDimension</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;
<a name="l00254"></a>00254 
<a name="l00256"></a>00256   <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1CellInterface.html#cf13cd4c1c9a8fd3b3f93a8acb0c8a1c">GetInterpolationOrder</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
<a name="l00257"></a>00257 
<a name="l00259"></a>00259   <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1CellInterface.html#68bfe8400d5eb7a9db84279fc85f732e">GetNumberOfPoints</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;
<a name="l00260"></a>00260 
<a name="l00262"></a>00262   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1CellInterface.html#ef49f6c839e54b16d66e18c7e41a228c">CellFeatureCount</a> <a class="code" href="classitk_1_1CellInterface.html#2ef7926ba252d1c669383bc1aa14125e">GetNumberOfBoundaryFeatures</a>(<span class="keywordtype">int</span> dimension) <span class="keyword">const</span> =0;
<a name="l00263"></a>00263 
<a name="l00265"></a>00265   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1CellInterface.html#254d1dec795fa29b2e92f8483722485a">GetBoundaryFeature</a>(<span class="keywordtype">int</span> dimension, <a class="code" href="classitk_1_1CellInterface.html#93e7805570f1ad6fa2adcc675c79a399">CellFeatureIdentifier</a>, 
<a name="l00266"></a>00266                                                         <a class="code" href="classitk_1_1CellInterface.html#c5573ca4be06fc73221d175a5c888264">CellAutoPointer</a> &amp; )=0;
<a name="l00267"></a>00267 
<a name="l00271"></a>00271   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1CellInterface.html#83f560ee0ec24a243a43f7f5a591c0d8">PointIdConstIterator</a> <a class="code" href="classitk_1_1CellInterface.html#198ac59429cc0f034dae25830b36aa79">GetPointIds</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
<a name="l00272"></a>00272 
<a name="l00276"></a>00276   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1CellInterface.html#054857e515a11a2a0381949d42995b8a">SetPointIds</a>(<a class="code" href="classitk_1_1CellInterface.html#83f560ee0ec24a243a43f7f5a591c0d8">PointIdConstIterator</a> first)=0;
<a name="l00277"></a>00277 
<a name="l00282"></a>00282   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1CellInterface.html#054857e515a11a2a0381949d42995b8a">SetPointIds</a>(<a class="code" href="classitk_1_1CellInterface.html#83f560ee0ec24a243a43f7f5a591c0d8">PointIdConstIterator</a> first,
<a name="l00283"></a>00283                            <a class="code" href="classitk_1_1CellInterface.html#83f560ee0ec24a243a43f7f5a591c0d8">PointIdConstIterator</a> last)=0;
<a name="l00284"></a>00284 
<a name="l00287"></a>00287   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1CellInterface.html#1ace5cf564bce5dcfee42504bb98a7bf">SetPointId</a>(<span class="keywordtype">int</span> localId, <a class="code" href="classitk_1_1CellInterface.html#412afa10aeef5c020de2bdd077ead5f5">PointIdentifier</a>)=0;
<a name="l00288"></a>00288 
<a name="l00290"></a>00290   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1CellInterface.html#6dd9b3cb49aa2bb68d4a806170b313aa">PointIdIterator</a> <a class="code" href="classitk_1_1CellInterface.html#7a0e28f16ee8c3ebcdc5e5170a7b7189">PointIdsBegin</a>(<span class="keywordtype">void</span>)=0;
<a name="l00291"></a>00291 
<a name="l00294"></a>00294   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1CellInterface.html#83f560ee0ec24a243a43f7f5a591c0d8">PointIdConstIterator</a> <a class="code" href="classitk_1_1CellInterface.html#7a0e28f16ee8c3ebcdc5e5170a7b7189">PointIdsBegin</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> =0;
<a name="l00295"></a>00295 
<a name="l00297"></a>00297   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1CellInterface.html#6dd9b3cb49aa2bb68d4a806170b313aa">PointIdIterator</a> <a class="code" href="classitk_1_1CellInterface.html#476ba39755f56aa2175c5eddf9868990">PointIdsEnd</a>(<span class="keywordtype">void</span>)=0;
<a name="l00298"></a>00298 
<a name="l00301"></a>00301   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1CellInterface.html#83f560ee0ec24a243a43f7f5a591c0d8">PointIdConstIterator</a> <a class="code" href="classitk_1_1CellInterface.html#476ba39755f56aa2175c5eddf9868990">PointIdsEnd</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> =0;
<a name="l00302"></a>00302 
<a name="l00307"></a><a class="code" href="classitk_1_1CellInterface.html#93213d1a7ba83efa03763ba646864cbb">00307</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1CellInterface.html#93213d1a7ba83efa03763ba646864cbb">GetClosestBoundary</a>(<a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a> [], <span class="keywordtype">bool</span>* , <a class="code" href="classitk_1_1CellInterface.html#c5573ca4be06fc73221d175a5c888264">CellAutoPointer</a> &amp;) 
<a name="l00308"></a>00308     {<span class="keywordflow">return</span> <span class="keyword">false</span>;}
<a name="l00309"></a>00309 
<a name="l00326"></a><a class="code" href="classitk_1_1CellInterface.html#d69a70867d59543417869dfe943c9508">00326</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1CellInterface.html#d69a70867d59543417869dfe943c9508">EvaluatePosition</a>(<a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a>* ,
<a name="l00327"></a>00327                                 <a class="code" href="classitk_1_1CellInterface.html#bbf907f597121cc09dc1d90b2d14d942">PointsContainer</a>* ,
<a name="l00328"></a>00328                                 <a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a>* ,
<a name="l00329"></a>00329                                 <a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a> [],
<a name="l00330"></a>00330                                 <span class="keywordtype">double</span> *,
<a name="l00331"></a>00331                                 <a class="code" href="classitk_1_1CellInterface.html#9bdd814aca10a36c6bb280690379b73f">InterpolationWeightType</a>*)
<a name="l00332"></a>00332     {<span class="keywordflow">return</span> bool();}
<a name="l00333"></a>00333 
<a name="l00337"></a><a class="code" href="classitk_1_1CellInterface.html#345a9bbd442cf383938abc0de0084444">00337</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1CellInterface.html#345a9bbd442cf383938abc0de0084444">EvaluateShapeFunctions</a>( 
<a name="l00338"></a>00338                           <span class="keyword">const</span> <a class="code" href="classitk_1_1Array.html" title="Array class with size defined at construction time.">ParametricCoordArrayType</a> &amp;,
<a name="l00339"></a>00339                                 <a class="code" href="classitk_1_1Array.html" title="Array class with size defined at construction time.">ShapeFunctionsArrayType</a>  &amp;)<span class="keyword"> const </span>{}
<a name="l00340"></a>00340 
<a name="l00356"></a><a class="code" href="classitk_1_1CellInterface.html#bb1345f8bb84923f11127b51d491b618">00356</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1CellInterface.html#bb1345f8bb84923f11127b51d491b618">IntersectWithLine</a>(<a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a> [PointDimension],
<a name="l00357"></a>00357                                  <a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a> [PointDimension],
<a name="l00358"></a>00358                                  <a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a> ,
<a name="l00359"></a>00359                                  <a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a> [PointDimension],
<a name="l00360"></a>00360                                  <a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a>*,
<a name="l00361"></a>00361                                  <a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a> []) {<span class="keywordflow">return</span> bool();}
<a name="l00362"></a>00362 
<a name="l00367"></a><a class="code" href="classitk_1_1CellInterface.html#934ae927ea21a3cf6e02b346fef45b81">00367</a>   <a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a>* <a class="code" href="classitk_1_1CellInterface.html#934ae927ea21a3cf6e02b346fef45b81">GetBoundingBox</a>(<a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a> [PointDimension*2]) {<span class="keywordflow">return</span> <a class="code" href="itkVoronoiDiagram2D_8h.html#070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;}
<a name="l00369"></a>00369 
<a name="l00371"></a><a class="code" href="classitk_1_1CellInterface.html#58042c7266a83507b196f6a866d3b4a7">00371</a>   <a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a> <a class="code" href="classitk_1_1CellInterface.html#58042c7266a83507b196f6a866d3b4a7">GetBoundingBoxDiagonalLength2</a>(<span class="keywordtype">void</span>) {<span class="keywordflow">return</span> <a class="code" href="itkVoronoiDiagram2D_8h.html#070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;}
<a name="l00372"></a>00372 
<a name="l00385"></a><a class="code" href="classitk_1_1CellInterface.html#1f70b2190d0ecc337c68e8bc0465eab1">00385</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1CellInterface.html#1f70b2190d0ecc337c68e8bc0465eab1">IntersectBoundingBoxWithLine</a>(<a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a> [PointDimension*2],
<a name="l00386"></a>00386                                             <a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a> [PointDimension],
<a name="l00387"></a>00387                                             <a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a> [PointDimension],
<a name="l00388"></a>00388                                             <a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a> [PointDimension],
<a name="l00389"></a>00389                                             <a class="code" href="classitk_1_1CellInterface.html#c79a2e9c8c66a4215786d5879f623de5">CoordRepType</a>* ) {<span class="keywordflow">return</span> bool();}
<a name="l00390"></a>00390 
<a name="l00396"></a>00396   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1CellInterface.html#ecf033f28a9ce66ae70ab761c8944169">IsExplicitBoundary</a>(<span class="keywordtype">void</span>);
<a name="l00397"></a>00397 
<a name="l00402"></a>00402   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1CellInterface.html#5ba6546b209fae20124f871b6fb2ea61">AddUsingCell</a>(<a class="code" href="classitk_1_1CellInterface.html#ebf3f7ea6e09ace57840f021d725b04e">CellIdentifier</a> cellId);
<a name="l00403"></a>00403 
<a name="l00407"></a>00407   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1CellInterface.html#382bbf57376be3e185916d562f2f951f">RemoveUsingCell</a>(<a class="code" href="classitk_1_1CellInterface.html#ebf3f7ea6e09ace57840f021d725b04e">CellIdentifier</a> cellId);
<a name="l00408"></a>00408 
<a name="l00414"></a>00414   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1CellInterface.html#012489f1c94c7da138054eb64e133ae2">IsUsingCell</a>(<a class="code" href="classitk_1_1CellInterface.html#ebf3f7ea6e09ace57840f021d725b04e">CellIdentifier</a> cellId);
<a name="l00415"></a>00415 
<a name="l00419"></a>00419   <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1CellInterface.html#68d93e29776eba044dc0a34e936a565e">GetNumberOfUsingCells</a>(<span class="keywordtype">void</span>);
<a name="l00420"></a>00420 
<a name="l00424"></a>00424   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1CellInterface.html#9289ee142165bfcc1c0a5f78f6387de3">UsingCellsContainerIterator</a> <a class="code" href="classitk_1_1CellInterface.html#873094e613fc087004b13571f9bb727d">UsingCellsBegin</a>(<span class="keywordtype">void</span>);
<a name="l00425"></a>00425 
<a name="l00429"></a>00429   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1CellInterface.html#9289ee142165bfcc1c0a5f78f6387de3">UsingCellsContainerIterator</a> <a class="code" href="classitk_1_1CellInterface.html#86d465b3b4f35778e04c264c4712c9a7">UsingCellsEnd</a>(<span class="keywordtype">void</span>);
<a name="l00430"></a>00430 
<a name="l00432"></a>00432   <a class="code" href="itkMacro_8h.html#574c1f86661d409dd32c742307a0e96a">itkTypeMacro</a>(<a class="code" href="classitk_1_1CellInterface.html">CellInterface</a>, <a class="code" href="classitk_1_1LightObject.html" title="Light weight base class for most itk classes.">LightObject</a>);
<a name="l00433"></a>00433 
<a name="l00434"></a>00434 <span class="keyword">public</span>:
<a name="l00435"></a><a class="code" href="classitk_1_1CellInterface.html#1a9aef7e5c583364d90f81ce8171ef89">00435</a>   <a class="code" href="classitk_1_1CellInterface.html#1a9aef7e5c583364d90f81ce8171ef89">CellInterface</a>() {}
<a name="l00436"></a><a class="code" href="classitk_1_1CellInterface.html#19e5cd7d4681a9352b52f73ab95c112b">00436</a>   <span class="keyword">virtual</span> <a class="code" href="classitk_1_1CellInterface.html#19e5cd7d4681a9352b52f73ab95c112b">~CellInterface</a>() {}
<a name="l00440"></a>00440 <span class="comment">//  bool GetPointPosition(PointsContainer*, int localId, Point*)=0;</span>
<a name="l00441"></a>00441 
<a name="l00442"></a>00442 <span class="keyword">protected</span>:
<a name="l00444"></a><a class="code" href="classitk_1_1CellInterface.html#0f298d9f3347f48950fff1ea760199d4">00444</a>   <a class="code" href="classitk_1_1CellInterface.html#4b555206cd7ba5e5084a0695666cf6bc">UsingCellsContainer</a> <a class="code" href="classitk_1_1CellInterface.html#0f298d9f3347f48950fff1ea760199d4">m_UsingCells</a>;
<a name="l00445"></a>00445 
<a name="l00446"></a>00446 <span class="keyword">private</span>:
<a name="l00447"></a>00447   <a class="code" href="classitk_1_1CellInterface.html#1a9aef7e5c583364d90f81ce8171ef89">CellInterface</a>(<span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ac7d0120fe5292cdcdddb6163b8cb150">Self</a>&amp;); <span class="comment">//purposely not implemented</span>
<a name="l00448"></a>00448   <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ac7d0120fe5292cdcdddb6163b8cb150">Self</a>&amp;); <span class="comment">//purposely not implemented  </span>
<a name="l00449"></a>00449 };
<a name="l00450"></a>00450 
<a name="l00451"></a>00451 
<a name="l00469"></a>00469 <span class="keyword">template</span> &lt;<span class="keywordtype">int</span> VPointDimension, <span class="keyword">typename</span> TCoordRep,
<a name="l00470"></a>00470   <span class="keyword">typename</span> TInterpolationWeight, <span class="keyword">typename</span> TPointIdentifier,
<a name="l00471"></a>00471   <span class="keyword">typename</span> TCellIdentifier, <span class="keyword">typename</span> TCellFeatureIdentifier,
<a name="l00472"></a>00472   <span class="keyword">typename</span> TPoint, <span class="keyword">typename</span> TPointsContainer,
<a name="l00473"></a>00473   <span class="keyword">typename</span> TUsingCellsContainer&gt;
<a name="l00474"></a><a class="code" href="classitk_1_1CellTraitsInfo.html">00474</a> <span class="keyword">class </span><a class="code" href="classitk_1_1CellTraitsInfo.html" title="A simple utility class to define the cell type inside a mesh type structure definition...">CellTraitsInfo</a>
<a name="l00475"></a>00475 {
<a name="l00476"></a>00476 <span class="keyword">public</span>:
<a name="l00477"></a>00477   <a class="code" href="classitk_1_1CellTraitsInfo.html#43cc715859ccfca351b8a4611506b01a">itkStaticConstMacro</a>(PointDimension, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>, VPointDimension);
<a name="l00478"></a><a class="code" href="classitk_1_1CellTraitsInfo.html#732d334b365938f67507f532938f8cf4">00478</a>   <span class="keyword">typedef</span> TCoordRep               <a class="code" href="classitk_1_1CellTraitsInfo.html#732d334b365938f67507f532938f8cf4">CoordRepType</a>;
<a name="l00479"></a><a class="code" href="classitk_1_1CellTraitsInfo.html#d5b98908e7d090d628134ce5c1a6a99f">00479</a>   <span class="keyword">typedef</span> TInterpolationWeight    <a class="code" href="classitk_1_1CellTraitsInfo.html#d5b98908e7d090d628134ce5c1a6a99f">InterpolationWeightType</a>;
<a name="l00480"></a><a class="code" href="classitk_1_1CellTraitsInfo.html#07c08399261b6ae28cf95201cd9aec15">00480</a>   <span class="keyword">typedef</span> TPointIdentifier        <a class="code" href="classitk_1_1CellTraitsInfo.html#07c08399261b6ae28cf95201cd9aec15">PointIdentifier</a>;
<a name="l00481"></a><a class="code" href="classitk_1_1CellTraitsInfo.html#0aafd825c33fd3419598bac8cefdf536">00481</a>   <span class="keyword">typedef</span> TCellIdentifier         <a class="code" href="classitk_1_1CellTraitsInfo.html#0aafd825c33fd3419598bac8cefdf536">CellIdentifier</a>;
<a name="l00482"></a><a class="code" href="classitk_1_1CellTraitsInfo.html#ca92b51b00c910ac2f7af922c0aba476">00482</a>   <span class="keyword">typedef</span> TCellFeatureIdentifier  <a class="code" href="classitk_1_1CellTraitsInfo.html#ca92b51b00c910ac2f7af922c0aba476">CellFeatureIdentifier</a>;
<a name="l00483"></a><a class="code" href="classitk_1_1CellTraitsInfo.html#6f4b5c19ae16782695d4eb7ea5140195">00483</a>   <span class="keyword">typedef</span> TPoint                  <a class="code" href="classitk_1_1CellTraitsInfo.html#6f4b5c19ae16782695d4eb7ea5140195">PointType</a>;
<a name="l00484"></a><a class="code" href="classitk_1_1CellTraitsInfo.html#da3ff1ae0ffb32b01816d847bf1781a3">00484</a>   <span class="keyword">typedef</span> TPointsContainer        <a class="code" href="classitk_1_1CellTraitsInfo.html#da3ff1ae0ffb32b01816d847bf1781a3">PointsContainer</a>;
<a name="l00485"></a><a class="code" href="classitk_1_1CellTraitsInfo.html#d12e3d675f32d0425849d09ed83da766">00485</a>   <span class="keyword">typedef</span> TUsingCellsContainer    <a class="code" href="classitk_1_1CellTraitsInfo.html#d12e3d675f32d0425849d09ed83da766">UsingCellsContainer</a>;
<a name="l00486"></a><a class="code" href="classitk_1_1CellTraitsInfo.html#d3a388ce1abd1ca0c0ae711752f22713">00486</a>   <span class="keyword">typedef</span> <a class="code" href="classitk_1_1CellTraitsInfo.html#07c08399261b6ae28cf95201cd9aec15">PointIdentifier</a>*        <a class="code" href="classitk_1_1CellTraitsInfo.html#d3a388ce1abd1ca0c0ae711752f22713">PointIdIterator</a>;
<a name="l00487"></a><a class="code" href="classitk_1_1CellTraitsInfo.html#e51814a83aafacf6c436dab072fb0b1e">00487</a>   <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classitk_1_1CellTraitsInfo.html#07c08399261b6ae28cf95201cd9aec15">PointIdentifier</a>*  <a class="code" href="classitk_1_1CellTraitsInfo.html#e51814a83aafacf6c436dab072fb0b1e">PointIdConstIterator</a>;  
<a name="l00488"></a>00488 };
<a name="l00489"></a>00489 
<a name="l00490"></a><a class="code" href="itkCellInterface_8h.html#27f99f1bc6b3eca8ab6058a2b2df233e">00490</a> <span class="preprocessor">#define itkMakeCellTraitsMacro \</span>
<a name="l00491"></a>00491 <span class="preprocessor">  CellTraitsInfo&lt;itkGetStaticConstMacro(PointDimension), CoordRepType, \</span>
<a name="l00492"></a>00492 <span class="preprocessor">               InterpolationWeightType,  \</span>
<a name="l00493"></a>00493 <span class="preprocessor">               PointIdentifier, CellIdentifier, CellFeatureIdentifier, \</span>
<a name="l00494"></a>00494 <span class="preprocessor">               PointType, PointsContainer, UsingCellsContainer&gt;</span>
<a name="l00495"></a>00495 <span class="preprocessor"></span>
<a name="l00496"></a>00496 } <span class="comment">// end namespace itk</span>
<a name="l00497"></a>00497 
<a name="l00498"></a>00498 <span class="preprocessor">#ifndef ITK_MANUAL_INSTANTIATION</span>
<a name="l00499"></a>00499 <span class="preprocessor"></span><span class="preprocessor">#include "itkCellInterface.txx"</span>
<a name="l00500"></a>00500 <span class="preprocessor">#endif</span>
<a name="l00501"></a>00501 <span class="preprocessor"></span>
<a name="l00502"></a>00502 <span class="preprocessor">#endif</span>
<a name="l00503"></a>00503 <span class="preprocessor"></span>
</pre></div></div>
<hr><address><small>
Generated at Thu May 7 22:21:33 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>