X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpExtensions%2FAlgorithms%2FMacheteImageFilter.hxx;h=a984df17784e2548021efbb44c7047ba6689e3d0;hb=00d030e4e10fea579b427297027e3ac37ff960b6;hp=4da94282055c51900c3d13aba16d62ac9b757fff;hpb=bd53dc3e11a665706fd8082bef218786a9d0669c;p=cpPlugins.git diff --git a/lib/cpExtensions/Algorithms/MacheteImageFilter.hxx b/lib/cpExtensions/Algorithms/MacheteImageFilter.hxx index 4da9428..a984df1 100644 --- a/lib/cpExtensions/Algorithms/MacheteImageFilter.hxx +++ b/lib/cpExtensions/Algorithms/MacheteImageFilter.hxx @@ -14,14 +14,16 @@ template< class I, class O> void cpExtensions::Algorithms::MacheteImageFilter< I, O> ::GenerateData() { + //const typename Superclass::OutputImageRegionType& region; + typename I::ConstPointer input = this->GetInput(); typename O::Pointer output = this->GetOutput(); output->SetRegions(input->GetLargestPossibleRegion()); output->Allocate(); - itk::ImageRegionIterator outputIterator(output, output->GetLargestPossibleRegion()); - itk::ImageRegionConstIterator inputIterator(input, input->GetLargestPossibleRegion()); + itk::ImageRegionIterator outputIterator(output, output->GetLargestPossibleRegion()); + itk::ImageRegionConstIterator inputIterator(input, input->GetLargestPossibleRegion()); while (!outputIterator.IsAtEnd()) { @@ -30,10 +32,10 @@ void cpExtensions::Algorithms::MacheteImageFilter< I, O> otherPoint[0] = p0[0]; otherPoint[1] = p0[1]; otherPoint[2] = p0[2]; - otherPoint[2] = this->point[2]; // TODO : Solve this hammer + //otherPoint[2] = this->point[2]; // TODO : Solve this hammer double dist = this->point.EuclideanDistanceTo(otherPoint); - if (dist <= this->radius) + if (dist <= this->m_Radius) { outputIterator.Set(0); } @@ -46,18 +48,44 @@ void cpExtensions::Algorithms::MacheteImageFilter< I, O> ++outputIterator; } + } template< class I, class O> -void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetRadius(double rad){ - this->radius = rad; +void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetRadius(const RadiusType & rad) +{ + if (this->m_Radius != rad) + { + this->m_Radius = rad; + this->Modified(); + } } +//template< class I, class O> +//void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetRadius(const RadiusValueType & rad) +//{ +// RadiusType r; +// r.Fill(rad); +// this->SetRadius(r); +//} + template< class I, class O> -void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetPoint(itk::Point point){ - this->point = point; +void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetPoint(itk::Point & p){ + if (point != p) + { + this->point = p; + this->Modified(); + } } +template< class I, class O> +void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetPoint(const double & x, const double & y, const double & z) +{ + this->point[0] = x; + this->point[1] = y; + this->point[2] = z; + this->Modified(); +}