+
+ // Read the input like image
+ typedef itk::ImageFileReader<OutputImageType> LikeReaderType;
+ typename LikeReaderType::Pointer reader = LikeReaderType::New();
+ reader->SetFileName(mArgsInfo.like_arg);
+ reader->Update();
+ typename OutputImageType::Pointer likeImage = reader->GetOutput();
+
+ extrusionSize = likeImage->GetLargestPossibleRegion().GetSize()[Dim];
+ extrusionSpacing = likeImage->GetSpacing()[Dim];
+ extrusionOrigin = likeImage->GetOrigin()[Dim];
+ } else {
+ if (mArgsInfo.size_given) {
+ if (mArgsInfo.size_arg > 0)
+ extrusionSize = mArgsInfo.size_arg;
+ else {
+ std::cerr << "The size has to be > 0" << std::endl;
+ return;
+ }
+ }
+ if (mArgsInfo.origin_given) {
+ extrusionOrigin = mArgsInfo.origin_arg;
+ }
+ if (mArgsInfo.spacing_given) {
+ if (mArgsInfo.spacing_arg > 0)
+ extrusionSpacing = mArgsInfo.spacing_arg;
+ else {
+ std::cerr << "The spacing has to be > 0" << std::endl;
+ return;
+ }
+ }