Skip to content

Commit

Permalink
ENH: Add TransformParameterFileName property to TransformixFilter
Browse files Browse the repository at this point in the history
  • Loading branch information
N-Dekker committed Jun 26, 2023
1 parent 9d76b86 commit 71a4a9a
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 0 deletions.
9 changes: 9 additions & 0 deletions Core/Kernel/elxTransformixMain.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,15 @@ TransformixMain::EnterCommandLineArgumentsWithTransformParameterMaps(

if ((i + 1) == numberOfTransformParameterMaps)
{
// Remember the transform parameter file name from the argument map (if any).
if (const auto foundTransformParameterFileName = argmap.find("-tp");
foundTransformParameterFileName != argmap.end())
{
// The path of the transform parameter file may be used later by TransformBase::ReadFromFile(), when it has an
// initial transform parameter file whose file name is specified relative to this path.
configuration->SetParameterFileName(foundTransformParameterFileName->second);
}

/** Copy last configuration object to m_Configuration. */
MainBase::SetConfiguration(configuration);
}
Expand Down
4 changes: 4 additions & 0 deletions Core/Main/itkTransformixFilter.h
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ class ITK_TEMPLATE_EXPORT TransformixFilter : public ImageSource<TImage>
const DataObject *
GetInput(DataObjectPointerArraySizeType index) const;

void SetTransformParameterFileName(std::string);
itkGetConstMacro(TransformParameterFileName, std::string);

/** Set/Get/Remove fixed point set filename. */
itkSetMacro(FixedPointSetFileName, std::string);
itkGetConstMacro(FixedPointSetFileName, std::string);
Expand Down Expand Up @@ -280,6 +283,7 @@ class ITK_TEMPLATE_EXPORT TransformixFilter : public ImageSource<TImage>

SmartPointer<const elx::TransformixMain> m_TransformixMain{ nullptr };

std::string m_TransformParameterFileName{};
std::string m_FixedPointSetFileName{};
bool m_ComputeSpatialJacobian{ false };
bool m_ComputeDeterminantOfSpatialJacobian{ false };
Expand Down
19 changes: 19 additions & 0 deletions Core/Main/itkTransformixFilter.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,11 @@ TransformixFilter<TImage>::GenerateData()
argumentMap.insert(ArgumentMapEntryType("-def", m_FixedPointSetFileName));
}

if (!m_TransformParameterFileName.empty())
{
argumentMap.insert(ArgumentMapEntryType("-tp", m_TransformParameterFileName));
}

// Setup output directory
// Only the input "MovingImage" does not require an output directory
if ((m_ComputeSpatialJacobian || m_ComputeDeterminantOfSpatialJacobian || m_ComputeDeformationField ||
Expand Down Expand Up @@ -512,6 +517,20 @@ TransformixFilter<TImage>::GetTransformParameterObject() const -> const Paramete
}


template <typename TImage>
void
TransformixFilter<TImage>::SetTransformParameterFileName(std::string fileName)
{
if (m_TransformParameterFileName != fileName)
{
const auto parameterObject = elx::ParameterObject::New();
parameterObject->AddParameterFile(fileName);
SetTransformParameterObject(parameterObject);
m_TransformParameterFileName = std::move(fileName);
this->Modified();
}
}

template <typename TImage>
auto
TransformixFilter<TImage>::GetOutputDeformationField() -> OutputDeformationFieldType *
Expand Down

0 comments on commit 71a4a9a

Please sign in to comment.