/*========================================================================= * * Copyright NumFOCUS * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0.txt * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * *=========================================================================*/ #ifndef itkConstantBoundaryCondition_hxx #define itkConstantBoundaryCondition_hxx namespace itk { template auto ConstantBoundaryCondition::operator()(const OffsetType &, const OffsetType &, const NeighborhoodType *) const -> OutputPixelType { return m_Constant; } template auto ConstantBoundaryCondition::operator()(const OffsetType &, const OffsetType &, const NeighborhoodType *, const NeighborhoodAccessorFunctorType &) const -> OutputPixelType { return m_Constant; } template void ConstantBoundaryCondition::SetConstant(const OutputPixelType & c) { m_Constant = c; } template auto ConstantBoundaryCondition::GetConstant() const -> const OutputPixelType & { return m_Constant; } template auto ConstantBoundaryCondition::GetInputRequestedRegion( const RegionType & inputLargestPossibleRegion, const RegionType & outputRequestedRegion) const -> RegionType { RegionType inputRequestedRegion(inputLargestPossibleRegion); bool cropped = inputRequestedRegion.Crop(outputRequestedRegion); if (!cropped) { inputRequestedRegion.SetIndex({ { 0 } }); inputRequestedRegion.SetSize({ { 0 } }); } return inputRequestedRegion; } template auto ConstantBoundaryCondition::GetPixel(const IndexType & index, const TInputImage * image) const -> OutputPixelType { RegionType imageRegion = image->GetLargestPossibleRegion(); if (imageRegion.IsInside(index)) { return static_cast(image->GetPixel(index)); } return m_Constant; } template void ConstantBoundaryCondition::Print(std::ostream & os, Indent i) const { this->Superclass::Print(os, i); os << i.GetNextIndent() << "Constant: " << m_Constant << std::endl; } } // namespace itk #endif