<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hi,<o:p></o:p></p><p class=MsoNormal>This is my second email to this list. I’m still not so familiar with typedefs in coding, and I’ve the current problem:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I have my own “image” objects which can be 2D or 3D and of different number type.  If I assume they are only 2D and float I can do something like this:<o:p></o:p></p><p class=MsoNormal style='text-autospace:none'>(The <span style='background:aqua;mso-highlight:aqua'>cyan</span> lines show methods of  ‘my’ object.)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New";color:blue'>const</span><span style='font-size:7.0pt;font-family:"Courier New"'> <span style='color:blue'>unsigned</span> <span style='color:blue'>int</span> <span style='color:#010001'>DIMENSION</span> = 2;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>typedef</span> <span style='color:#010001'>itk</span>::<span style='color:#010001'>ImportImageFilter</span><<span style='color:blue'>float</span>,<span style='color:#010001'> DIMENSION</span> >   <span style='color:#010001'>ImportFilterType</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New";color:#010001'>ImportFilterType</span><span style='font-size:7.0pt;font-family:"Courier New"'>::<span style='color:#010001'>Pointer</span> <span style='color:#010001'>importFilter</span> = <span style='color:#010001'>ImportFilterType</span>::<span style='color:#010001'>New</span>();<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-indent:36.0pt;text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New";color:#010001'>ImportFilterType</span><span style='font-size:7.0pt;font-family:"Courier New"'>::<span style='color:#010001'>SizeType</span>  <span style='color:#010001'>size</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>size</span>[0]  = <span style='background:aqua;mso-highlight:aqua'>MYIMAGE.<span style='color:#010001'>GetXSIZE</span>();</span><o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New";color:#010001'>size</span><span style='font-size:7.0pt;font-family:"Courier New"'>[1]  = <span style='background:aqua;mso-highlight:aqua'>MYIMAGE.<span style='color:#010001'>GetYSIZE</span>();</span><o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>ImportFilterType</span>::<span style='color:#010001'>IndexType</span> <span style='color:#010001'>start</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>start</span>.<span style='color:#010001'>Fill</span>( 0 );<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>ImportFilterType</span>::<span style='color:#010001'>RegionType</span> <span style='color:#010001'>region</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>region</span>.<span style='color:#010001'>SetIndex</span>( <span style='color:#010001'>start</span> );<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>region</span>.<span style='color:#010001'>SetSize</span>(  <span style='color:#010001'>size</span>  );<o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New";color:#010001'>importFilter</span><span style='font-size:7.0pt;font-family:"Courier New"'>-><span style='color:#010001'>SetRegion</span>( <span style='color:#010001'>region</span> );<o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-indent:36.0pt;text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New";color:blue'>const</span><span style='font-size:7.0pt;font-family:"Courier New"'> <span style='color:#010001'>itk</span>::<span style='color:#010001'>SpacePrecisionType</span> <span style='color:#010001'>origin</span>[ <span style='color:#010001'>DIMENSION</span> ] = { 0.0, 0.0 };<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>importFilter</span>-><span style='color:#010001'>SetOrigin</span>( <span style='color:#010001'>origin</span> );<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>const</span> <span style='color:#010001'>itk</span>::<span style='color:#010001'>SpacePrecisionType</span>  <span style='color:#010001'>spacing</span>[ <span style='color:#010001'>DIMENSION</span> ] =  { 1.0, 1.0 };<o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New";color:#010001'>importFilter</span><span style='font-size:7.0pt;font-family:"Courier New"'>-><span style='color:#010001'>SetSpacing</span>( <span style='color:#010001'>spacing</span> );<o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>const</span> <span style='color:blue'>bool</span> <span style='color:#010001'>importImageFilterWillOwnTheBuffer</span> = <span style='color:blue'>false</span>;     <o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>float</span> *<span style='color:#010001'>localBuffer = <span style='background:aqua;mso-highlight:aqua'>MYIMAGE.GETPOINTER()</span>;</span></span><span style='font-size:4.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>importFilter</span>-><span style='color:#010001'>SetImportPointer</span>( <span style='color:#010001'>localBuffer</span>, <span style='color:#010001'>size</span>[0]*<span style='color:#010001'>size</span>[1], <span style='color:#010001'>importImageFilterWillOwnTheBuffer</span> );<o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:8.0pt'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>typedef</span> <span style='color:#010001'>itk</span>::<span style='color:#010001'>Image</span>< <span style='color:blue'>float</span>,<span style='color:#010001'>DIMENSION</span> >   <span style='color:#010001'>InputImageType</span>;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>typedef</span> <span style='color:#010001'>itk</span>::<span style='color:#010001'>Image</span>< <span style='color:blue'>float</span>,<span style='color:#010001'>DIMENSION</span> >   <span style='color:#010001'>OutputImageType</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>typedef</span> <span style='color:#010001'>itk</span>::<span style='color:#010001'>CurvatureFlowImageFilter</span>< <span style='color:#010001'>InputImageType</span>, <span style='color:#010001'>OutputImageType</span> >  <span style='color:#010001'>FilterType</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>FilterType</span>::<span style='color:#010001'>Pointer</span> <span style='color:#010001'>filter</span> = <span style='color:#010001'>FilterType</span>::<span style='color:#010001'>New</span>();<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>filter</span>-><span style='color:#010001'>SetInput</span>( <span style='color:#010001'>importFilter</span>-><span style='color:#010001'>GetOutput</span>() );<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>filter</span>-><span style='color:#010001'>SetTimeStep</span>( <span style='color:#010001'>timeStep</span> );<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>filter</span>-><span style='color:#010001'>SetNumberOfIterations</span>( <span style='color:#010001'>iterations</span> );<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>filter</span>-><span style='color:#010001'>Update</span>();<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>typedef</span> <span style='color:#010001'>itk</span>::<span style='color:#010001'>ImageRegionIterator</span>< <span style='color:#010001'>OutputImageType</span> >       <span style='color:#010001'>IteratorType</span>;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>OutputImageType</span>::<span style='color:#010001'>Pointer</span> <span style='color:#010001'>filtered</span> = <span style='color:#010001'>filter</span>-><span style='color:#010001'>GetOutput</span>();<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:7.0pt;font-family:"Courier New"'>          […]<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>If my image is 3D I can do accordingly: (<span style='background:yellow;mso-highlight:yellow'>Yellow</span> is the difference to above)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New";color:blue'>const</span><span style='font-size:7.0pt;font-family:"Courier New"'> <span style='color:blue'>unsigned</span> <span style='color:blue'>int</span> <span style='color:#010001'>DIMENSION</span> = <span style='background:yellow;mso-highlight:yellow'>3</span>;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:8.0pt'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>typedef</span> <span style='color:#010001'>itk</span>::<span style='color:#010001'>ImportImageFilter</span><<span style='color:blue'>float</span>,<span style='color:#010001'> DIMENSION</span> >   <span style='color:#010001'>ImportFilterType</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New";color:#010001'>ImportFilterType</span><span style='font-size:7.0pt;font-family:"Courier New"'>::<span style='color:#010001'>Pointer</span> <span style='color:#010001'>importFilter</span> = <span style='color:#010001'>ImportFilterType</span>::<span style='color:#010001'>New</span>();<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-indent:36.0pt;text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New";color:#010001'>ImportFilterType</span><span style='font-size:7.0pt;font-family:"Courier New"'>::<span style='color:#010001'>SizeType</span>  <span style='color:#010001'>size</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>size</span>[0]  = <span style='background:aqua;mso-highlight:aqua'>MYIMAGE.<span style='color:#010001'>GetXSIZE</span>();</span><o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New";color:#010001'>size</span><span style='font-size:7.0pt;font-family:"Courier New"'>[1]  = <span style='background:aqua;mso-highlight:aqua'>MYIMAGE.<span style='color:#010001'>GetYSIZE</span>();</span><o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New";color:#010001;background:yellow;mso-highlight:yellow'>size</span><span style='font-size:7.0pt;font-family:"Courier New";background:yellow;mso-highlight:yellow'>[2]  = MYIMAGE.<span style='color:#010001'>GetZSIZE</span>();</span><span style='font-size:7.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>ImportFilterType</span>::<span style='color:#010001'>IndexType</span> <span style='color:#010001'>start</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>start</span>.<span style='color:#010001'>Fill</span>( 0 );<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>ImportFilterType</span>::<span style='color:#010001'>RegionType</span> <span style='color:#010001'>region</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>region</span>.<span style='color:#010001'>SetIndex</span>( <span style='color:#010001'>start</span> );<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>region</span>.<span style='color:#010001'>SetSize</span>(  <span style='color:#010001'>size</span>  );<o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New";color:#010001'>importFilter</span><span style='font-size:7.0pt;font-family:"Courier New"'>-><span style='color:#010001'>SetRegion</span>( <span style='color:#010001'>region</span> );<o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-indent:36.0pt;text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New";color:blue'>const</span><span style='font-size:7.0pt;font-family:"Courier New"'> <span style='color:#010001'>itk</span>::<span style='color:#010001'>SpacePrecisionType</span> <span style='color:#010001'>origin</span>[ <span style='color:#010001'>DIMENSION</span> ] = <span style='background:yellow;mso-highlight:yellow'>{ 0.0, 0.0, 0.0 }</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>importFilter</span>-><span style='color:#010001'>SetOrigin</span>( <span style='color:#010001'>origin</span> );<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>const</span> <span style='color:#010001'>itk</span>::<span style='color:#010001'>SpacePrecisionType</span>  <span style='color:#010001'>spacing</span>[ <span style='color:#010001'>DIMENSION</span> ] =  <span style='background:yellow;mso-highlight:yellow'>{ 1.0, 1.0, 1.0 }</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New";color:#010001'>importFilter</span><span style='font-size:7.0pt;font-family:"Courier New"'>-><span style='color:#010001'>SetSpacing</span>( <span style='color:#010001'>spacing</span> );<o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>const</span> <span style='color:blue'>bool</span> <span style='color:#010001'>importImageFilterWillOwnTheBuffer</span> = <span style='color:blue'>false</span>;     <o:p></o:p></span></p><p class=MsoNormal style='margin-left:36.0pt;text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New";color:blue'>float</span><span style='font-size:7.0pt;font-family:"Courier New"'> *<span style='color:#010001'>localBuffer = <span style='background:aqua;mso-highlight:aqua'>MYIMAGE.GETPOINTER()</span>;</span><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>importFilter</span>-><span style='color:#010001'>SetImportPointer</span>( <span style='color:#010001'>localBuffer</span>, <span style='color:#010001'>size</span>[0]*<span style='color:#010001'>size</span>[1]<span style='background:yellow;mso-highlight:yellow'>*<span style='color:#010001'>size</span>[2]</span>, <span style='color:#010001'>importImageFilterWillOwnTheBuffer</span> );<o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:8.0pt'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>typedef</span> <span style='color:#010001'>itk</span>::<span style='color:#010001'>Image</span>< <span style='color:blue'>float</span>,<span style='color:#010001'>DIMENSION</span> >   <span style='color:#010001'>InputImageType</span>;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>typedef</span> <span style='color:#010001'>itk</span>::<span style='color:#010001'>Image</span>< <span style='color:blue'>float</span>,<span style='color:#010001'>DIMENSION</span> >   <span style='color:#010001'>OutputImageType</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>typedef</span> <span style='color:#010001'>itk</span>::<span style='color:#010001'>CurvatureFlowImageFilter</span>< <span style='color:#010001'>InputImageType</span>, <span style='color:#010001'>OutputImageType</span> >  <span style='color:#010001'>FilterType</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>FilterType</span>::<span style='color:#010001'>Pointer</span> <span style='color:#010001'>filter</span> = <span style='color:#010001'>FilterType</span>::<span style='color:#010001'>New</span>();<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>filter</span>-><span style='color:#010001'>SetInput</span>( <span style='color:#010001'>importFilter</span>-><span style='color:#010001'>GetOutput</span>() );<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>filter</span>-><span style='color:#010001'>SetTimeStep</span>( <span style='color:#010001'>timeStep</span> );<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>filter</span>-><span style='color:#010001'>SetNumberOfIterations</span>( <span style='color:#010001'>iterations</span> );<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>filter</span>-><span style='color:#010001'>Update</span>();<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>typedef</span> <span style='color:#010001'>itk</span>::<span style='color:#010001'>ImageRegionIterator</span>< <span style='color:#010001'>OutputImageType</span> >       <span style='color:#010001'>IteratorType</span>;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:#010001'>OutputImageType</span>::<span style='color:#010001'>Pointer</span> <span style='color:#010001'>filtered</span> = <span style='color:#010001'>filter</span>-><span style='color:#010001'>GetOutput</span>();<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:7.0pt;font-family:"Courier New"'>          […]<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The problem I have is the following. I can query my object about its dimensionality, but I can’t do the following:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New";color:blue'>const</span><span style='font-size:7.0pt;font-family:"Courier New"'> <span style='color:blue'>unsigned</span> <span style='color:blue'>int</span> <span style='color:#010001'>DIMENSION</span> =<span style='background:aqua;mso-highlight:aqua'> MYIMAGE.<span style='color:#010001'>GETDIMENSIONALITY</span>();</span><o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>because the typedefs are evaluated on <i>compilation</i> not on runtime.   So my way around this is, to actually <i>duplicate </i> all the code and have both my examples in a switch-case:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>switch</span>(<span style='background:aqua;mso-highlight:aqua'>MYIMAGE.<span style='color:#010001'>GETDIMENSIONALITY</span>()</span>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          {<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>case</span>(2):<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:7.0pt;font-family:"Courier New"'>                    {<o:p></o:p></span></p><p class=MsoNormal style='margin-left:72.0pt;text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New"'>… <i>EXAMPLE 2D as above<o:p></o:p></i></span></p><p class=MsoNormal style='margin-left:36.0pt;text-indent:36.0pt;text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>}<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>                   <span style='color:blue'>break</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>case</span>(3): <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:7.0pt;font-family:"Courier New"'>                    {<o:p></o:p></span></p><p class=MsoNormal style='margin-left:72.0pt;text-indent:36.0pt'><span style='font-size:7.0pt;font-family:"Courier New"'>… <i>EXAMPLE 3D as above<o:p></o:p></i></span></p><p class=MsoNormal style='margin-left:36.0pt;text-indent:36.0pt;text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>}<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>                   <span style='color:blue'>break</span>;<o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt;text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>}<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal>Which is rather obvious code duplication. Is there a better way to do this? (there has to!)  The problem branches out, if I also allow the type <i>float</i> to be specified by my object as in<o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>switch</span>(<span style='background:aqua;mso-highlight:aqua'>MYIMAGE.<span style='color:#010001'>GETDATATYPE</span>()</span>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          {<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>case</span>(1):…float…;<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>case</span>(2):…double…;<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          <span style='color:blue'>case</span>(3):…<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>          …<o:p></o:p></span></p><p class=MsoNormal style='text-indent:36.0pt;text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'>} <o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:7.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'>I would very much appreciate a few lines of (pseudo-) code showing me how I can do this better. <o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><o:p> </o:p></p><p class=MsoNormal style='text-autospace:none'>Thank you very much,<o:p></o:p></p><p class=MsoNormal style='text-autospace:none'>   Best regards,<o:p></o:p></p><p class=MsoNormal style='text-autospace:none'>   Bernhard<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>