18#ifndef itkAdvancedTransformAdapter_h 
   19#define itkAdvancedTransformAdapter_h 
   37template <
class TScalarType, 
unsigned int NDimensions>
 
   61  using typename Superclass::ParametersType;
 
   62  using typename Superclass::JacobianType;
 
   63  using typename Superclass::InputVectorType;
 
   64  using typename Superclass::OutputVectorType;
 
   65  using typename Superclass::InputCovariantVectorType;
 
   66  using typename Superclass::OutputCovariantVectorType;
 
   67  using typename Superclass::InputVnlVectorType;
 
   68  using typename Superclass::OutputVnlVectorType;
 
   69  using typename Superclass::InputPointType;
 
   70  using typename Superclass::OutputPointType;
 
   83    if (m_ExternalTransform || !parameters.empty())
 
   85      itkExceptionMacro(
"The parameters of an external transform cannot be set! Only the trivial case of setting an " 
   86                        "empty parameters to an unspecified (null) external transform is supported!");
 
 
   94    itkExceptionMacro(<< unimplementedOverrideMessage);
 
 
   98  const ParametersType &
 
  101    return itk::Deref(m_ExternalTransform.GetPointer()).GetFixedParameters();
 
 
  108    return itk::Deref(m_ExternalTransform.GetPointer()).TransformPoint(point);
 
 
  115    itkExceptionMacro(<< unimplementedOverrideMessage);
 
 
  121    itkExceptionMacro(<< unimplementedOverrideMessage);
 
 
  124  OutputCovariantVectorType
 
  127    itkExceptionMacro(<< unimplementedOverrideMessage);
 
 
  133    return itk::Deref(m_ExternalTransform.GetPointer()).IsLinear();
 
 
  140    itkExceptionMacro(<< unimplementedOverrideMessage);
 
 
  146    itkExceptionMacro(<< unimplementedOverrideMessage);
 
 
  152    itkExceptionMacro(<< unimplementedOverrideMessage);
 
 
  160    itkExceptionMacro(<< unimplementedOverrideMessage);
 
 
  169    itkExceptionMacro(<< unimplementedOverrideMessage);
 
 
  177    itkExceptionMacro(<< unimplementedOverrideMessage);
 
 
  186    itkExceptionMacro(<< unimplementedOverrideMessage);
 
 
  189  using typename Superclass::TransformType;
 
  196    return m_ExternalTransform.GetPointer();
 
 
  208  PrintSelf(std::ostream & os, itk::Indent indent)
 const override 
  210    Superclass::PrintSelf(os, indent);
 
  212    os << indent << 
"ExternalTransform: ";
 
  214    if (m_ExternalTransform)
 
  216      os << *m_ExternalTransform << std::endl;
 
  220      os << indent << 
"null" << std::endl;
 
 
  226  using Superclass::TransformCovariantVector;
 
  227  using Superclass::TransformVector;
 
  229  static constexpr const char * unimplementedOverrideMessage = 
"Not implemented for AdvancedTransformAdapter";
 
  231  itk::SmartPointer<TransformType> m_ExternalTransform{};