jamoma / JamomaCore

Jamoma Frameworks for Audio and Control Structure
Other
36 stars 14 forks source link

Orientation dataspace: Add axyz unit #377

Open lossius opened 8 years ago

lossius commented 8 years ago

This issue has been moved across from jamoma/JamomaMax#699, where it was added by @matcham .

in order to send rotate message to jit.gl objects, we would need a axyz unit. (just changing the order of elements of xyza or axis doesn't seem to do the tick..)


----------begin_max5_patcher----------
1521.3oc0ZtsaihCFG+5zmBundwLqRi7ALGFoUa2KVs2ruAqFU4.tMLSBNCX
ZS6n4ce8ABMcJIPZINLRUoACw7me74uSv2uXh2bwFdoG3Sf+CLYx2uXxDyP5
AlTu8DuUrMIKYklCyiIkEUYdSs6JK0LnX9WtJDscvaE4xb1JtYW+UQFa418j
WsRTIWxkl4BUOpdJMG62pXxcmjxrmLSBhLCVOr8mKebM2JZOOvmq20ZlLYQV
9c2TvSj18FfhT+R.NHdV.BihHSAjHeyPnYvleoRVY4MpRO1Ot3B8GSe2PAN9
fBBRQFDDEMCcJoRhX0Jddi3k7MFE3kxukUsTB9.qRJ9HHqD73SaZAdAwGK71
BjaKtatY6FD8BxgaFtMaFZzL5T.hRL+CQMfA5BvLuRBjK34S0eBDEo7Bf3VP
gPxjYh7RP4BQ0xTvbNHYAK+NdJ3SamjkY47DQUtYlHs.yfyAL8s1UHeeKS0y
AvOzEvTrlm+O+KXyiOAjBveWsTAyO7mer27x+jyq4Uymuju6h9VHHILzfNbr
9eQAZ.RGzko47GTWvuheqYeUcIX+qsEm32pms8PiiyIF1ZJgBMqRiiO7hTxv
gkeGbEpUdfN0731kBUjfCAEBAsypMRGPAObPoJeMK4vlKGcfPxaBOSe0W5iU
jJtmdMFD5Ne8Ih764ERs+Il1AES8kV3F0+b31lPCsYHfaxaBghGd3rGyI08s
zU7xRPAmkBRqR95rTFuE53GcVcBgfAlbEHX+lLoP9HmwoujImc2xYqDo7k.0
mWkH2.tdsnLSmt..Af.XaT6nyqBej4epD1MqXxhrM50gcvPrIEARcRoDnCSO
m99qYwjbFefSPu1FJfbZSPe+bAOPbYGmZCDZrVKXUjtSZEcuWOSj3ypmo5Be
GoNltZudlfiHOSAPzo1wzAv2CY4ohG1Bu1XE5Typ4pRL6jRXS8wD+fmMzvcQ
plLTDOwyuQcwnlsazdNxTU.aaG0jFhMw64SVHEopABqSUKDoMuwfOaNHC2GV
i2Bdtt96Fq2DEgKXZCWPPqEQha4dDdLcOBFXqjz5ZHvAFxRvbfBZksl6FwUr
wpftATcwjgtKbx2VwkEBk0LXwSfqYIxr64.TKvZXxysKV0CD4SM1P9QGlQuk
ZK0wUY2weEjtzGbIBbIFbIos.sgm29PD9pJkr1O5.vCGa1WUj1rr.M9N0MSM
KeeESRnmihICscm4jmKx9Xzu8GsghSTc0jnYjHDxOd+7f5G+ysemhM8EM1II
2i7GiE8TuPh.svgZhU4nxcPzQZ4N0ofdxq1YetdgyvwDZTfxXOBivDe0W7ih
wAAfP3LJlFAaym7Y1kbrM+Spow4XRvv6NV4pUJxa4JO9vWeukvt1NT13uzQU
v0Q2+GEM+Ov.kSQu+ucoPMGsE1n6q60rB03RdwM7bV8y2A1+7Y6SGteoUiJz
eYBq9DMK9POd.31L+69oCfFRr4+qL1p8mbFvF8WZrQOwXaekuOKkIYkqYIbv
0O+UQQlJ4PyyQGbcV95JIfadlvWqtx0aoePL8st9go0KGx82zdV2A542rEr8
IzPHNImI+f2cNS15c8F1HC1nkzcdcCFVqt8BjfvAJIxaLu3GCJVB7C2oAGGE
WLGgYAwO8ZhYNM5weIrJEUEIaEUcJQfmOOo7RYVtYY3NGC8EGyhrzTd9tdxR
yJ0N2LvF15Ms9plndnFcmobjbzuzbcqGn6zCrO5I1Y5Qunpa8fcmdv8POH2I
m9X9D3P7.6qdPtSOn9nGr6zCtK83N6GJdbsbmhFB8rJKcsHKWV179tBMcBHV
kb.M.FizO+HB4ki87Ic3tZ5wEi6Va5GMttWqSfrS8D4N4PFWQZL5AMhzSOMl
ciicR73JuIRexSA46N8zy6VtIrWehxD3taV8QNT7wEjASMue1wDScV0QWh2s
T7gS+H53x3G4OxzSOjSnybU0G07StO5ubrUmyVu9ddQY8bZTh2J1WDltJDL0
rYVtcSSSG7J32ms83CMivJRVjI4IxpBaiK1DE3cg977iK9efLtgWz
-----------end_max5_patcher-----------

Useful link for further reference: http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-17-quaternions/

jit.gl.render has an attribute "rotate_order"

rotate_order (1 symbol) Set the order rotations are applied for the rotatexyz attribute for all child gl objects (default = auto). E.G. if set to xyz, the object is first rotated around its X axis, then Y, and finally Z. The default of auto implements yzx ordering. To replicate Max 5, use zyx.

so maybe the new unit should be "OpenGL_rotate" to be compatible with render default rotation order. ...and we would probably need openGL_rotatexyz as well..