<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
Hi Joseph,</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
Thank you for your reply. Just to be sure: the context I meant to discuss is about having a convenient attribute in the declarative syntax, say 'euler', to set the initial orientation of the transform, so anyone can use either 'rotation' or 'euler'.</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<transform euler="20 40 10" ></div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
So I interpreted Vince's $yaw, $pitch and $roll to be just placeholders, for manual substitution. </div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
You are right using this with either radians or degrees would be equally simple. </div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
Regards,</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
Albert Jan </div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div>
<div lang="EN-US">
<div class="x_WordSection1">
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<div style="border:none; border-top:solid #E1E1E1 1.0pt; padding:3.0pt 0in 0in 0in">
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;border:none; padding:0in">
<b>From: </b><a href="mailto:joedwil@earthlink.net">Joseph D Williams</a><br>
<b>Sent: </b>Sunday, January 6, 2019 7:20 PM<br>
<b>To: </b><a href="mailto:awonnink@hotmail.com">Albert Jan Wonnink</a>; <a href="mailto:vmarchetti@kshell.com">
vmarchetti@kshell.com</a>; <a href="mailto:x3d-public@web3d.org">X3D-Public</a><br>
<b>Subject: </b>Re: [x3d-public] Euler rotation</p>
</div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
Hi Albert and All, </p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
When you use euler (or <span style="font-size:12.0pt; color:black">Tait-Bryan) </span>
angles for a while you will find that you get problems. </p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
Actually there is plenty of writing about the details maybe even in the x3d or hanim archives and widely on the web.</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
In addition, when you create or edit the things much then you will find it is actually a lot easier to use quats or axis-angle radians. In general, for degrees, maybe your editing system may offer as a learning tool if radian is really an elementary block to
learning, but really, never in the user code due to misleading simplicity and what ‘cha finally gonna tell ‘em when the gimbals lock?
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<ul type="disc" style="margin-bottom: 0in;margin-top:0in">
<li class="x_MsoListParagraph" style="margin: 0in 0in 0pt 0.5in; font-family: "Calibri",sans-serif; font-size: 11pt;margin-left:0in">
<Transform DEF="yaw-rotation" rotation="0 0 1 $yaw"></li><li class="x_MsoListParagraph" style="margin: 0in 0in 0pt 0.5in; font-family: "Calibri",sans-serif; font-size: 11pt;margin-left:0in">
<Transform DEF="pitch-rotation" rotation="0 1 0 $pitch"></li><li class="x_MsoListParagraph" style="margin: 0in 0in 0pt 0.5in; font-family: "Calibri",sans-serif; font-size: 11pt;margin-left:0in">
<Transform DEF="roll-rotation" rotation="1 0 0 $roll"></li></ul>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
Besides the fact that a variable is not allowed there </p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
(maybe use a prototype if you need a variable?) </p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
I don't think your naming of yaw and pitch and roll is reasonable for x3d. </p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
For default transform rotation 0 0 1 0, sit on it and face +z and find +y is up and +x is left.
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
then fly the thing using pitch and yaw and roll.</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
The x3d axis-angle parameters are most likely pitch yaw roll then the scale, </p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
and I think the same order for quaternions, except where the 'scale' is placed and the special limits for values.
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
Why not try the following:</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
DEF Pitch OrientationInterpolator { </p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
key [ 0, 0.25 0.5, 0.75 1 ] </p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
keyValue [ 0 0 1 0, 1 0 0 1.5, 0 0 1 0, -1 0 0 1.5, 0 0 1 0 ] }</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
DEF Yaw OrientationInterpolator { key [ 0, 0.25 0.5, 0.75 1 ] </p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
keyValue [ 0 0 1 0, 0 1 0 1.5, 0 0 1 0, 0 -1 0 1.5, 0 0 1 0 ] }</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
DEF Roll OrientationInterpolator { </p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
key [ 0, 0.25 0.5, 0.75 1 ] </p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
keyValue [ 0 0 1 0, 0 0 1 1.5, 0 0 1 0, 0 0 1 1.5, 0 0 1 0 ] }</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
Thanks and Best,</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
Joe</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<div style="border:none; border-top:solid #E1E1E1 1.0pt; padding:3.0pt 0in 0in 0in">
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<b>From: </b><a href="mailto:awonnink@hotmail.com">Albert Jan Wonnink</a><br>
<b>Sent: </b>Sunday, January 6, 2019 2:25 PM<br>
<b>To: </b><a href="mailto:vmarchetti@kshell.com">vmarchetti@kshell.com</a>; <a href="mailto:x3d-public@web3d.org">
X3D-Public</a><br>
<b>Subject: </b>Re: [x3d-public] Euler rotation</p>
</div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt; color:black">Thanks Vince, for your reply. </span></p>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt; color:black">As long as the angles and X3D code is generated by code one can of course easily calculate the individual parameters for a quaternion. But during the testing of our experimental Unity based browser, and preparing
scenes for that, I found it very easy to extend the transform specification with a degree-based Euler attribute (Tait-Bryan would also have worked).</span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt; color:black">The current system still makes it relatively difficult to manually apply an angle of the most used fractions of PI, doesn't it?</span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt; color:black">I guess this issue must have been discussed in one of the early days of the X3D specification. But it seems to me a lost chance to make it more convenient.</span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt; color:black">Regards</span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt; color:black"> </span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt; color:black">Albert Jan Wonnink</span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt; color:black"> </span></p>
</div>
<div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt; color:black"> </span></p>
</div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<img width="562" height="2" id="x_Horizontal_x0020_Line_x0020_1" style="width:5.8541in; height:.0208in" alt="cid:image002.png@01D4A5E3.FD08F950" border="0" data-outlook-trace="F:1|T:1" src="cid:image003.png@01D4A606.14B5CB60"></p>
<div id="x_divRplyFwdMsg">
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<b><span style="color:black">Van:</span></b><span style="color:black"> vmarchetti@kshell.com <vmarchetti@kshell.com><br>
<b>Verzonden:</b> zondag 6 januari 2019 22:49<br>
<b>Aan:</b> Albert Jan Wonnink; X3D-Public<br>
<b>Onderwerp:</b> Re: [x3d-public] Euler rotation</span> </p>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
</div>
</div>
<div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
There is no single node Euler angle alternative representation of a rotation transform defined in the current (v 3.3) X3D standard.</p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
You can get an easier to edit representation of Euler angle rotation (specifically the Tait-Bryan angles, <a href="https://en.wikipedia.org/wiki/Euler_angles#Tait–Bryan_angles">https://en.wikipedia.org/wiki/Euler_angles#Tait%E2%80%93Bryan_angles</a>, commonly
used for vehicle oriented</p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
with respect to the horizon, by nesting 3 Transforms:</p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<Transform DEF="yaw-rotation" rotation="0 0 1 $yaw"></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<Transform DEF="pitch-rotation" rotation="0 1 0 $pitch"></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<Transform DEF="roll-rotation" rotation="1 0 0 $roll"></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<!-- put vehicle model here --></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<Shape>...</Shape></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</Transform></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</Transform></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</Transform></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
where for $yaw, $pitch, $roll you need to substitute the numerical value of the rotation angle in radians.</p>
</div>
<div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
Vince Marchetti</p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;margin-bottom:12.0pt">
</p>
<blockquote style="margin-top:5.0pt; margin-bottom:5.0pt">
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
On Jan 6, 2019, at 12:53 PM, Albert Jan Wonnink <<a href="mailto:awonnink@hotmail.com">awonnink@hotmail.com</a>> wrote:</p>
</div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt">Is there, or should there be, an Euler alternative for the transform 'rotation' property? This makes direct x3d code editing much easier.</span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt"> </span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt">Regards,</span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt"> </span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt"> </span></p>
</div>
<div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:12.0pt">Albert Jan Wonnink </span></p>
</div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
<span style="font-size:9.0pt; font-family:Monaco">_______________________________________________<br>
x3d-public mailing list<br>
</span><a href="mailto:x3d-public@web3d.org"><span style="font-size:9.0pt; font-family:Monaco">x3d-public@web3d.org</span></a><span style="font-size:9.0pt; font-family:Monaco"><br>
</span><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org"><span style="font-size:9.0pt; font-family:Monaco">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</span></a></p>
</div>
</blockquote>
</div>
</div>
</div>
</div>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
<p class="x_MsoNormal" style="margin: 0in 0in 0pt; font-family: "Calibri",sans-serif; font-size: 11pt;">
</p>
</div>
</div>
</div>
</body>
</html>