14 #ifndef __itkAdvancedCombinationTransform_h
15 #define __itkAdvancedCombinationTransform_h
18 #include "itkExceptionObject.h"
51 template<
typename TScalarType,
unsigned int NDimensions = 3 >
122 itkGetObjectMacro( InitialTransform, InitialTransformType );
123 itkGetConstObjectMacro( InitialTransform, InitialTransformType );
131 itkGetObjectMacro( CurrentTransform, CurrentTransformType );
132 itkGetConstObjectMacro( CurrentTransform, CurrentTransformType );
141 virtual const TransformTypePointer
GetNthTransform( SizeValueType n )
const;
146 itkGetConstMacro( UseComposition,
bool );
151 itkGetConstMacro( UseAddition,
bool );
154 virtual OutputPointType
TransformPoint(
const InputPointType & point )
const;
163 <<
"TransformVector(const InputVectorType &) is not implemented "
164 <<
"for AdvancedCombinationTransform" );
171 <<
"TransformVector(const InputVnlVectorType &) is not implemented "
172 <<
"for AdvancedCombinationTransform" );
179 <<
"TransformCovariantVector(const InputCovariantVectorType &) is not implemented "
180 <<
"for AdvancedCombinationTransform" );
217 virtual bool GetInverse( Self * inverse )
const;
221 virtual bool IsLinear(
void )
const;
236 const InputPointType & ipp,
238 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
242 const InputPointType & ipp,
243 SpatialJacobianType & sj )
const;
247 const InputPointType & ipp,
248 SpatialHessianType & sh )
const;
252 const InputPointType & ipp,
253 JacobianOfSpatialJacobianType & jsj,
254 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
260 const InputPointType & ipp,
261 SpatialJacobianType & sj,
262 JacobianOfSpatialJacobianType & jsj,
263 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
267 const InputPointType & ipp,
268 JacobianOfSpatialHessianType & jsh,
269 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
275 const InputPointType & ipp,
276 SpatialHessianType & sh,
277 JacobianOfSpatialHessianType & jsh,
278 NonZeroJacobianIndicesType & nonZeroJacobianIndices )
const;
283 const InputPointType &,
285 NonZeroJacobianIndicesType & )
const;
287 const InputPointType &,
288 SpatialJacobianType & )
const;
290 const InputPointType &,
291 SpatialHessianType & )
const;
293 const InputPointType &,
294 JacobianOfSpatialJacobianType &,
295 NonZeroJacobianIndicesType & )
const;
297 const InputPointType &,
298 SpatialJacobianType &,
299 JacobianOfSpatialJacobianType &,
300 NonZeroJacobianIndicesType & )
const;
302 const InputPointType &,
303 JacobianOfSpatialHessianType &,
304 NonZeroJacobianIndicesType & )
const;
306 const InputPointType &,
307 SpatialHessianType &,
308 JacobianOfSpatialHessianType &,
309 NonZeroJacobianIndicesType & )
const;
362 const InputPointType & point ) const;
368 const InputPointType & point ) const;
372 const InputPointType & point ) const;
376 const InputPointType & point ) const;
384 const InputPointType &,
386 NonZeroJacobianIndicesType & ) const;
392 const InputPointType &,
394 NonZeroJacobianIndicesType & ) const;
398 const InputPointType &,
400 NonZeroJacobianIndicesType & ) const;
404 const InputPointType &,
406 NonZeroJacobianIndicesType & ) const;
414 const InputPointType & ipp,
415 SpatialJacobianType & sj ) const;
421 const InputPointType & ipp,
422 SpatialJacobianType & sj ) const;
426 const InputPointType & ipp,
427 SpatialJacobianType & sj ) const;
431 const InputPointType & ipp,
432 SpatialJacobianType & sj ) const;
440 const InputPointType & ipp,
441 SpatialHessianType & sh ) const;
447 const InputPointType & ipp,
448 SpatialHessianType & sh ) const;
452 const InputPointType & ipp,
453 SpatialHessianType & sh ) const;
457 const InputPointType & ipp,
458 SpatialHessianType & sh ) const;
466 const InputPointType & ipp,
467 JacobianOfSpatialJacobianType & jsj,
468 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
471 const InputPointType & ipp,
472 SpatialJacobianType & sj,
473 JacobianOfSpatialJacobianType & jsj,
474 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
480 const InputPointType & ipp,
481 JacobianOfSpatialJacobianType & jsj,
482 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
485 const InputPointType & ipp,
486 SpatialJacobianType & sj,
487 JacobianOfSpatialJacobianType & jsj,
488 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
492 const InputPointType & ipp,
493 JacobianOfSpatialJacobianType & jsj,
494 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
497 const InputPointType & ipp,
498 SpatialJacobianType & sj,
499 JacobianOfSpatialJacobianType & jsj,
500 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
504 const InputPointType & ipp,
505 JacobianOfSpatialJacobianType & jsj,
506 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
509 const InputPointType & ipp,
510 SpatialJacobianType & sj,
511 JacobianOfSpatialJacobianType & jsj,
512 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
520 const InputPointType & ipp,
521 JacobianOfSpatialHessianType & jsh,
522 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
525 const InputPointType & ipp,
526 SpatialHessianType & sh,
527 JacobianOfSpatialHessianType & jsh,
528 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
534 const InputPointType & ipp,
535 JacobianOfSpatialHessianType & jsh,
536 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
539 const InputPointType & ipp,
540 SpatialHessianType & sh,
541 JacobianOfSpatialHessianType & jsh,
542 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
546 const InputPointType & ipp,
547 JacobianOfSpatialHessianType & jsh,
548 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
551 const InputPointType & ipp,
552 SpatialHessianType & sh,
553 JacobianOfSpatialHessianType & jsh,
554 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
558 const InputPointType & ipp,
559 JacobianOfSpatialHessianType & jsh,
560 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
563 const InputPointType & ipp,
564 SpatialHessianType & sh,
565 JacobianOfSpatialHessianType & jsh,
566 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const;
575 void operator=( const Self & );
581 #ifndef ITK_MANUAL_INSTANTIATION
582 #include "itkAdvancedCombinationTransform.hxx"
585 #endif // end #ifndef __itkAdvancedCombinationTransform_h