void SignedDanielssonDistanceMapImageFilterITK::signedDanielssonDistanceMapImageFilterITK() { typedef itk::Image<T, 3> InputImageType1; typedef itk::Image<T, 3> OutputImageType1; typedef itk::Image<T, 3> OutputImageType2; typename InputImageType1::Pointer p1 = voreenToITK<T>(inport1_.getData()); //Filter define typedef itk::SignedDanielssonDistanceMapImageFilter<InputImageType1, OutputImageType1> FilterType; typename FilterType::Pointer filter = FilterType::New(); filter->SetInput(p1); filter->SetInsideIsPositive(insideIsPositive_.get()); filter->SetSquaredDistance(squaredDistance_.get()); filter->SetUseImageSpacing(useImageSpacing_.get()); observe(filter.GetPointer()); try { filter->Update(); } catch (itk::ExceptionObject &e) { LERROR(e); } Volume* outputVolume1 = 0; outputVolume1 = ITKToVoreenCopy<T>(filter->GetDistanceMap()); if (outputVolume1) { transferRWM(inport1_.getData(), outputVolume1); transferTransformation(inport1_.getData(), outputVolume1); outport1_.setData(outputVolume1); } else outport1_.setData(0); Volume* outputVolume2 = 0; outputVolume2 = ITKToVoreenCopy<T>(filter->GetVoronoiMap()); if (outputVolume2) { transferRWM(inport1_.getData(), outputVolume2); transferTransformation(inport1_.getData(), outputVolume2); outport2_.setData(outputVolume2); } else outport2_.setData(0); }