[IGSTK-Users] dynamic_cast in TrackerController::TrackerInitializeProcess

Andrew Wiles awiles at ndigital.com
Wed Aug 4 11:47:54 EDT 2010


Hello,

I am having some issues using the TrackerController class.  I am writing an application modelling it after the Navigator application.  I can successfully read the Aurora xml file and when I go to initialize the tracker I get an unhandled exception: Microsoft C++ exception: std::__non_rtti_object at memory location 0x010acc78.  I have tracked it down to occurring in the TrackerController::TrackerInitializeProcess() function where a dynamic cast is performed on the temporary configuration object.  (Line 130 in igstkTrackerController.cxx).

... code snip ...

if( dynamic_cast<PolarisVicraTrackerConfiguration *>
      ( this->m_TmpTrackerConfiguration ) )
      {
      this->m_TrackerConfiguration = m_TmpTrackerConfiguration;
      igstkPushInputMacro( PolarisVicraInitialize );
      }
    else if( dynamic_cast<PolarisHybridTrackerConfiguration *>
      ( this->m_TmpTrackerConfiguration ) )
      {
      this->m_TrackerConfiguration = m_TmpTrackerConfiguration;
      igstkPushInputMacro( PolarisHybridInitialize );
      }

... code snip ...

The strange thing is that things were working before with both my app and the Navigator application.  Now, only the TrackerConfigurationExample which uses primarily the same code works and both my app and the Navigator app fails.  The only change on my computer that I think has happened was a Microsoft Update (running XP).

System config:

Windows XP
MSVC 2008 Express
IGSTK 4.2 (latest version of that branch).
VTK 5.6
ITK 3.8
FLTK provided on the IGSTK wiki
Qt 4.6.3.

Any thoughts on how I should track down the problem?  I have been struggling with this for several days and I am at a bit of a loss on how to proceed.

Cheers.
Andrew

--------------------
Andrew D. Wiles, PhD, PEng
Research Scientist, Medical Division
NDI
103 Randall Drive
Waterloo, ON, Canada, N2V 1C5
Telephone: +1 (519) 884-5142 ext. 314
Toll Free: +1 (877) 634-6340
Global: ++ (800) 634-634-00
Facsimile: +1 (519) 884-5184
Website: www.ndigital.com
--------------------




More information about the IGSTK-Users mailing list