FREE::RotationInitializer< iDimension > Class Template Reference
[Transformation controller]

RotationInitializer is a helper class intended to calculate the rotation around a given pair of center points. More...

#include <freTransformInitializer.h>

List of all members.

Public Types

typedef itk::Vector
< ScalarType,
iDimension > 
VectorType

Public Member Functions

void ClearSchedule (bool bToDefault=true)
void AddToSchedule (RotationAxisType axis)
void SetMovingCenter (VectorType center)
void SetFixedCenter (VectorType center)
void SetCenterPair (VectorType movingCenter, VectorType fixedCenter)
void SetCenterPair (ParameterArrayType movingCenter, ParameterArrayType fixedCenter)
void ClearReferences ()
void AddReferencePair (VectorType movingReference, VectorType fixedReference)
void AddReferencePair (ParameterArrayType movingReference, ParameterArrayType fixedReference)
void ComputeRotations ()
double GetRotation (RotationAxisType axis)
bool GetUseRotationWeight ()
void SetUseRotationWeight (bool bUseWeight)
 RotationInitializer ()
 ~RotationInitializer ()

Private Types

typedef std::vector
< Vector3DType
VectorArrayType
typedef std::vector
< RotationAxisType
ScheduleType

Private Member Functions

double CalculateRotationAngel (Vector3DType vector1, Vector3DType vector2, Vector3DType rotationAxis)

Private Attributes

double m_Angles [3]
bool m_bInitialized
bool m_bUseRotationWeight
VectorArrayType m_FixedReferences
VectorArrayType m_MovingReferences
ScheduleType m_Schedule
Vector3DType m_FixedCenter
Vector3DType m_MovingCenter


Detailed Description

template<int iDimension>
class FREE::RotationInitializer< iDimension >

RotationInitializer is a helper class intended to calculate the rotation around a given pair of center points.

RotationInitializer is a helper class intended to calculate the rotation by pairs reference points around a given pair of center points.
The difference between reference vector and center vector will be calculated. This difference vectors (difV) will be projected to a main plan and the projected vectors are used to calculate the angel needed for the rotation around a main axis. The moving difV will be rotated by this angel and the result becomes the new moving difV. This repeats till all wanted rotation axis have been checked and the angels have been calculated. The result of all reference point pairs are used to calculate the final results as an average.
The order and type of projections can be specified by a schedule. the default is z,y,x.

Remarks:
This Version is only suitable for 2 and 3 dimensions

Definition at line 214 of file freTransformInitializer.h.


Member Typedef Documentation

template<int iDimension>
typedef itk::Vector<ScalarType,iDimension> FREE::RotationInitializer< iDimension >::VectorType

Definition at line 217 of file freTransformInitializer.h.

template<int iDimension>
typedef std::vector<Vector3DType> FREE::RotationInitializer< iDimension >::VectorArrayType [private]

Definition at line 443 of file freTransformInitializer.h.

template<int iDimension>
typedef std::vector<RotationAxisType> FREE::RotationInitializer< iDimension >::ScheduleType [private]

Definition at line 447 of file freTransformInitializer.h.


Constructor & Destructor Documentation

template<int iDimension>
FREE::RotationInitializer< iDimension >::RotationInitializer (  )  [inline]

Definition at line 425 of file freTransformInitializer.h.

References FREE::RotationInitializer< iDimension >::ClearSchedule(), FREE::RotationInitializer< iDimension >::m_Angles, FREE::RotationInitializer< iDimension >::m_bInitialized, FREE::RotationInitializer< iDimension >::m_bUseRotationWeight, FREE::RA_X, FREE::RA_Y, and FREE::RA_Z.

Here is the call graph for this function:

FREE::RotationInitializer::ClearSchedule

template<int iDimension>
FREE::RotationInitializer< iDimension >::~RotationInitializer (  )  [inline]

Definition at line 436 of file freTransformInitializer.h.


Member Function Documentation

template<int iDimension>
void FREE::RotationInitializer< iDimension >::ClearSchedule ( bool  bToDefault = true  )  [inline]

Definition at line 219 of file freTransformInitializer.h.

References FREE::RotationInitializer< iDimension >::m_bInitialized, FREE::RotationInitializer< iDimension >::m_Schedule, FREE::RA_X, FREE::RA_Y, and FREE::RA_Z.

Referenced by FREE::RotationInitializer< iDimension >::RotationInitializer(), FREE::Similarity2DTransformController::SetInitialTransformValues(), FREE::CenteredRigid3DTransformController::SetInitialTransformValues(), FREE::CenteredEuler3DTransformController::SetInitialTransformValues(), FREE::CenteredAffine3DTransformController::SetInitialTransformValues(), and FREE::CenteredAffine2DTransformController::SetInitialTransformValues().

template<int iDimension>
void FREE::RotationInitializer< iDimension >::AddToSchedule ( RotationAxisType  axis  )  [inline]

Definition at line 231 of file freTransformInitializer.h.

References FREE::RotationInitializer< iDimension >::m_bInitialized, and FREE::RotationInitializer< iDimension >::m_Schedule.

Referenced by FREE::Similarity2DTransformController::SetInitialTransformValues(), FREE::CenteredRigid3DTransformController::SetInitialTransformValues(), FREE::CenteredEuler3DTransformController::SetInitialTransformValues(), FREE::CenteredAffine3DTransformController::SetInitialTransformValues(), and FREE::CenteredAffine2DTransformController::SetInitialTransformValues().

template<int iDimension>
void FREE::RotationInitializer< iDimension >::SetMovingCenter ( VectorType  center  )  [inline]

Definition at line 237 of file freTransformInitializer.h.

References FREE::RotationInitializer< iDimension >::m_bInitialized, and FREE::RotationInitializer< iDimension >::m_MovingCenter.

Referenced by FREE::RotationInitializer< iDimension >::SetCenterPair().

template<int iDimension>
void FREE::RotationInitializer< iDimension >::SetFixedCenter ( VectorType  center  )  [inline]

Definition at line 244 of file freTransformInitializer.h.

References FREE::RotationInitializer< iDimension >::m_bInitialized, and FREE::RotationInitializer< iDimension >::m_FixedCenter.

Referenced by FREE::RotationInitializer< iDimension >::SetCenterPair().

template<int iDimension>
void FREE::RotationInitializer< iDimension >::SetCenterPair ( VectorType  movingCenter,
VectorType  fixedCenter 
) [inline]

Definition at line 251 of file freTransformInitializer.h.

References FREE::RotationInitializer< iDimension >::SetFixedCenter(), and FREE::RotationInitializer< iDimension >::SetMovingCenter().

Referenced by FREE::Similarity2DTransformController::SetInitialTransformValues(), FREE::CenteredRigid3DTransformController::SetInitialTransformValues(), FREE::CenteredEuler3DTransformController::SetInitialTransformValues(), FREE::CenteredAffine3DTransformController::SetInitialTransformValues(), and FREE::CenteredAffine2DTransformController::SetInitialTransformValues().

Here is the call graph for this function:

FREE::RotationInitializer::SetFixedCenterFREE::RotationInitializer::SetMovingCenter

template<int iDimension>
void FREE::RotationInitializer< iDimension >::SetCenterPair ( ParameterArrayType  movingCenter,
ParameterArrayType  fixedCenter 
) [inline]

Definition at line 257 of file freTransformInitializer.h.

References FREE::RotationInitializer< iDimension >::SetFixedCenter(), and FREE::RotationInitializer< iDimension >::SetMovingCenter().

Here is the call graph for this function:

FREE::RotationInitializer::SetFixedCenterFREE::RotationInitializer::SetMovingCenter

template<int iDimension>
void FREE::RotationInitializer< iDimension >::ClearReferences (  )  [inline]

Definition at line 272 of file freTransformInitializer.h.

References FREE::RotationInitializer< iDimension >::m_bInitialized, FREE::RotationInitializer< iDimension >::m_FixedReferences, and FREE::RotationInitializer< iDimension >::m_MovingReferences.

template<int iDimension>
void FREE::RotationInitializer< iDimension >::AddReferencePair ( VectorType  movingReference,
VectorType  fixedReference 
) [inline]

Definition at line 279 of file freTransformInitializer.h.

References FREE::RotationInitializer< iDimension >::m_bInitialized, FREE::RotationInitializer< iDimension >::m_FixedReferences, and FREE::RotationInitializer< iDimension >::m_MovingReferences.

Referenced by FREE::RotationInitializer< iDimension >::AddReferencePair(), FREE::Similarity2DTransformController::SetInitialTransformValues(), FREE::CenteredRigid3DTransformController::SetInitialTransformValues(), FREE::CenteredEuler3DTransformController::SetInitialTransformValues(), FREE::CenteredAffine3DTransformController::SetInitialTransformValues(), and FREE::CenteredAffine2DTransformController::SetInitialTransformValues().

template<int iDimension>
void FREE::RotationInitializer< iDimension >::AddReferencePair ( ParameterArrayType  movingReference,
ParameterArrayType  fixedReference 
) [inline]

Definition at line 298 of file freTransformInitializer.h.

References FREE::RotationInitializer< iDimension >::AddReferencePair().

Here is the call graph for this function:

FREE::RotationInitializer::AddReferencePair

template<int iDimension>
void FREE::RotationInitializer< iDimension >::ComputeRotations (  )  [inline]

Definition at line 312 of file freTransformInitializer.h.

References FREE::RotationInitializer< iDimension >::CalculateRotationAngel(), FREE::RotationInitializer< iDimension >::m_Angles, FREE::RotationInitializer< iDimension >::m_bInitialized, FREE::RotationInitializer< iDimension >::m_bUseRotationWeight, FREE::RotationInitializer< iDimension >::m_FixedCenter, FREE::RotationInitializer< iDimension >::m_FixedReferences, FREE::RotationInitializer< iDimension >::m_MovingCenter, FREE::RotationInitializer< iDimension >::m_MovingReferences, FREE::RotationInitializer< iDimension >::m_Schedule, FREE::RA_X, FREE::RA_Y, and FREE::RA_Z.

Referenced by FREE::RotationInitializer< iDimension >::GetRotation(), FREE::Similarity2DTransformController::SetInitialTransformValues(), FREE::CenteredRigid3DTransformController::SetInitialTransformValues(), FREE::CenteredEuler3DTransformController::SetInitialTransformValues(), FREE::CenteredAffine3DTransformController::SetInitialTransformValues(), and FREE::CenteredAffine2DTransformController::SetInitialTransformValues().

Here is the call graph for this function:

FREE::RotationInitializer::CalculateRotationAngel

template<int iDimension>
double FREE::RotationInitializer< iDimension >::GetRotation ( RotationAxisType  axis  )  [inline]

Definition at line 410 of file freTransformInitializer.h.

References FREE::RotationInitializer< iDimension >::ComputeRotations(), FREE::RotationInitializer< iDimension >::m_Angles, and FREE::RotationInitializer< iDimension >::m_bInitialized.

Referenced by FREE::Similarity2DTransformController::SetInitialTransformValues(), FREE::CenteredRigid3DTransformController::SetInitialTransformValues(), FREE::CenteredEuler3DTransformController::SetInitialTransformValues(), FREE::CenteredAffine3DTransformController::SetInitialTransformValues(), and FREE::CenteredAffine2DTransformController::SetInitialTransformValues().

Here is the call graph for this function:

FREE::RotationInitializer::ComputeRotationsFREE::RotationInitializer::CalculateRotationAngel

template<int iDimension>
bool FREE::RotationInitializer< iDimension >::GetUseRotationWeight (  )  [inline]

Definition at line 417 of file freTransformInitializer.h.

References FREE::RotationInitializer< iDimension >::m_bUseRotationWeight.

template<int iDimension>
void FREE::RotationInitializer< iDimension >::SetUseRotationWeight ( bool  bUseWeight  )  [inline]

Definition at line 419 of file freTransformInitializer.h.

References FREE::RotationInitializer< iDimension >::m_bInitialized, and FREE::RotationInitializer< iDimension >::m_bUseRotationWeight.

Referenced by FREE::CenteredRigid3DTransformController::SetInitialTransformValues(), FREE::CenteredEuler3DTransformController::SetInitialTransformValues(), and FREE::CenteredAffine3DTransformController::SetInitialTransformValues().

template<int iDimension>
double FREE::RotationInitializer< iDimension >::CalculateRotationAngel ( Vector3DType  vector1,
Vector3DType  vector2,
Vector3DType  rotationAxis 
) [inline, private]

This function is used to calculate the rotation angel needed to transform vector2 to vector1 by a rotation with axis also passed with the function call.

Definition at line 456 of file freTransformInitializer.h.

Referenced by FREE::RotationInitializer< iDimension >::ComputeRotations().


Member Data Documentation

template<int iDimension>
double FREE::RotationInitializer< iDimension >::m_Angles[3] [private]

Definition at line 436 of file freTransformInitializer.h.

Referenced by FREE::RotationInitializer< iDimension >::ComputeRotations(), FREE::RotationInitializer< iDimension >::GetRotation(), and FREE::RotationInitializer< iDimension >::RotationInitializer().

template<int iDimension>
bool FREE::RotationInitializer< iDimension >::m_bInitialized [private]

Definition at line 440 of file freTransformInitializer.h.

Referenced by FREE::RotationInitializer< iDimension >::AddReferencePair(), FREE::RotationInitializer< iDimension >::AddToSchedule(), FREE::RotationInitializer< iDimension >::ClearReferences(), FREE::RotationInitializer< iDimension >::ClearSchedule(), FREE::RotationInitializer< iDimension >::ComputeRotations(), FREE::RotationInitializer< iDimension >::GetRotation(), FREE::RotationInitializer< iDimension >::RotationInitializer(), FREE::RotationInitializer< iDimension >::SetFixedCenter(), FREE::RotationInitializer< iDimension >::SetMovingCenter(), and FREE::RotationInitializer< iDimension >::SetUseRotationWeight().

template<int iDimension>
bool FREE::RotationInitializer< iDimension >::m_bUseRotationWeight [private]

Definition at line 441 of file freTransformInitializer.h.

Referenced by FREE::RotationInitializer< iDimension >::ComputeRotations(), FREE::RotationInitializer< iDimension >::GetUseRotationWeight(), FREE::RotationInitializer< iDimension >::RotationInitializer(), and FREE::RotationInitializer< iDimension >::SetUseRotationWeight().

template<int iDimension>
VectorArrayType FREE::RotationInitializer< iDimension >::m_FixedReferences [private]

Definition at line 444 of file freTransformInitializer.h.

Referenced by FREE::RotationInitializer< iDimension >::AddReferencePair(), FREE::RotationInitializer< iDimension >::ClearReferences(), and FREE::RotationInitializer< iDimension >::ComputeRotations().

template<int iDimension>
VectorArrayType FREE::RotationInitializer< iDimension >::m_MovingReferences [private]

Definition at line 445 of file freTransformInitializer.h.

Referenced by FREE::RotationInitializer< iDimension >::AddReferencePair(), FREE::RotationInitializer< iDimension >::ClearReferences(), and FREE::RotationInitializer< iDimension >::ComputeRotations().

template<int iDimension>
ScheduleType FREE::RotationInitializer< iDimension >::m_Schedule [private]

Definition at line 449 of file freTransformInitializer.h.

Referenced by FREE::RotationInitializer< iDimension >::AddToSchedule(), FREE::RotationInitializer< iDimension >::ClearSchedule(), and FREE::RotationInitializer< iDimension >::ComputeRotations().

template<int iDimension>
Vector3DType FREE::RotationInitializer< iDimension >::m_FixedCenter [private]

Definition at line 451 of file freTransformInitializer.h.

Referenced by FREE::RotationInitializer< iDimension >::ComputeRotations(), and FREE::RotationInitializer< iDimension >::SetFixedCenter().

template<int iDimension>
Vector3DType FREE::RotationInitializer< iDimension >::m_MovingCenter [private]

Definition at line 452 of file freTransformInitializer.h.

Referenced by FREE::RotationInitializer< iDimension >::ComputeRotations(), and FREE::RotationInitializer< iDimension >::SetMovingCenter().


The documentation for this class was generated from the following file:
Generated at Sat Oct 13 18:17:42 2007 for f.r.e.e. - Flexible Registration and Evaluation Engine by doxygen 1.5.3 written by Dimitri van Heesch, © 1997-2000