On Feb 3, 2009, at 12:38 PM, Javier Ángel Velázquez Muriel wrote:
I would suggest something similar to what I have in em/include/EulerOperations.h, if you find it useful.
Given we already have rotation from_fixed_xyz which is a form of euler
angles, this function should probably have a more descriptive name
describing which Euler angles it uses.
On Feb 2, 2009, at 10:10 PM, Notification of IMP commits wrote:
> Author: kerenl@SALILAB.ORG
> Date: 2009-02-02 22:10:39 -0800 (Mon, 02 Feb 2009)
> New Revision: 1414
>
> Modified:
> trunk/modules/algebra/include/Rotation3D.h
> Log:
> add rotation_from_euler
>
> Modified: trunk/modules/algebra/include/Rotation3D.h
> ===================================================================
> --- trunk/modules/algebra/include/Rotation3D.h 2009-02-03 03:11:05
> UTC (rev 1413)
> +++ trunk/modules/algebra/include/Rotation3D.h 2009-02-03 06:10:39
> UTC (rev 1414)
> @@ -114,6 +114,24 @@
> return Rotation3D(a,b,c,d);
> }
>
> +//! Initialize a rotation from euler angles
> +/**
> + \note http://en.wikipedia.org/wiki/
> + Conversion_between_quaternions_and_Euler_angles
> + \relates Rotation3D
> +*/
> +inline Rotation3D rotation_from_euler(Float phi, Float theta, Float
> psi)
> +{
> + Float a,b,c,d;
> + Float c1,c2,c3,s1,s2,s3;
> + c2=cos(theta/2);c1=cos(phi/2);c3=cos(psi/2);
> + s2=sin(theta/2);s1=sin(phi/2);s3=sin(psi/2);
> + a = c1*c2*c3+s1*s2*s3;
> + b = s1*c2*c3-c1*s2*s3;
> + c = c1*s2*c3+s1*c2*s3;
> + d = c1*c2*s3-s1*s2*c3;
> + return Rotation3D(a,b,c,d);
> +}
> //! Generate a Rotation3D object from a rotation matrix
> /**
> \throw ValueException if the rotation is not a rotation matrix.
>
> _______________________________________________
> IMP-commits mailing list
> IMP-commits@salilab.org
> https://salilab.org/mailman/listinfo/imp-commits
_______________________________________________
IMP-dev mailing list
IMP-dev@salilab.org
https://salilab.org/mailman/listinfo/imp-dev