<div dir="ltr">Hi Fabian, <div style>your callback function is not complete. The "if" and "else if" statements do not check for a certain event invoked. Use code above as template:</div><div style><br></div>
<div>  if( const igstk::PivotCalibration::DataAcquisitionEvent *evt =</div><div>     dynamic_cast< const igstk::PivotCalibration::DataAcquisitionEvent * > (&event) )</div><div>  {</div><div style>// set progress bar</div>
<div>  }</div><div>  else if( dynamic_cast<</div><div>          const igstk::PivotCalibration::DataAcquisitionEndEvent * > (&event) )</div><div>  {</div><div style>// do nothing</div><div>  }</div><div>  else if( const igstk::PivotCalibration::CalibrationFailureEvent *evt =</div>
<div>       dynamic_cast<</div><div>          const igstk::PivotCalibration::CalibrationFailureEvent * > (&event) )</div><div>  {</div><div style> // handle error</div><div style>  } </div><div style><div> else if( dynamic_cast<</div>
<div>          const igstk::PivotCalibration::CalibrationSuccessEvent * > (&event) )</div><div>  {</div><div style>// process results</div><div>}</div><div><br></div><div style>Best,</div><div style>Ozgur</div></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/1/14 Fabian Torres <span dir="ltr"><<a href="mailto:fabian.trobles@gmail.com" target="_blank">fabian.trobles@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hi all.<div><br></div><div>Im trying to ise the igstk::PivotCalibration class. Im using the igstkPivotCalibratioFLTKWidget class as a guideline.</div><div><br></div><div>The problem I have is that I do not receive some calibration events. I get the following events:</div>

<div><br></div><div>igstk::PivotCalibration::InitializationFailureEvent()</div><div>igstk::PivotCalibration::InitializationSuccessEvent()<br></div><div>igstk::PivotCalibration::DataAcquisitionStartEvent()<br></div><div><br>

</div><div><br></div><div>After the InitializationSuccessEvent I use</div><div><br></div><div>                       <font size="1">pivotCalibration->RequestComputeCalibration();</font></div><div><br></div><div>and receive a  DataAcquisitionStartEvent, but after that I do not get any event. I do not receive a DataAcquisitionEvent, DataAcquisitionEndEvent, CalibrationSuccessEvent or CalibrationFailureEvent.</div>

<div><br></div><div>This is my callback function for events</div><div><br></div><div><div><font size="1">void NeedleCalibration::OnCalibrationEvent( itk::Object * caller, const itk::EventObject & event )</font></div>

<div><font size="1">{</font></div><div><font size="1"><br></font></div><div><font size="1"><span style="white-space:pre-wrap">  </span>std::cout<<"OnCalibrationEvent"<<std::endl;</font></div><div>
<font size="1"><br></font></div><div><font size="1"><span style="white-space:pre-wrap"> </span>if(dynamic_cast< const </font></div><div><font size="1"><span style="white-space:pre-wrap">           </span>    igstk::PivotCalibration::DataAcquisitionStartEvent * > (&event) )</font></div>

<div><font size="1"><span style="white-space:pre-wrap">   </span>{</font></div><div><font size="1"><span style="white-space:pre-wrap">            </span>std::cout<<"Data Acquisition Started"<<std::endl;</font></div>

<div><font size="1"><span style="white-space:pre-wrap">   </span>}</font></div><div><font size="1"><span style="white-space:pre-wrap">    </span>else if(dynamic_cast< const </font></div><div><font size="1"><span style="white-space:pre-wrap">              </span>    igstk::PivotCalibration::DataAcquisitionEvent * > (&event) )</font></div>

<div><font size="1">       {</font></div><div><font size="1">                std::cout<<"Data Acquisition"<<std::endl;</font></div><div><font size="1">       }</font></div><div><font size="1"><span style="white-space:pre-wrap">   </span>else if( dynamic_cast< </font></div>

<div><font size="1"><span style="white-space:pre-wrap">   </span>  const igstk::PivotCalibration::DataAcquisitionEndEvent * > (&event) )</font></div><div><font size="1">       { </font></div><div><font size="1"><span style="white-space:pre-wrap">           </span>std::cout<<"Data Acquisition Ended"<<std::endl;</font></div>

<div><font size="1">       }</font></div><div><font size="1"><span style="white-space:pre-wrap">       </span>else if(dynamic_cast< </font></div><div><font size="1"><span style="white-space:pre-wrap">                             </span>const igstk::PivotCalibration::CalibrationFailureEvent * > (&event) )</font></div>

<div><font size="1">       {</font></div><div><font size="1"><span style="white-space:pre-wrap">                </span>std::cout<<"Calibration failed"<<std::endl;</font></div><div><font size="1"><span style="white-space:pre-wrap">       </span>}</font></div>

<div><font size="1"><span style="white-space:pre-wrap">   </span>else if( dynamic_cast< </font></div><div><font size="1"><span style="white-space:pre-wrap">   </span>  const igstk::PivotCalibration::CalibrationSuccessEvent * > (&event) )</font></div>

<div><font size="1">      {</font></div><div><font size="1"><span style="white-space:pre-wrap">         </span>std::cout<<"Calibration Succed"<<std::endl;</font></div><div><font size="1">   </font></div>
<div><font size="1">      }</font></div><div><font size="1">}</font></div></div><div><div><br></div><div>And this are my observers</div><div><br></div><div><font size="1">typedef itk::MemberCommand<NeedleCalibration>   CalibrationObserverType;</font><br>

</div><div><div><font size="1">this->m_CalibrationObserver = CalibrationObserverType::New();</font></div><div><font size="1">this->m_CalibrationObserver->SetCallbackFunction(this, &NeedleCalibration::OnCalibrationEvent );</font></div>

<div><font size="1">pivotCalibration->AddObserver(igstk::PivotCalibration::DataAcquisitionStartEvent(), this->m_CalibrationObserver );</font></div><div><font size="1">pivotCalibration->AddObserver(igstk::PivotCalibration::DataAcquisitionEvent(), this->m_CalibrationObserver );</font></div>

<div><font size="1">pivotCalibration->AddObserver(igstk::PivotCalibration::DataAcquisitionEndEvent(),this->m_CalibrationObserver );</font></div><div><font size="1">pivotCalibration->AddObserver(igstk::PivotCalibration::CalibrationSuccessEvent(),this->m_CalibrationObserver );</font></div>

<div><font size="1">pivotCalibration->AddObserver(igstk::PivotCalibration::CalibrationFailureEvent(),this->m_CalibrationObserver );</font></div></div><div><br></div><div>My tracker is in tracking state</div><div>
<br></div><div>Can anyone help me with this problem</div><div>Thanks for your time</div><span class="HOEnZb"><font color="#888888">-- <br>Fabián Torres Robles<br>Maestria en Ciencias en Ingeniería Electrónica<br>Ingeniería en Sistemas Electrónicos<br>
tel. 58081280, 0445534661338<br>
e-mail <a href="mailto:fabian.trobles@gmail.com" target="_blank">fabian.trobles@gmail.com</a>, <a href="mailto:dae.wong@gmail.com" target="_blank">dae.wong@gmail.com</a>  <div style="line-height:130%;text-align:left;font-size:10px;overflow:hidden;margin-left:0px;word-wrap:break-word;margin-top:0px;padding:0px">

</div><div style="line-height:130%;text-align:left;font-size:10px;overflow:hidden;margin-left:0px;word-wrap:break-word;margin-top:0px;padding:0px"></div>
</font></span></div></div>
<br>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users" target="_blank">http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br>
*********************************************************************<br>Dr. Dipl.-Ing. Özgür Güler, Bakk. techn. PhD<br>Research Assistant<br>4D-Visualization Laboratory<br>Univ. ENT Clinic<br>Innsbruck Medical University<br>
Anichstr. 35, A-6020 Innsbruck, Austria<br><br>tel.: +43 512 504 23428, fax.: +43 512 504 25231<br><br><a href="http://voxelmaster.eu" target="_blank">voxelmaster.eu</a><br><a href="http://www.gueler.at" target="_blank">www.gueler.at</a><br>
*********************************************************************<br><br>
</div>