MantisBT - ITK
View Issue Details
0008347ITKpublic2009-01-05 22:552009-04-29 20:02
Hans Johnson 
MichelKitware 
lowminoralways
closedfixed 
ITK-3-10 
 
0008347: VersorRigidTransform needs SetRotationMatrix made public
All of the Rigid3DTransforms should be convetable to each other through the
SetCenter
SetTranslation
SetRotationMatrix

Member functions. Currently the Versor3DRigidTransform has SetRotationMatrix set as private, and thus requires code like the following to work around this (and makes it different from other Rigd 3D transform types).

=================================
EulerAnglesRigidTransformType::Pointer ZeroCenteredTransform
VersorRigid3DTransformType::Pointer VersorZeroCenteredTransform

itk::Versor<double> versorRotation;
versorRotation.Set(ZeroCenteredTransform->GetRotationMatrix());
VersorZeroCenteredTransform->SetRotation(versorRotation);
=================================

The SetRotationMatrix member function should be made public.
The matrix should be checked for othoganality (exception thown if not orthog)

Then delegate to SetRotation as
itk::Versor<double> versorRotation;
versorRotation.Set(ZeroCenteredTransform->GetRotationMatrix());
VersorZeroCenteredTransform->SetRotation(versorRotation);
No tags attached.
has duplicate 0006448closed Hans Johnson inconsistent transform API 
Issue History
2009-01-05 22:55Hans JohnsonNew Issue
2009-04-13 12:53MichelKitwareStatusnew => assigned
2009-04-13 12:53MichelKitwareAssigned To => MichelKitware
2009-04-13 19:51MichelKitwareNote Added: 0016007
2009-04-13 19:53MichelKitwareNote Deleted: 0016007
2009-04-13 19:55MichelKitwareNote Added: 0016008
2009-04-13 19:57MichelKitwareNote Added: 0016009
2009-04-13 19:58MichelKitwareNote Deleted: 0016008
2009-04-13 19:59MichelKitwareNote Added: 0016010
2009-04-13 19:59MichelKitwareStatusassigned => resolved
2009-04-13 19:59MichelKitwareResolutionopen => fixed
2009-04-14 10:21Luis IbanezNote Added: 0016014
2009-04-14 10:21Luis IbanezNote Deleted: 0016009
2009-04-29 20:02Hans JohnsonNote Added: 0016258
2009-04-29 20:02Hans JohnsonStatusresolved => closed
2010-10-21 11:41Hans JohnsonRelationship addedhas duplicate 0006448

Notes
(0016010)
MichelKitware   
2009-04-13 19:59   
--- itkVersorRigid3DTransform.h 2006/08/09 04:35:32 1.27
+++ itkVersorRigid3DTransform.h 2009/04/13 23:41:53 1.28
@@ -3,8 +3,8 @@
   Program: Insight Segmentation & Registration Toolkit
   Module: $RCSfile: itkVersorRigid3DTransform.h,v $
   Language: C++
- Date: $Date: 2006/08/09 04:35:32 $
- Version: $Revision: 1.27 $
+ Date: $Date: 2009/04/13 23:41:53 $
+ Version: $Revision: 1.28 $
 
   Copyright (c) Insight Software Consortium. All rights reserved.
   See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm [^] for details.
@@ -114,10 +114,6 @@
 
   void PrintSelf(std::ostream &os, Indent indent) const;
 
- /** This method must be made protected here because it is not a safe way of
- * initializing the Versor */
- virtual void SetRotationMatrix(const MatrixType & matrix)
- { this->Superclass::SetRotationMatrix( matrix ); }
  
 private:
   VersorRigid3DTransform(const Self&); //purposely not implemented
(0016014)
Luis Ibanez   
2009-04-14 10:21   
CVS diff:

http://www.itk.org/cgi-bin/viewcvs.cgi/Code/Common/itkVersorRigid3DTransform.h?root=Insight&r1=1.27&r2=1.28 [^]
(0016258)
Hans Johnson   
2009-04-29 20:02   
Thanks for addressing this issue.