X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkIsoSurfaceExtractor.cxx;h=ae9a7fe9aacae536a3f9c4e188699f6950206a96;hb=c9290f68cfff1094e0548fae2beb996476e5a496;hp=3c311e93a2816ccdfd60321b2e68b6990435ed12;hpb=00119d2074a1d423927404a1759b9a9616a087ba;p=bbtk.git diff --git a/packages/vtk/src/bbvtkIsoSurfaceExtractor.cxx b/packages/vtk/src/bbvtkIsoSurfaceExtractor.cxx index 3c311e9..ae9a7fe 100644 --- a/packages/vtk/src/bbvtkIsoSurfaceExtractor.cxx +++ b/packages/vtk/src/bbvtkIsoSurfaceExtractor.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbvtkIsoSurfaceExtractor.cxx,v $ Language: C++ - Date: $Date: 2008/11/20 17:41:48 $ - Version: $Revision: 1.8 $ + Date: $Date: 2009/05/28 08:55:44 $ + Version: $Revision: 1.15 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -37,6 +37,7 @@ #ifdef _USE_VTK_ #include "vtkProperty.h" +#include "vtkLinearTransform.h" #include "bbvtkIsoSurfaceExtractor.h" #include "bbvtkPackage.h" @@ -46,38 +47,32 @@ namespace bbvtk BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,IsoSurfaceExtractor) BBTK_BLACK_BOX_IMPLEMENTATION(IsoSurfaceExtractor,bbtk::AtomicBlackBox); - void IsoSurfaceExtractor::bbUserConstructor() + void IsoSurfaceExtractor::bbUserSetDefaultValues() { - Init(); - std::vector colour; - colour.push_back(1.0); - colour.push_back(1.0); - colour.push_back(0.5); - bbSetInputColour(colour); - bbSetInputTransform(NULL); - } - void IsoSurfaceExtractor::bbUserCopyConstructor() - { - Init(); + // printf("EED %p IsoSurfaceExtractor::bbUserConstructor \n", this); + firsttime=true; + std::vector colour; + colour.push_back(1.0); + colour.push_back(1.0); + colour.push_back(0.5); + bbSetInputColour(colour); + + bbSetInputIn(NULL); + // bbSetInputInVtkObject(NULL); + bbSetInputRenderer(NULL); + bbSetInputTransform(NULL); + bbSetInputIsovalue(400); + bbSetInputOpacity(1); + + marchingcubes = NULL; + polydatamapper = NULL; + vtkactor = NULL; } - void IsoSurfaceExtractor::bbUserDestructor() - { - marchingcubes->Delete(); - polydatamapper->Delete(); - vtkactor->Delete(); - } - void IsoSurfaceExtractor::Init() - { - firsttime=true; - - bbSetInputIn(NULL); - // bbSetInputInVtkObject(NULL); - bbSetInputRenderer(NULL); - bbSetInputIsovalue(400); - bbSetInputOpacity(1); - + //--------------------------------------------------------------------- + void IsoSurfaceExtractor::bbUserInitializeProcessing() + { marchingcubes = vtkMarchingCubes::New(); polydatamapper = vtkPolyDataMapper::New(); vtkactor = vtkActor::New(); @@ -87,14 +82,41 @@ namespace bbvtk polydatamapper->ScalarVisibilityOff(); polydatamapper->ImmediateModeRenderingOn(); -} + } + //--------------------------------------------------------------------- + void IsoSurfaceExtractor::bbUserFinalizeProcessing() + { + if (marchingcubes!=NULL) + { + marchingcubes->Delete(); + marchingcubes=NULL; + } + + + if (polydatamapper!=NULL) + { + polydatamapper->Delete(); + polydatamapper=NULL; + } + + if (vtkactor!=NULL) + { + vtkactor->Delete(); + vtkactor=NULL; + } + + + + + } + + //--------------------------------------------------------------------- void IsoSurfaceExtractor::DoProcess() { - // bbGetInputIn()->Print(std::cout); - // Visualisation - result volume + //printf("EED %p IsoSurfaceExtractor::DoProcess \n", this); marchingcubes->SetInput( bbGetInputIn() ); marchingcubes->SetValue(0, bbGetInputIsovalue() ); marchingcubes->Update(); @@ -105,20 +127,20 @@ namespace bbvtk vtkactor->GetProperty()->SetOpacity( bbGetInputOpacity() ); - - if ( bbGetInputTransform()!=NULL ) - { - vtkactor->SetUserTransform( bbGetInputTransform() ); - } + + if ( bbGetInputTransform()!=NULL ) + { + vtkactor->SetUserTransform( bbGetInputTransform() ); + } bbSetOutputOut( vtkactor ); - + // Interface Update if ((firsttime==true) && (bbGetInputRenderer()!=NULL )) { - firsttime=false; - bbGetInputRenderer()->AddActor( vtkactor ); - } + firsttime=false; + bbGetInputRenderer()->AddActor( vtkactor ); + } } } // EO namespace bbtk