18 #ifndef __itkAdvancedCombinationTransform_h 19 #define __itkAdvancedCombinationTransform_h 22 #include "itkExceptionObject.h" 55 template<
typename TScalarType,
unsigned int NDimensions = 3 >
130 itkGetObjectMacro( InitialTransform, InitialTransformType );
131 itkGetConstObjectMacro( InitialTransform, InitialTransformType );
139 itkGetObjectMacro( CurrentTransform, CurrentTransformType );
140 itkGetConstObjectMacro( CurrentTransform, CurrentTransformType );
149 virtual const TransformTypePointer
GetNthTransform( SizeValueType n )
const;
154 itkGetConstMacro( UseComposition,
bool );
159 itkGetConstMacro( UseAddition,
bool );
162 virtual OutputPointType
TransformPoint(
const InputPointType & point )
const;
171 <<
"TransformVector(const InputVectorType &) is not implemented " 172 <<
"for AdvancedCombinationTransform" );
179 <<
"TransformVector(const InputVnlVectorType &) is not implemented " 180 <<
"for AdvancedCombinationTransform" );
187 <<
"TransformCovariantVector(const InputCovariantVectorType &) is not implemented " 188 <<
"for AdvancedCombinationTransform" );
225 virtual bool GetInverse( Self * inverse )
const;
229 virtual bool IsLinear(
void )
const;
244 const InputPointType & ipp,
246 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
250 const InputPointType & ipp,
251 const MovingImageGradientType & movingImageGradient,
252 DerivativeType & imageJacobian,
253 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
257 const InputPointType & ipp,
258 SpatialJacobianType & sj )
const;
262 const InputPointType & ipp,
263 SpatialHessianType & sh )
const;
267 const InputPointType & ipp,
268 JacobianOfSpatialJacobianType & jsj,
269 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
275 const InputPointType & ipp,
276 SpatialJacobianType & sj,
277 JacobianOfSpatialJacobianType & jsj,
278 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
282 const InputPointType & ipp,
283 JacobianOfSpatialHessianType & jsh,
284 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
290 const InputPointType & ipp,
291 SpatialHessianType & sh,
292 JacobianOfSpatialHessianType & jsh,
293 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
298 const InputPointType &,
300 NonZeroJacobianIndicesType & )
const;
302 const InputPointType &,
303 const MovingImageGradientType &,
305 NonZeroJacobianIndicesType & )
const;
307 const InputPointType &,
308 SpatialJacobianType & )
const;
310 const InputPointType &,
311 SpatialHessianType & )
const;
313 const InputPointType &,
314 JacobianOfSpatialJacobianType &,
315 NonZeroJacobianIndicesType & )
const;
317 const InputPointType &,
318 SpatialJacobianType &,
319 JacobianOfSpatialJacobianType &,
320 NonZeroJacobianIndicesType & )
const;
322 const InputPointType &,
323 JacobianOfSpatialHessianType &,
324 NonZeroJacobianIndicesType & )
const;
326 const InputPointType &,
327 SpatialHessianType &,
328 JacobianOfSpatialHessianType &,
329 NonZeroJacobianIndicesType & )
const;
383 const InputPointType & point ) const;
389 const InputPointType & point ) const;
393 const InputPointType & point ) const;
397 const InputPointType & point ) const;
405 const InputPointType &,
407 NonZeroJacobianIndicesType & ) const;
413 const InputPointType &,
415 NonZeroJacobianIndicesType & ) const;
419 const InputPointType &,
421 NonZeroJacobianIndicesType & ) const;
425 const InputPointType &,
427 NonZeroJacobianIndicesType & ) const;
435 const InputPointType &,
436 const MovingImageGradientType &,
438 NonZeroJacobianIndicesType & ) const;
444 const InputPointType &,
445 const MovingImageGradientType &,
447 NonZeroJacobianIndicesType & ) const;
451 const InputPointType &,
452 const MovingImageGradientType &,
454 NonZeroJacobianIndicesType & ) const;
458 const InputPointType &,
459 const MovingImageGradientType &,
461 NonZeroJacobianIndicesType & ) const;
469 const InputPointType & ipp,
470 SpatialJacobianType & sj ) const;
476 const InputPointType & ipp,
477 SpatialJacobianType & sj ) const;
481 const InputPointType & ipp,
482 SpatialJacobianType & sj ) const;
486 const InputPointType & ipp,
487 SpatialJacobianType & sj ) const;
495 const InputPointType & ipp,
496 SpatialHessianType & sh ) const;
502 const InputPointType & ipp,
503 SpatialHessianType & sh ) const;
507 const InputPointType & ipp,
508 SpatialHessianType & sh ) const;
512 const InputPointType & ipp,
513 SpatialHessianType & sh ) const;
521 const InputPointType & ipp,
522 JacobianOfSpatialJacobianType & jsj,
523 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
526 const InputPointType & ipp,
527 SpatialJacobianType & sj,
528 JacobianOfSpatialJacobianType & jsj,
529 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
535 const InputPointType & ipp,
536 JacobianOfSpatialJacobianType & jsj,
537 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
540 const InputPointType & ipp,
541 SpatialJacobianType & sj,
542 JacobianOfSpatialJacobianType & jsj,
543 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
547 const InputPointType & ipp,
548 JacobianOfSpatialJacobianType & jsj,
549 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
552 const InputPointType & ipp,
553 SpatialJacobianType & sj,
554 JacobianOfSpatialJacobianType & jsj,
555 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
559 const InputPointType & ipp,
560 JacobianOfSpatialJacobianType & jsj,
561 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
564 const InputPointType & ipp,
565 SpatialJacobianType & sj,
566 JacobianOfSpatialJacobianType & jsj,
567 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
575 const InputPointType & ipp,
576 JacobianOfSpatialHessianType & jsh,
577 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
580 const InputPointType & ipp,
581 SpatialHessianType & sh,
582 JacobianOfSpatialHessianType & jsh,
583 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
589 const InputPointType & ipp,
590 JacobianOfSpatialHessianType & jsh,
591 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
594 const InputPointType & ipp,
595 SpatialHessianType & sh,
596 JacobianOfSpatialHessianType & jsh,
597 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
601 const InputPointType & ipp,
602 JacobianOfSpatialHessianType & jsh,
603 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
606 const InputPointType & ipp,
607 SpatialHessianType & sh,
608 JacobianOfSpatialHessianType & jsh,
609 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
613 const InputPointType & ipp,
614 JacobianOfSpatialHessianType & jsh,
615 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
618 const InputPointType & ipp,
619 SpatialHessianType & sh,
620 JacobianOfSpatialHessianType & jsh,
621 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
630 void operator=( const Self & );
636 #ifndef ITK_MANUAL_INSTANTIATION 637 #include "itkAdvancedCombinationTransform.hxx" 640 #endif // end #ifndef __itkAdvancedCombinationTransform_h