]> Creatis software - bbtk.git/blobdiff - packages/vtk/src/bbvtkIsoSurfaceExtractor.cxx
*** empty log message ***
[bbtk.git] / packages / vtk / src / bbvtkIsoSurfaceExtractor.cxx
index ab9c92bf9b4a8841a3ee85f5325c4f6bbc0dceee..ae9a7fe9aacae536a3f9c4e188699f6950206a96 100644 (file)
@@ -2,8 +2,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbvtkIsoSurfaceExtractor.cxx,v $
   Language:  C++
-  Date:      $Date: 2008/10/17 08:18:30 $
-  Version:   $Revision: 1.7 $
+  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<double> colour;
-     colour.push_back(1.0);
-     colour.push_back(1.0);
-     colour.push_back(0.5);
-     bbSetInputColour(colour);
-
-   }
-   void IsoSurfaceExtractor::bbUserCopyConstructor() 
-   { 
-     Init();
+     //           printf("EED %p IsoSurfaceExtractor::bbUserConstructor \n", this);
+          firsttime=true;
+          std::vector<double> 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,14 +127,20 @@ namespace bbvtk
      
      
      vtkactor->GetProperty()->SetOpacity( bbGetInputOpacity() );
-     bbSetOutputOut( vtkactor );
      
+     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