=========================================================================*/
-//#import <Cocoa/Cocoa.h>
+
#include <assert.h>
#include "creawxVTKRenderWindowInteractor.h"
-#include <wx/display.h>
-
-
//This is needed for vtk 3.1 :
#ifndef VTK_MAJOR_VERSION
# include "vtkVersion.h"
// AKT: wxOSX 2.9.x defines __WXOSX_COCOA__ rather than __WXCOCOA__
#ifdef __WXOSX_COCOA__
-#define __WXCOCOA__
+ #import <Cocoa/Cocoa.h>
+ #define __WXCOCOA__
#endif
#if defined(__WXMAC__) && wxCHECK_VERSION(2,9,0)
#endif
+#ifdef VTK_USE_TDX
+// #import "vtkTDxMacDevice.h"
+#import "/Users/davila/Creatis/C11/tpli/include/vtk-8.2/vtkTDxMacDevice.h"
+#endif
+
+
//=======================================================================
// LG : NAMESPACE IS NECESSARY TO AVOID CONFLICTING SYMBOLS IN DYN LIBS
namespace crea
// To access objc calls on cocoa
#ifdef __WXCOCOA__
#ifdef VTK_USE_COCOA
-#import <Cocoa/Cocoa.h>
// This trick is no longer need in VTK CVS, should get rid of that:
#define id Id
#else
#endif //__WXCOCOA__
#if wxMAJOR_VERSION <= 2
-
#ifdef __WXGTK__
#include <gdk/gdkx.h> // GDK_WINDOW_XWINDOW is found here in wxWidgets 2.8.0
#include "gdk/gdkprivate.h"
this->RenderWindow = NULL;
this->SetRenderWindow(vtkRenderWindow::New());
this->RenderWindow->Delete();
+
+#ifdef VTK_USE_TDX
+ this->Device=vtkTDxMacDevice::New();
+#endif
+
+
}
//---------------------------------------------------------------------------
wxVTKRenderWindowInteractor::wxVTKRenderWindowInteractor(wxWindow *parent,
// so we update the size information of the interactor/renderwindow here
this->UpdateSize(size.x, size.y);
#endif
+
+
+#ifdef VTK_USE_TDX
+ this->Device=vtkTDxMacDevice::New();
+#endif
+
+
}
//---------------------------------------------------------------------------
wxVTKRenderWindowInteractor::~wxVTKRenderWindowInteractor()
#if defined(__WXGTK__) && defined(USE_WXGLCANVAS)
delete this->context;
#endif
+
+#ifdef VTK_USE_TDX
+ this->Device->Delete();
+#endif
+
}
//---------------------------------------------------------------------------
wxVTKRenderWindowInteractor * wxVTKRenderWindowInteractor::New()
#if defined(__WXGTK__) && defined(USE_WXGLCANVAS)
wxGLCanvas::SetCurrent(*this->context);
#endif
+
+//EED 2010-10-14
+#ifdef VTK_USE_TDX
+ if(this->UseTDx)
+ {
+ this->Device->SetInteractor(this);
+ this->Device->Initialize();
+ }
+#endif
+
+
+
Modified();
}
//---------------------------------------------------------------------------
bool wxVTKRenderWindowInteractor::Enable(bool enable)
{
+
+#ifdef VTK_USE_TDX
+ if(this->UseTDx)
+ {
+ this->Device->SetInteractor(this);
+ this->Device->Initialize();
+ }
+#endif
+
+
+
#if defined(__WXGTK__) && defined(USE_WXGLCANVAS)
return wxGLCanvas::Enable(enable);
#else
if (!Enabled)
return;
+#ifdef VTK_USE_TDX
+ if(this->Device->GetInitialized())
+ {
+ this->Device->Close();
+ }
+#endif
+
+
// that's it (we can't remove the event handler like it should be...)
Enabled = 0;
Modified();
//---------------------------------------------------------------------------
void wxVTKRenderWindowInteractor::OnPaint(wxPaintEvent& WXUNUSED(event))
{
-
//must always be here
-//EED2021-08-26 wxPaintDC pDC(this);
+//EED2021-08-26
+#ifdef __WXCOCOA__
+#else
+ wxPaintDC pDC(this);
+#endif
//do it here rather than in the cstor: this is safer.
if(!Handle)
#ifdef __WXCOCOA__
vtkCocoaRenderWindow *rwin = vtkCocoaRenderWindow::SafeDownCast(RenderWindow);
-//2021-08-30
-// rwin->SetWantsBestResolution(true);
-
NSView *nvsview = (NSView* )Handle;
NSWindow *nswindow = nvsview.window;
rwin->SetRootWindow( nswindow );
#endif
}
// get vtk to render to the wxWindows
-
-Render();
+ Render();
#ifdef __WXMAC__
// This solves a problem with repainting after a window resize
// See also: http://sourceforge.net/mailarchive/forum.php?thread_id=31690967&forum_id=41789
}
#endif
#else
-
vtkCarbonRenderWindow* rwin = vtkCarbonRenderWindow::SafeDownCast(RenderWindow);
if( rwin )
{
#endif
#endif
}
-
//---------------------------------------------------------------------------
void wxVTKRenderWindowInteractor::OnEraseBackground(wxEraseEvent &event)
{
#endif
//this will check for Handle
//Render();
-
}
-
//---------------------------------------------------------------------------
void wxVTKRenderWindowInteractor::OnMotion(wxMouseEvent &event)
{
return;
}
#if VTK_MAJOR_VERSION > 4 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0)
-
SetEventInformationFlipY(event.GetX(), event.GetY(),
event.ControlDown(), event.ShiftDown(), '\0', 0, NULL);