X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkVtkBlackBoxMacros.h;h=ce87d7e37c2ccc56472c16322767a65d7283360a;hb=975161a89341e867c53da1dedd15e2f97cbd4586;hp=448e2fe23744974f8c23f0a932efbf2242c09922;hpb=6575a389b71b1b85c79e4444885becb76ecf16e4;p=bbtk.git diff --git a/kernel/src/bbtkVtkBlackBoxMacros.h b/kernel/src/bbtkVtkBlackBoxMacros.h index 448e2fe..ce87d7e 100644 --- a/kernel/src/bbtkVtkBlackBoxMacros.h +++ b/kernel/src/bbtkVtkBlackBoxMacros.h @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkVtkBlackBoxMacros.h,v $ Language: C++ - Date: $Date: 2008/10/17 08:18:14 $ - Version: $Revision: 1.7 $ + Date: $Date: 2009/02/27 11:20:25 $ + Version: $Revision: 1.8 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -36,7 +36,7 @@ */ #ifndef __bbtkVtkBlackBoxMacros_h__ #define __bbtkVtkBlackBoxMacros_h__ -//#include +#include //#include #include @@ -47,11 +47,48 @@ //=========================================================================== //=========================================================================== +//=========================================================================== +#define BBTK_VTK_DISABLE_GARBAGE_COLLECTOR \ + public: \ + virtual void Register(vtkObjectBase* o) {} \ + virtual void UnRegister(vtkObjectBase* o) {} \ + protected: \ + virtual void ReportReferences(vtkGarbageCollector* collector) {} + +/* + + public: \ + virtual void Register(vtkObjectBase* o) {} \ + { + this->RegisterInternal(o, 1); + } + virtual void UnRegister(vtkObjectBase* o) + { + this->UnRegisterInternal(o, 1); + } + + protected: + + virtual void ReportReferences(vtkGarbageCollector* collector) + { + // Report references held by this object that may be in a loop. + this->Superclass::ReportReferences(collector); + vtkGarbageCollectorReport(collector, this->OtherObject, "Other Object"); + } +*/ +//=========================================================================== //=========================================================================== #define BBTK_VTK_DELETE() \ void bbDelete() { \ + for (int i=0; iSetSource(NULL); \ + /*std::cout << "VTK : bbDelete() "< "<<#CLASS \ <<"::New(\""< "<<#CLASS \ <<"::bbClone(\""<UnRegister(this); + //=========================================================================== /// Declares a vtkImageAlgorithm-inherited AtomicBlackBox input #define BBTK_DECLARE_VTK_IMAGE_ALGORITHM_INPUT(NAME,TYPE) \ @@ -104,7 +147,7 @@ { return GetImageDataInput(0); /*vtkParent::GetInput();*/ } \ void bbSetInput##NAME (TYPE d) \ { vtkParent::SetInput( (vtkDataObject*) d); \ - /*bbSetModifiedStatus();*/ } + BBTK_VTK_UNREGISTER(d);/*bbSetModifiedStatus();*/ } //=========================================================================== //=========================================================================== @@ -115,7 +158,7 @@ { return GetPolyDataInput(0); /*vtkParent::GetInput();*/ } \ void bbSetInput##NAME (TYPE d) \ { vtkParent::SetInput( (vtkDataObject*) d); \ - /*bbSetModifiedStatus();*/ } + BBTK_VTK_UNREGISTER(d);/*bbSetModifiedStatus();*/ } //=========================================================================== //=========================================================================== @@ -135,7 +178,8 @@ TYPE bbGetInput##NAME () \ { return dynamic_cast(vtkParent::GetInput()); } \ void bbSetInput##NAME (TYPE d) \ - { vtkParent::SetInput( (vtkDataObject*) d); /*vtkParent::GetOutput() = d;*/ } + { vtkParent::SetInput( (vtkDataObject*) d); \ + BBTK_VTK_UNREGISTER(d);/*vtkParent::GetOutput() = d;*/ } //===========================================================================