New user self-registration is disabled due to spam. Please email eigen-core-team @ lists.tuxfamily.org if you need an account.
Before reporting a bug, please make sure that your Eigen version is up-to-date!
Bug 823 - Provide static Quaternion method for uniform random rotation
Provide static Quaternion method for uniform random rotation
 Status: RESOLVED FIXED None Eigen Unclassified Geometry (show other bugs) unspecified All All Low Feature Request Nobody JuniorJob

 Reported: 2014-06-06 10:43 UTC by edx 2016-05-20 11:24 UTC (History) 5 users (show) chtz gael.guennebaud hauke.heibel jacob.benoit.1 josephmirabel

Attachments
Add uniformly random quaternion (2.26 KB, patch)
2016-03-21 14:45 UTC, Joseph Mirabel
no flags Details | Diff

 edx 2014-06-06 10:43:22 UTC ```Please implement some algorithm for generating uniformly-distributed random orientation; an algorithm is decribed in http://planning.cs.uiuc.edu/node198.html (references Shoemaker's Uniform random rotations from Graphic Gems III). A tentative implementation goes like this (with UnitRandom returning uniform in 0..1): template Quaternion UniformRandomRotation(){ Scalar u1=UnitRandom(), u2=UnitRandom(), u3=UnitRandom(); return Quaternion(/*w*/sqrt(u1)*cos(2*M_PI*u3),/*x*/sqrt(1-u1)*sin(2*M_PI*u2),/*y*/sqrt(1-u1)*cos(2*M_PI*u2),/*z*/sqrt(u1)*sin(2*M_PI*u3)); }``` Gael Guennebaud 2014-06-06 11:35:06 UTC ```Please provide a clean patch with documentation and its respective unit test (added in test/geo_quaternion.cpp) so that it can be integrated quickly. For "UnitRandom" you can use internal::random(0,1); Thanks.``` Joseph Mirabel 2016-03-21 14:45:46 UTC ```Created attachment 669 [details] Add uniformly random quaternion Would this fit the Eigen coding standards ?``` Gael Guennebaud 2016-05-20 11:24:11 UTC ```Sorry for the delay, but it's now in devel branch: https://bitbucket.org/eigen/eigen/commits/423d3da0e233/ Summary: Bug 823: add static method to Quaternion for uniform random rotations. https://bitbucket.org/eigen/eigen/commits/5d78b569eac3/ Summary: Fix coding practice in Quaternion::UniformRandom https://bitbucket.org/eigen/eigen/commits/20c444245e5c/ Summary: Rename UniformRandom to UnitRandom.```

 Note You need to log in before you can comment on or make changes to this bug.