%module(directors="1") director_frob; #pragma SWIG nowarn=SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR #ifdef SWIGSCILAB %rename(cb) coreCallbacks; %rename(On3dEngRedrawn) coreCallbacksOn3dEngineRedrawnData; %rename (_On3dEngRedrawn) coreCallbacks_On3dEngineRedrawnData; #endif %header %{ #include %} %feature("director"); %feature("nodirector") Bravo::abs_method(); // ok %feature("director") Charlie::abs_method(); // ok %feature("nodirector") Delta::abs_method(); // ok %inline %{ struct Alpha { virtual ~Alpha() { }; virtual const char* abs_method() = 0; }; struct Bravo : Alpha { const char* abs_method() { return "Bravo::abs_method()"; } }; struct Charlie : Bravo { const char* abs_method() { return "Charlie::abs_method()"; } }; struct Delta : Charlie { }; %} %rename(OpInt) operator int(); %rename(OpIntStarStarConst) operator int **() const; %rename(OpIntAmp) operator int &(); %rename(OpIntStar) operator void *(); %rename(OpConstIntIntStar) operator const int *(); %inline %{ class Ops { public: Ops() : num(0) {} virtual ~Ops() {} #if !defined(__SUNPRO_CC) virtual operator int() { return 0; } #endif virtual operator int **() const { return (int **) 0; } virtual operator int &() { return num; } virtual operator void *() { return (void *) this; } virtual operator const int *() { return # } private: int num; }; struct Prims { virtual ~Prims() {} virtual unsigned long long ull(unsigned long long i, unsigned long long j) { return i + j; } unsigned long long callull(int i, int j) { return ull(i, j); } }; %} // The similarity of the director class name and other symbol names were causing a problem in the code generation %feature("director") coreCallbacks; %inline %{ class corePoint3d {}; struct coreCallbacks_On3dEngineRedrawnData { corePoint3d _eye; corePoint3d _at; }; struct coreCallbacksOn3dEngineRedrawnData { corePoint3d _eye; corePoint3d _at; }; class coreCallbacks { public: coreCallbacks(void) {} virtual ~coreCallbacks(void) {} virtual void On3dEngineRedrawn(const coreCallbacks_On3dEngineRedrawnData& data){} virtual void On3dEngineRedrawn2(const coreCallbacksOn3dEngineRedrawnData& data){} }; %}