X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=itk%2FclitkBoundingBoxUtils.txx;h=d6fbc24b7eaa0248c4a9a78bdb0297f829da4a72;hb=c84464b925114176d46e882f73a00c5c10d18ff1;hp=26f38b2e7a3d55dc9ecf1eed7e642bb325c807d7;hpb=9019bb8f0b75ff31cbb78f063cbc8eb4d8679834;p=clitk.git diff --git a/itk/clitkBoundingBoxUtils.txx b/itk/clitkBoundingBoxUtils.txx index 26f38b2..d6fbc24 100644 --- a/itk/clitkBoundingBoxUtils.txx +++ b/itk/clitkBoundingBoxUtils.txx @@ -51,19 +51,33 @@ namespace clitk { void ComputeBBIntersection(typename itk::BoundingBox::Pointer bbo, typename itk::BoundingBox::Pointer bbi1, typename itk::BoundingBox::Pointer bbi2) { - typedef itk::BoundingBox BBType; typedef typename BBType::PointType PointType; PointType lastPoint; PointType firstPoint; - for(unsigned int i=0; iGetMinimum()[i], - bbi2->GetMinimum()[i]); - lastPoint[i] = std::min(bbi1->GetMaximum()[i], - bbi2->GetMaximum()[i]); + firstPoint[i] = std::max(bbi1->GetMinimum()[i], bbi2->GetMinimum()[i]); + lastPoint[i] = std::min(bbi1->GetMaximum()[i], bbi2->GetMaximum()[i]); } + bbo->SetMaximum(lastPoint); + bbo->SetMinimum(firstPoint); + } + //-------------------------------------------------------------------- + + ///-------------------------------------------------------------------- + template + void ComputeBBUnion(typename itk::BoundingBox::Pointer bbo, + typename itk::BoundingBox::Pointer bbi1, + typename itk::BoundingBox::Pointer bbi2) { + typedef itk::BoundingBox BBType; + typedef typename BBType::PointType PointType; + PointType lastPoint; + PointType firstPoint; + for(unsigned int i=0; iGetMinimum()[i], bbi2->GetMinimum()[i]); + lastPoint[i] = std::max(bbi1->GetMaximum()[i], bbi2->GetMaximum()[i]); + } bbo->SetMaximum(lastPoint); bbo->SetMinimum(firstPoint); }