#### View Issue Details

ID Project Category View Status Date Submitted Last Update 0025946 Community OCCT:Coding public 2015-03-16 14:24 2016-03-29 17:35 shoogen shoogen normal just a question closed fixed 7.0.0 7.0.0 0025946: extrinsic Euler conventions in gp_Quaternion According to the English Wikipedia the relation between extrinsic and intrinsic Euler conventions is as follows: > Any extrinsic rotation is equivalent to an intrinsic rotation by the same angles but with inverted order of elemental rotations, and vice-versa. When I set a quaternion using gp_Intrinsic_ZYX and extract the Euler angles for gp_Extrinsic_ZYX i get the same angles but in the reverse order. (I would expect totally different numbers) But from my understanding of the wikipedia page i would expect that gp_Intrinsic_ZYX would return the same numbers as gp_Extrinsic_XYZ, which isn't case. If my understanding is correct, then there is a bug in the current implementation and the first axis and the odd flag need to be adjusted for extrinsic Euler conventions. ```gp_Quaternion q; Standard_Real alpha,beta,gamma; q.Set(0.06766916507860499, 0.21848101129786085, 0.11994599260380681,0.9660744746954637); q.GetEulerAngles(gp_Intrinsic_ZYX, alpha,beta, gamma); std::cout << "Intrinsic_ZYX: " << alpha / M_PI * 180.0 << "," << beta / M_PI * 180.0 << "," << gamma / M_PI * 180.0 << std::endl; q.GetEulerAngles(gp_Extrinsic_XYZ, alpha,beta,gamma); std::cout << "Extrinsic_XYZ: " << alpha / M_PI * 180.0 << "," << beta / M_PI * 180.0 << "," << gamma / M_PI * 180.0 << std::endl;``` No tags attached.

#### Attached Files

 CR25946.gitbundle (717 bytes) CR25946_2.gitbundle (743 bytes)

#### Relationships

 related to 0025574 closed abv gp_YawPitchRoll Euler Angle computation gives wrong results

#### Activities

 2015-03-16 14:34 reporter   ~0038393 The error will only show Taitâ€“Bryan angle conventions (three different axes). For the pure Euler angle conventions the behavior should be correct. 2015-03-16 16:47 reporter CR25946.gitbundle (717 bytes) 2015-03-16 16:51 reporter   ~0038402 Last edited: 2015-03-19 23:56 I attached a reworked commit to include a fix for 0025574. The order of the angles has to be reversed for the extrinsic cases. \$ git fetch CR25946_2.gitbundle CR25946:CR25946 2015-03-19 23:53 reporter CR25946_2.gitbundle (743 bytes) abv 2016-01-22 14:19 manager   ~0050051 Hello Sebastian, Sorry for long time passed since the issue registration. The fix is now available, as patch for 0025574 (see branch CR25574_4). Note that by our analysis we concluded that extrinsic sequences were OK, and intrinsic are the ones to be corrected. This is opposite to what you proposed in your fix, thus I suggest you to check this point (if you are still using this functionality). In the case if you believe your fix was correct one, please give your arguments.

#### Issue History

2015-03-16 14:24 shoogen New Issue
2015-03-16 14:24 shoogen Assigned To => kgv
2015-03-16 14:34 shoogen Note Added: 0038393
2015-03-16 16:47 shoogen File Added: CR25946.gitbundle
2015-03-16 16:51 shoogen Note Added: 0038402
2015-03-19 22:05 kgv Relationship added related to 0025574
2015-03-19 23:53 shoogen File Added: CR25946_2.gitbundle
2015-03-19 23:56 shoogen Note Edited: 0038402
2015-03-23 09:27 kgv Assigned To kgv => abv
2015-03-23 09:27 kgv Target Version => 6.9.0
2015-05-06 13:48 abv Target Version 6.9.0 => 7.0.0
2016-01-22 14:19 abv Note Added: 0050051
2016-01-22 14:19 abv Assigned To abv => shoogen
2016-01-22 14:19 abv Status new => feedback
2016-03-29 17:35 abv Status feedback => closed
2016-03-29 17:35 abv Resolution open => fixed
2016-03-29 17:35 abv Fixed in Version => 7.0.0