ITK
5.2.0
Insight Toolkit
|
#include <itkMultiTransform.h>
Public Types | |
using | ConstPointer = SmartPointer< const Self > |
using | DerivativeType = typename Superclass::DerivativeType |
using | FixedParametersType = typename Superclass::FixedParametersType |
using | FixedParametersValueType = typename Superclass::FixedParametersValueType |
using | InputCovariantVectorType = typename Superclass::InputCovariantVectorType |
using | InputDiffusionTensor3DType = typename Superclass::InputDiffusionTensor3DType |
using | InputPointType = typename Superclass::InputPointType |
using | InputSymmetricSecondRankTensorType = typename Superclass::InputSymmetricSecondRankTensorType |
using | InputVectorPixelType = typename Superclass::InputVectorPixelType |
using | InputVectorType = typename Superclass::InputVectorType |
using | InputVnlVectorType = typename Superclass::InputVnlVectorType |
using | InverseJacobianPositionType = typename Superclass::InverseJacobianPositionType |
using | InverseTransformBasePointer = typename Superclass::InverseTransformBasePointer |
using | JacobianPositionType = typename Superclass::JacobianPositionType |
using | JacobianType = typename Superclass::JacobianType |
using | NumberOfParametersType = typename Superclass::NumberOfParametersType |
using | OutputCovariantVectorType = typename Superclass::OutputCovariantVectorType |
using | OutputDiffusionTensor3DType = typename Superclass::OutputDiffusionTensor3DType |
using | OutputPointType = typename Superclass::OutputPointType |
using | OutputSymmetricSecondRankTensorType = typename Superclass::OutputSymmetricSecondRankTensorType |
using | OutputVectorPixelType = typename Superclass::OutputVectorPixelType |
using | OutputVectorType = typename Superclass::OutputVectorType |
using | OutputVnlVectorType = typename Superclass::OutputVnlVectorType |
using | ParametersType = typename Superclass::ParametersType |
using | ParametersValueType = typename Superclass::ParametersValueType |
using | Pointer = SmartPointer< Self > |
using | ScalarType = ParametersValueType |
using | Self = MultiTransform |
using | SubTransformInverseTransformBasePointer = typename TransformType::InverseTransformBasePointer |
using | Superclass = Transform< TParametersValueType, NDimensions, NSubDimensions > |
using | TransformCategoryEnum = typename Superclass::TransformCategoryEnum |
using | TransformQueueType = std::deque< TransformTypePointer > |
using | TransformType = Transform< TParametersValueType, NSubDimensions, NSubDimensions > |
using | TransformTypePointer = typename TransformType::Pointer |
Public Types inherited from itk::Transform< TParametersValueType, NDimensions, NSubDimensions > | |
using | ConstPointer = SmartPointer< const Self > |
using | DerivativeType = Array< ParametersValueType > |
using | DirectionChangeMatrix = Matrix< double, Self::OutputSpaceDimension, Self::InputSpaceDimension > |
using | FixedParametersType = typename Superclass::FixedParametersType |
using | FixedParametersValueType = typename Superclass::FixedParametersValueType |
using | InputCovariantVectorType = CovariantVector< TParametersValueType, NInputDimensions > |
using | InputDiffusionTensor3DType = DiffusionTensor3D< TParametersValueType > |
using | InputDirectionMatrix = Matrix< double, Self::InputSpaceDimension, Self::InputSpaceDimension > |
using | InputPointType = Point< TParametersValueType, NInputDimensions > |
using | InputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< TParametersValueType, NInputDimensions > |
using | InputVectorPixelType = VariableLengthVector< TParametersValueType > |
using | InputVectorType = Vector< TParametersValueType, NInputDimensions > |
using | InputVnlVectorType = vnl_vector_fixed< TParametersValueType, NInputDimensions > |
using | InverseJacobianPositionType = vnl_matrix_fixed< ParametersValueType, NInputDimensions, NOutputDimensions > |
using | InverseTransformBasePointer = typename InverseTransformBaseType::Pointer |
using | InverseTransformBaseType = Transform< TParametersValueType, NOutputDimensions, NInputDimensions > |
using | JacobianPositionType = vnl_matrix_fixed< ParametersValueType, NOutputDimensions, NInputDimensions > |
using | JacobianType = Array2D< ParametersValueType > |
using | MatrixType = Matrix< TParametersValueType, Self::OutputSpaceDimension, Self::InputSpaceDimension > |
using | NumberOfParametersType = typename Superclass::NumberOfParametersType |
using | OutputCovariantVectorType = CovariantVector< TParametersValueType, NOutputDimensions > |
using | OutputDiffusionTensor3DType = DiffusionTensor3D< TParametersValueType > |
using | OutputDirectionMatrix = Matrix< double, Self::OutputSpaceDimension, Self::OutputSpaceDimension > |
using | OutputPointType = Point< TParametersValueType, NOutputDimensions > |
using | OutputSymmetricSecondRankTensorType = SymmetricSecondRankTensor< TParametersValueType, NOutputDimensions > |
using | OutputVectorPixelType = VariableLengthVector< TParametersValueType > |
using | OutputVectorType = Vector< TParametersValueType, NOutputDimensions > |
using | OutputVnlVectorType = vnl_vector_fixed< TParametersValueType, NOutputDimensions > |
using | ParametersType = typename Superclass::ParametersType |
using | ParametersValueType = typename Superclass::ParametersValueType |
using | Pointer = SmartPointer< Self > |
using | ScalarType = ParametersValueType |
using | Self = Transform |
using | Superclass = TransformBaseTemplate< TParametersValueType > |
using | TransformCategoryEnum = typename Superclass::TransformCategoryEnum |
Public Types inherited from itk::TransformBaseTemplate< TParametersValueType > | |
using | ConstPointer = SmartPointer< const Self > |
using | FixedParametersType = OptimizerParameters< FixedParametersValueType > |
using | FixedParametersValueType = double |
using | NumberOfParametersType = IdentifierType |
using | ParametersType = OptimizerParameters< ParametersValueType > |
using | ParametersValueType = TParametersValueType |
using | Pointer = SmartPointer< Self > |
using | Self = TransformBaseTemplate |
using | Superclass = Object |
using | TransformCategoryEnum = TransformBaseTemplateEnums::TransformCategory |
Public Types inherited from itk::Object | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = Object |
using | Superclass = LightObject |
Public Types inherited from itk::LightObject | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = LightObject |
This abstract class contains a list of transforms and provides basic methods.
This abstract base class is used by classes that operate on a list of sub-transforms. The sub-transforms can have a different dimensionality than the container transform.
Transforms are stored in a container (queue), in the following order:
Transforms are added via a single method, AddTransform(). This adds the transforms to the back of the queue. A single method for adding transforms is meant to simplify the interface and prevent errors.
Inverse todo
TODO
Interface Issues/Comments x The PushFrontTransform and PushBackTransform methods are protected to force the user to use the AddTransform method, forcing the order of transforms. Are there use cases where the user would need to insert transforms at the front of the queue? Or at arbitrary positions?
GetParameters efficiency optimization Can we optimize this to only query the sub-transforms when the params in the sub transforms have changed since the previous call? Can't use Modified time b/c that will get updated in sub-transforms with every call to SetParameters. Is this worth worrying about? i.e. how much time will it take in the overall registration process? Probably very little.
Definition at line 65 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::ConstPointer = SmartPointer<const Self> |
Definition at line 74 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::DerivativeType = typename Superclass::DerivativeType |
Derivative type
Definition at line 93 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::FixedParametersType = typename Superclass::FixedParametersType |
Definition at line 88 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::FixedParametersValueType = typename Superclass::FixedParametersValueType |
Definition at line 89 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::InputCovariantVectorType = typename Superclass::InputCovariantVectorType |
Standard covariant vector type for this class
Definition at line 117 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::InputDiffusionTensor3DType = typename Superclass::InputDiffusionTensor3DType |
Standard DiffusionTensor3D type alias for this class
Definition at line 129 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::InputPointType = typename Superclass::InputPointType |
Standard coordinate point type for this class.
Definition at line 109 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::InputSymmetricSecondRankTensorType = typename Superclass::InputSymmetricSecondRankTensorType |
Standard SymmetricSecondRankTensor type alias for this class
Definition at line 133 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::InputVectorPixelType = typename Superclass::InputVectorPixelType |
Standard Vectorpixel type for this class
Definition at line 125 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::InputVectorType = typename Superclass::InputVectorType |
Standard vector type for this class.
Definition at line 113 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::InputVnlVectorType = typename Superclass::InputVnlVectorType |
Standard vnl_vector type for this class.
Definition at line 121 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::InverseJacobianPositionType = typename Superclass::InverseJacobianPositionType |
Definition at line 98 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::InverseTransformBasePointer = typename Superclass::InverseTransformBasePointer |
InverseTransform type.
Definition at line 106 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::JacobianPositionType = typename Superclass::JacobianPositionType |
Definition at line 97 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::JacobianType = typename Superclass::JacobianType |
Jacobian type.
Definition at line 96 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::NumberOfParametersType = typename Superclass::NumberOfParametersType |
The number of parameters defining this transform.
Definition at line 145 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::OutputCovariantVectorType = typename Superclass::OutputCovariantVectorType |
Definition at line 118 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::OutputDiffusionTensor3DType = typename Superclass::OutputDiffusionTensor3DType |
Definition at line 130 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::OutputPointType = typename Superclass::OutputPointType |
Definition at line 110 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::OutputSymmetricSecondRankTensorType = typename Superclass::OutputSymmetricSecondRankTensorType |
Definition at line 134 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::OutputVectorPixelType = typename Superclass::OutputVectorPixelType |
Definition at line 126 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::OutputVectorType = typename Superclass::OutputVectorType |
Definition at line 114 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::OutputVnlVectorType = typename Superclass::OutputVnlVectorType |
Definition at line 122 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::ParametersType = typename Superclass::ParametersType |
Parameters type.
Definition at line 86 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::ParametersValueType = typename Superclass::ParametersValueType |
Definition at line 87 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::Pointer = SmartPointer<Self> |
Definition at line 73 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::ScalarType = ParametersValueType |
Definition at line 90 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::Self = MultiTransform |
Standard class type aliases.
Definition at line 71 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::SubTransformInverseTransformBasePointer = typename TransformType::InverseTransformBasePointer |
InverseTransform type.
Definition at line 139 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::Superclass = Transform<TParametersValueType, NDimensions, NSubDimensions> |
Definition at line 72 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::TransformCategoryEnum = typename Superclass::TransformCategoryEnum |
Transform category type.
Definition at line 101 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::TransformQueueType = std::deque<TransformTypePointer> |
Transform queue type
Definition at line 142 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::TransformType = Transform<TParametersValueType, NSubDimensions, NSubDimensions> |
Sub transform type
Definition at line 80 of file itkMultiTransform.h.
using itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::TransformTypePointer = typename TransformType::Pointer |
Definition at line 81 of file itkMultiTransform.h.
|
protected |
Flatten the transform queue such that there are no nested composite transforms.
|
overrideprotecteddefault |
Transform container object.
|
inlinevirtual |
Functionality for sub transforms Add transforms to the queue, as stack. Most-recently added transform is always at back of queue, index N-1.
Definition at line 160 of file itkMultiTransform.h.
|
inlinevirtual |
Same as AddTransform
Definition at line 167 of file itkMultiTransform.h.
|
inlinevirtual |
Clear the transform queue.
Reimplemented in itk::CompositeTransform< TParametersValueType, NDimensions >.
Definition at line 244 of file itkMultiTransform.h.
|
inlinevirtual |
Definition at line 194 of file itkMultiTransform.h.
|
overridevirtual |
Transform container object.
Implements itk::TransformBaseTemplate< TParametersValueType >.
|
inlinevirtual |
Get transforms at the front and the back of the queue
Definition at line 188 of file itkMultiTransform.h.
bool itk::MultiTransform< TParametersValueType, NDimensions, NSubDimensions >::GetInverse | ( | Self * | inverse | ) | const |
Returns a boolean indicating whether it is possible or not to compute the inverse of this current Transform. If it is possible, then the inverse of the transform is returned in the inverseTransform variable passed by the user. The inverse consists of the inverse of each sub-transform, in the same order as the forward transforms.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::Transform< TParametersValueType, NDimensions, NSubDimensions >.
Reimplemented in itk::CompositeTransform< TParametersValueType, NDimensions >.
|
inlinevirtual |
Definition at line 200 of file itkMultiTransform.h.
|
inlinevirtual |
Definition at line 216 of file itkMultiTransform.h.
|
inlinevirtual |
Get the Nth transform.
Definition at line 210 of file itkMultiTransform.h.
|
overridevirtual |
Transform container object.
Reimplemented from itk::Transform< TParametersValueType, NDimensions, NSubDimensions >.
|
overridevirtual |
Transform container object.
Reimplemented from itk::Transform< TParametersValueType, NDimensions, NSubDimensions >.
|
overridevirtual |
Transform container object.
Implements itk::TransformBaseTemplate< TParametersValueType >.
|
inlinevirtual |
Return the number of sub-transforms.
Definition at line 237 of file itkMultiTransform.h.
|
overridevirtual |
Get/Set Parameter functions work on all sub-transforms. The parameter data from each sub-transform is concatenated into a single ParametersType object.
Implements itk::TransformBaseTemplate< TParametersValueType >.
|
overridevirtual |
If all sub-transforms are of the same category, return that category. Otherwise return UnknownTransformCategory.
Implements itk::TransformBaseTemplate< TParametersValueType >.
|
inlinevirtual |
Access transform queue
Definition at line 223 of file itkMultiTransform.h.
|
overridevirtual |
If all sub-transforms are linear, then the multi-transform is linear.
Reimplemented from itk::Transform< TParametersValueType, NDimensions, NSubDimensions >.
|
inlinevirtual |
Misc. functionality
Definition at line 230 of file itkMultiTransform.h.
|
inlineprotectedvirtual |
Transform container object.
Reimplemented in itk::CompositeTransform< TParametersValueType, NDimensions >.
Definition at line 342 of file itkMultiTransform.h.
|
inlineprotectedvirtual |
Transform container object.
Reimplemented in itk::CompositeTransform< TParametersValueType, NDimensions >.
Definition at line 335 of file itkMultiTransform.h.
|
inlinevirtual |
Add transform to the front of the stack
Definition at line 174 of file itkMultiTransform.h.
|
overrideprotectedvirtual |
Transform container object.
Reimplemented from itk::Object.
|
inlineprotectedvirtual |
Transform container object.
Definition at line 328 of file itkMultiTransform.h.
|
inlineprotectedvirtual |
Transform container object.
Definition at line 321 of file itkMultiTransform.h.
|
inlinevirtual |
Remove transform from the back of the queue, index N-1
Definition at line 181 of file itkMultiTransform.h.
|
override |
Transform container object.
|
override |
Transform container object.
|
override |
Update the transform's parameters by the values in update
. See GetParameters() for parameter ordering.
|
staticconstexpr |
Dimension of the domain spaces.
Definition at line 148 of file itkMultiTransform.h.
|
mutableprotected |
Transform container object.
Definition at line 353 of file itkMultiTransform.h.
|
mutableprotected |
Cache to save time returning the number of local parameters
Definition at line 352 of file itkMultiTransform.h.
|
mutableprotected |
Transform container object.
Definition at line 349 of file itkMultiTransform.h.
|
staticconstexpr |
Definition at line 149 of file itkMultiTransform.h.
|
staticconstexpr |
Definition at line 151 of file itkMultiTransform.h.
|
staticconstexpr |
Definition at line 152 of file itkMultiTransform.h.