2009年4月24日金曜日

解決

4月21日のエントリーで「wxVTKRenderWindowInteractorは、vtk5.0なら動くけれどvtk5.4では一部動かない。」と書いたが解決。Joystickのタイマー作ってるmethodが変更になったみたいで、ヘッダーファイルに、
#if (VTK_MAJOR_VERSION >= 5 && VTK_MINOR_VERSION > 0)
int InternalCreateTimer(int timerId, int timerType, unsigned long duration);
int InternalDestroyTimer(int platformTimerId);
#else
int CreateTimer(int timertype);
int DestroyTimer();
#endif
ソースに
#if (VTK_MAJOR_VERSION >= 5 && VTK_MINOR_VERSION > 0)
//---------------------------------------------------------------------------
int wxVTKRenderWindowInteractor::InternalCreateTimer(int timerId, int timerType, unsigned long duration)
{
bool oneShoot(false);
if (timerType==1){
oneShoot=false;
}
if (!timer.Start(duration, oneShoot))
assert(false);
wxLogDebug(wxT("Create Internal Timer"));
return timerId;
}
//---------------------------------------------------------------------------
int wxVTKRenderWindowInteractor::InternalDestroyTimer(int platformTimerId)
{
// do nothing
wxLogDebug(wxT("Destry Internal Timer"));
return 1;
}
#else
//---------------------------------------------------------------------------
int wxVTKRenderWindowInteractor::CreateTimer(int WXUNUSED(timertype))
{
// it's a one shot timer
if (!timer.Start(10, TRUE))
assert(false);
wxLogDebug(wxT("Create Timer"));
return 1;

}
//---------------------------------------------------------------------------
int wxVTKRenderWindowInteractor::DestroyTimer()
{
// do nothing
wxLogDebug(wxT("Destry Timer"));
return 1;
}
#endif
で動きました。(環境はWindows XP、VC++2005、VTK-5.4.0)

0 件のコメント:

コメントを投稿