#include "bbUtilitiesMarchingContourFilter.h" #include "bbUtilitiesPackage.h" #include #include namespace bbUtilities { BBTK_ADD_BLACK_BOX_TO_PACKAGE(Utilities,MarchingContourFilter) BBTK_BLACK_BOX_IMPLEMENTATION(MarchingContourFilter,bbtk::AtomicBlackBox); void MarchingContourFilter::Process() { vtkImageData* img = bbGetInputIn(); int valuemax = bbGetInputMaxValue(); int valuemin = bbGetInputMinValue(); if(img != NULL){ vtkMarchingCubes *cubesFilter = vtkMarchingCubes::New(); cubesFilter->SetInput(img); cubesFilter->SetValue(0,valuemax); cubesFilter->ComputeGradientsOn (); cubesFilter->ComputeScalarsOn (); cubesFilter->SetNumberOfContours( 1 ); // Unir puntos duplicados y remover primitivas degeneradas vtkCleanPolyData *cleanFilter = vtkCleanPolyData::New(); cleanFilter->SetInput ( cubesFilter->GetOutput() ); cleanFilter->Update(); bbSetOutputOut( cleanFilter->GetOutput() ); } } void MarchingContourFilter::bbUserSetDefaultValues() { bbSetInputIn(NULL); bbSetInputMaxValue(0); bbSetInputMinValue(0); bbSetOutputOut(NULL); } void MarchingContourFilter::bbUserInitializeProcessing() { } void MarchingContourFilter::bbUserFinalizeProcessing() { } } // EO namespace bbUtilities