{"action":"created","issue":{"url":"https://api.github.com/repos/mrdoob/three.js/issues/13538","repository_url":"https://api.github.com/repos/mrdoob/three.js","labels_url":"https://api.github.com/repos/mrdoob/three.js/issues/13538/labels{/name}","comments_url":"https://api.github.com/repos/mrdoob/three.js/issues/13538/comments","events_url":"https://api.github.com/repos/mrdoob/three.js/issues/13538/events","html_url":"https://github.com/mrdoob/three.js/pull/13538","id":303635714,"number":13538,"title":"Added Euler angles rotation orders.","user":{"login":"thezwap","id":3374505,"avatar_url":"https://avatars1.githubusercontent.com/u/3374505?v=4","gravatar_id":"","url":"https://api.github.com/users/thezwap","html_url":"https://github.com/thezwap","followers_url":"https://api.github.com/users/thezwap/followers","following_url":"https://api.github.com/users/thezwap/following{/other_user}","gists_url":"https://api.github.com/users/thezwap/gists{/gist_id}","starred_url":"https://api.github.com/users/thezwap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thezwap/subscriptions","organizations_url":"https://api.github.com/users/thezwap/orgs","repos_url":"https://api.github.com/users/thezwap/repos","events_url":"https://api.github.com/users/thezwap/events{/privacy}","received_events_url":"https://api.github.com/users/thezwap/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/mrdoob/three.js/milestones/4","html_url":"https://github.com/mrdoob/three.js/milestone/4","labels_url":"https://api.github.com/repos/mrdoob/three.js/milestones/4/labels","id":3044279,"number":4,"title":"rXX","description":"","creator":{"login":"mrdoob","id":97088,"avatar_url":"https://avatars0.githubusercontent.com/u/97088?v=4","gravatar_id":"","url":"https://api.github.com/users/mrdoob","html_url":"https://github.com/mrdoob","followers_url":"https://api.github.com/users/mrdoob/followers","following_url":"https://api.github.com/users/mrdoob/following{/other_user}","gists_url":"https://api.github.com/users/mrdoob/gists{/gist_id}","starred_url":"https://api.github.com/users/mrdoob/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrdoob/subscriptions","organizations_url":"https://api.github.com/users/mrdoob/orgs","repos_url":"https://api.github.com/users/mrdoob/repos","events_url":"https://api.github.com/users/mrdoob/events{/privacy}","received_events_url":"https://api.github.com/users/mrdoob/received_events","type":"User","site_admin":false},"open_issues":37,"closed_issues":3,"state":"open","created_at":"2018-01-17T23:51:52Z","updated_at":"2018-03-10T16:11:59Z","due_on":null,"closed_at":null},"comments":13,"created_at":"2018-03-08T21:20:30Z","updated_at":"2018-03-12T07:41:47Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/mrdoob/three.js/pulls/13538","html_url":"https://github.com/mrdoob/three.js/pull/13538","diff_url":"https://github.com/mrdoob/three.js/pull/13538.diff","patch_url":"https://github.com/mrdoob/three.js/pull/13538.patch"},"body":"Only Tait-Bryan angles were supported previously.\r\n"},"comment":{"url":"https://api.github.com/repos/mrdoob/three.js/issues/comments/372218116","html_url":"https://github.com/mrdoob/three.js/pull/13538#issuecomment-372218116","issue_url":"https://api.github.com/repos/mrdoob/three.js/issues/13538","id":372218116,"user":{"login":"XanderLuciano","id":13877593,"avatar_url":"https://avatars1.githubusercontent.com/u/13877593?v=4","gravatar_id":"","url":"https://api.github.com/users/XanderLuciano","html_url":"https://github.com/XanderLuciano","followers_url":"https://api.github.com/users/XanderLuciano/followers","following_url":"https://api.github.com/users/XanderLuciano/following{/other_user}","gists_url":"https://api.github.com/users/XanderLuciano/gists{/gist_id}","starred_url":"https://api.github.com/users/XanderLuciano/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/XanderLuciano/subscriptions","organizations_url":"https://api.github.com/users/XanderLuciano/orgs","repos_url":"https://api.github.com/users/XanderLuciano/repos","events_url":"https://api.github.com/users/XanderLuciano/events{/privacy}","received_events_url":"https://api.github.com/users/XanderLuciano/received_events","type":"User","site_admin":false},"created_at":"2018-03-12T07:41:47Z","updated_at":"2018-03-12T07:41:47Z","author_association":"CONTRIBUTOR","body":"Overall, I'm in favor of adding support. \r\n\r\nI like the recommendation of using `THREE.MathUtils` for now as I don't expect it to be commonly needed. Having a `Quaternion.setFromProperEuler` and `Quaternion.setFromEuler` would likely cause confusion, require an extra class, and support for additional utilities for no real reason. The resultant `Quaternion` is all that's needed.\r\n\r\n>I’ve started to see a few machine control apps built with threejs. See ncviewer.com as an example. That doesn’t do multi axis plane rotations yet as far as I know, but I’d be surprised if they weren’t on the roadmap.\r\n\r\nNCViewer, to a certain degree, can do _some_ multi axis rotations:\r\n\r\n![image](https://user-images.githubusercontent.com/13877593/37269522-f91d131c-2587-11e8-903f-b6ab19c0c20c.png)\r\n\r\nBut I'm getting around the limitation by using multiple `Quaternion.setFromAngleAxis` to manually set the rotation order so to speak. This means instead of just creating one Quaternion I'm creating up to 3 (and to be honest, that's mostly because it was easier than figuring out the math to do it properly).\r\n\r\nThis is also something that Autodesk worked on relatively recently with our post processor ([forum post about it](https://forums.autodesk.com/t5/hsm-post-processor-forum/calculating-euler-angles/td-p/6688480)), so to me it makes sense to add support for in Three.js as well. This way users won't have to figure out the math on their own if they want to work with Proper Euler angles.\r\n\r\nOverall, it doesn't look like this would add much code and it would be useful to anyone working with simulating and driving multi axis CNC machines, multi axis 3D printers, and possibly even robotic arms (though I only have limited experience there)."}}
{"actor":{"display_login":"XanderLuciano"}}