|
|
|
@ -42,12 +42,6 @@ |
|
|
|
|
// |
|
|
|
|
// This workaround code was taken from PCL library(www.pointclouds.org) |
|
|
|
|
// |
|
|
|
|
// Modified by Jasper Shemilt to work with VTK 6.2 |
|
|
|
|
// The fix was needed because GetCocoaServer has been moved from |
|
|
|
|
// vtkCocoaRenderWindowInteractor to vtkCocoaRenderWindow in VTK 6.2. |
|
|
|
|
// This alteration to VTK happened almost a year ago according to the gitHub |
|
|
|
|
// commit a3e9fc9. |
|
|
|
|
// |
|
|
|
|
//M*/ |
|
|
|
|
|
|
|
|
|
#import <Cocoa/Cocoa.h> |
|
|
|
@ -160,97 +154,6 @@ |
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
|
#if VTK_MAJOR_VERSION >= 6 && VTK_MINOR_VERSION >=2 |
|
|
|
|
|
|
|
|
|
namespace cv { namespace viz |
|
|
|
|
{ |
|
|
|
|
class vtkCocoaRenderWindowInteractorFix : public vtkCocoaRenderWindowInteractor |
|
|
|
|
{ |
|
|
|
|
public: |
|
|
|
|
static vtkCocoaRenderWindowInteractorFix *New (); |
|
|
|
|
vtkTypeMacro (vtkCocoaRenderWindowInteractorFix, vtkCocoaRenderWindowInteractor) |
|
|
|
|
|
|
|
|
|
virtual void Start (); |
|
|
|
|
virtual void TerminateApp (); |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
vtkCocoaRenderWindowInteractorFix () {} |
|
|
|
|
~vtkCocoaRenderWindowInteractorFix () {} |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
vtkCocoaRenderWindowInteractorFix (const vtkCocoaRenderWindowInteractorFix&); // Not implemented. |
|
|
|
|
void operator = (const vtkCocoaRenderWindowInteractorFix&); // Not implemented. |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
vtkStandardNewMacro (vtkCocoaRenderWindowInteractorFix) |
|
|
|
|
|
|
|
|
|
vtkSmartPointer<vtkRenderWindowInteractor> vtkCocoaRenderWindowInteractorNew(); |
|
|
|
|
|
|
|
|
|
class vtkCocoaRenderWindowFix : public vtkCocoaRenderWindow |
|
|
|
|
{ |
|
|
|
|
public: |
|
|
|
|
static vtkCocoaRenderWindowFix *New (); |
|
|
|
|
vtkTypeMacro ( vtkCocoaRenderWindowFix, vtkCocoaRenderWindow) |
|
|
|
|
|
|
|
|
|
virtual vtkCocoaServerFix * GetCocoaServer (); |
|
|
|
|
virtual void SetCocoaServer (void* ); |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
vtkCocoaRenderWindowFix () {} |
|
|
|
|
~vtkCocoaRenderWindowFix () {} |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
vtkCocoaRenderWindowFix (const vtkCocoaRenderWindowInteractorFix&); // Not implemented. |
|
|
|
|
void operator = (const vtkCocoaRenderWindowFix&); // Not implemented. |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
vtkStandardNewMacro (vtkCocoaRenderWindowFix) |
|
|
|
|
|
|
|
|
|
vtkSmartPointer<vtkRenderWindow> vtkCocoaRenderWindowNew(); |
|
|
|
|
}} |
|
|
|
|
|
|
|
|
|
vtkCocoaServerFix * cv::viz::vtkCocoaRenderWindowFix::GetCocoaServer () |
|
|
|
|
{ |
|
|
|
|
return reinterpret_cast<vtkCocoaServerFix*> (this->GetCocoaServer ()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void cv::viz::vtkCocoaRenderWindowFix::SetCocoaServer (void* server) |
|
|
|
|
{ |
|
|
|
|
this->SetCocoaServer (server); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void cv::viz::vtkCocoaRenderWindowInteractorFix::Start () |
|
|
|
|
{ |
|
|
|
|
vtkCocoaRenderWindowFix* renWin = vtkCocoaRenderWindowFix::SafeDownCast(this->GetRenderWindow ()); |
|
|
|
|
if (renWin != NULL) |
|
|
|
|
{ |
|
|
|
|
vtkCocoaServerFix *server = reinterpret_cast<vtkCocoaServerFix*> (renWin->GetCocoaServer ()); |
|
|
|
|
if (!renWin->GetCocoaServer ()) |
|
|
|
|
{ |
|
|
|
|
server = [vtkCocoaServerFix cocoaServerWithRenderWindow:renWin]; |
|
|
|
|
renWin->SetCocoaServer (reinterpret_cast<void*> (server)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[server start]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void cv::viz::vtkCocoaRenderWindowInteractorFix::TerminateApp () |
|
|
|
|
{ |
|
|
|
|
vtkCocoaRenderWindowFix *renWin = vtkCocoaRenderWindowFix::SafeDownCast (this->RenderWindow); |
|
|
|
|
if (renWin) |
|
|
|
|
{ |
|
|
|
|
vtkCocoaServerFix *server = reinterpret_cast<vtkCocoaServerFix*> (renWin->GetCocoaServer ()); |
|
|
|
|
[server stop]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
vtkSmartPointer<vtkRenderWindowInteractor> cv::viz::vtkCocoaRenderWindowInteractorNew() |
|
|
|
|
{ |
|
|
|
|
return vtkSmartPointer<vtkCocoaRenderWindowInteractorFix>::New(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#else |
|
|
|
|
namespace cv { namespace viz |
|
|
|
|
{ |
|
|
|
|
class vtkCocoaRenderWindowInteractorFix : public vtkCocoaRenderWindowInteractor |
|
|
|
@ -306,5 +209,3 @@ vtkSmartPointer<vtkRenderWindowInteractor> cv::viz::vtkCocoaRenderWindowInteract |
|
|
|
|
{ |
|
|
|
|
return vtkSmartPointer<vtkCocoaRenderWindowInteractorFix>::New(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
|