int
main(int, char *[])
{
using PixelType = ImageMaskSpatialObject::PixelType;
using ImageType = ImageMaskSpatialObject::ImageType;
auto image = ImageType::New();
constexpr ImageType::SizeType size = { { 50, 50, 50 } };
constexpr ImageType::IndexType index = { { 0, 0, 0 } };
ImageType::RegionType region;
region.SetSize(size);
region.SetIndex(index);
image->SetRegions(region);
image->Allocate(true);
ImageType::RegionType insideRegion;
constexpr ImageType::SizeType insideSize = { { 30, 30, 30 } };
constexpr ImageType::IndexType insideIndex = { { 10, 10, 10 } };
insideRegion.SetSize(insideSize);
insideRegion.SetIndex(insideIndex);
Iterator it(image, insideRegion);
it.GoToBegin();
while (!it.IsAtEnd())
{
++it;
}
auto maskSO = ImageMaskSpatialObject::New();
maskSO->SetImage(image);
maskSO->Update();
std::cout << "Is my point " << inside << " inside my mask? "
<< maskSO->IsInsideInWorldSpace(inside) << std::endl;
std::cout << "Is my point " << outside << " outside my mask? "
<< !maskSO->IsInsideInWorldSpace(outside) << std::endl;
return EXIT_SUCCESS;
}
Implementation of an image mask as spatial object.
A multi-dimensional iterator templated over image type that walks a region of pixels.
static constexpr T max(const T &)
constexpr TContainer MakeFilled(typename TContainer::const_reference value)