<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi all,<br>
<br>
I would like to be able to change between multiresolution and direct
registration methods on run-time.<br>
<br>
Up to now, I've been using a template class to make all constructors of
needed classes public (and using the raw C++ pointers) to have the
ability of casting classes, but I think that it is not the right
solution.<br>
<br>
The question is, how should I do to create an object of a type and then
cast&nbsp; it to its superclass? e.g.:<br>
<br>
<blockquote>
  <pre>itk::ImageRegistrationMethod&lt;ImageType, ImageType&gt;::Pointer r = itk::ImageRegistrationMethod&lt;ImageType, ImageType&gt;::New();</pre>
  <pre>// do some particular itk::ImageRegistrationMethod stuff
...</pre>
  <pre>itk::ProcessObject::Pointer registration = dynamic_cast&lt;itk::ProcessObject::Pointer&gt;(r);
// do some common stuff of itk::ProcessObject children
  </pre>
</blockquote>
I think that another way to resolve my problem should be act as
itk::Common is used on the examples code:<br>
<blockquote type="cite">
  <pre>void Execute ( const itk::Object * object, const itk::EventObject &amp; event )&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;{</pre>
  <pre>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;OptimizerPointer optimizer =</pre>
  <pre>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; dynamic_cast&lt; OptimizerPointer &gt; ( object );</pre>
  <pre>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if ( ! itk::IterationEvent().CheckEvent ( &amp;event ) )</pre>
  <pre>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;{</pre>
  <pre>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return;</pre>
  <pre>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}</pre>
  <pre>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;std::cout &lt;&lt; optimizer-&gt;GetCurrentIteration() &lt;&lt; "&nbsp;&nbsp; ";</pre>
  <pre>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;std::cout &lt;&lt; optimizer-&gt;GetValue() &lt;&lt; "&nbsp;&nbsp; ";</pre>
  <pre>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;std::cout &lt;&lt; optimizer-&gt;GetCurrentPosition() &lt;&lt; std::endl;</pre>
  <pre>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}</pre>
</blockquote>
But, how should I get the itk::Object* from the
itk::ImageRegistrationMethod&lt;..&gt;::Pointer ?<br>
<br>
Thanks in advance,<br>
Oscar Esteban<br>
</body>
</html>