<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Date: Sun, 3 Dec 2017 18:02:47 +0000<br>
From: doug sanden <<a href="mailto:highaspirations@hotmail.com">highaspirations@hotmail.com</a>><br>
To: "<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>" <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>><br>
Subject: [x3d-public] Player inconsistency > CylinderSensor ><br>
        interpretation of local vs sensor-local<br>
Message-ID:<br>
        <<a href="mailto:MWHPR1401MB1982C8C77F571F605CDE02DBB63F0@MWHPR1401MB1982.namprd14.prod.outlook.com">MWHPR1401MB1982C8C77F571F605C<wbr>DE02DBB63F0@MWHPR1401MB1982.<wbr>namprd14.prod.outlook.com</a>><br>
<br>
Content-Type: text/plain; charset="iso-8859-1"<br>
<br>
I noticed a bit of inconsistency among players when axisRotation is non-default.<br>
I wonder what's right.<br>
-Doug<br>
<br>
<a href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/pointingsensor.html#CylinderSensor" rel="noreferrer" target="_blank">http://www.web3d.org/<wbr>documents/specifications/<wbr>19775-1/V3.3/Part01/<wbr>components/pointingsensor.<wbr>html#CylinderSensor</a><br>
"""<br>
... pointer motion (e.g., a mouse or wand) into a rotation on an invisible cylinder that is aligned with the Y-axis of the local sensor coordinate system. The local sensor coordinate system is created by applying the axisRotation field value to the local coordinate system.<br>
...<br>
rotation_changed event is sent that equals the sum of the rotation about the +Y-axis vector of the local sensor coordinate system<br>
...<br>
trackPoint_changed events reflect the unclamped drag position on the surface of the invisible cylinder. [Q, in local or sensor-local?]<br>
"""<br>
Q, Does that mean we should<br>
- rotate the invisible sensor geometry by axisRotation<br>
- leave rotation_changed in sensor-local<br>
- put trackpoint_changed  into local coordinates (not sensor-local)?<br>
<br>
more..<br>
<br>
<a href="http://dug9.users.sourceforge.net/web3d/tests/sensors/CylinderSensorCylinderAxisRotation90.x3d" rel="noreferrer" target="_blank">http://dug9.users.sourceforge.<wbr>net/web3d/tests/sensors/<wbr>CylinderSensorCylinderAxisRota<wbr>tion90.x3d</a><br>
(<a href="http://dug9.users.sourceforge.net/web3d/tests/sensors/CylinderSensorCylinder.x3d" rel="noreferrer" target="_blank">http://dug9.users.<wbr>sourceforge.net/web3d/tests/<wbr>sensors/<wbr>CylinderSensorCylinder.x3d</a> default axisRotation)<br>
<a href="http://dug9.users.sourceforge.net/web3d/tests/sensors/cobweb90.html" rel="noreferrer" target="_blank">http://dug9.users.sourceforge.<wbr>net/web3d/tests/sensors/<wbr>cobweb90.html</a><br>
routing:<br>
- box is rotated by rotation_changed<br>
- little sphere is translated by trackpoint_changed<br>
<br>
player:         rotates:<br>
octaga - sensor-geometry, rotation_changed, trackpoint_changed<br>
instant - sensor-geometry, rotation_changed, trackpoint_changed moves diagonally<br>
H3D     - sensor-goemetry, rotation_changed<br>
vivaty - nil<br>
view3dscene - sensor-geometry, trackpoint_changed<br>
freewrl - sensor-geometry<br>
cobweb - sensor-geometry, rotation_changed<br>
<br></blockquote></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Two more players:</div><div class="gmail_extra">BS Contact: does not rotate rotation_changed, little sphere stays with dragging mouse pointer</div><div class="gmail_extra">x3dom:  does not rotate rotation_changed, does not translate little sphere (no trackpoint_changed event?)</div><div class="gmail_extra"><br></div><div class="gmail_extra"><a href="https://bl.ocks.org/andreasplesch/34d6c24972d37a0ad9e2070cf3a8a2c6">https://bl.ocks.org/andreasplesch/34d6c24972d37a0ad9e2070cf3a8a2c6</a></div><div class="gmail_extra"><br></div><div class="gmail_extra">Focusing on rotation_changed as the principal node output we then have:</div><div class="gmail_extra"><br></div><div class="gmail_extra">Octaga, Instant, H3D, cobweb : rotate by axisRotation</div><div class="gmail_extra">BS, x3dom, view3dscene, freewrl: do not rotate by axisRotation</div><div class="gmail_extra"><br></div><div class="gmail_extra">4:4, a perfect split (!).</div><div class="gmail_extra"><br></div><div class="gmail_extra">To me the intended function of the axisRotation field is to control the direction of the rotation output such that rotations other than about the Y axis become available. If that is the case then the rotation_changed output should be affected by the axisRotation field, eg. be rotated.</div><div class="gmail_extra"><br></div><div class="gmail_extra">A related question is if the axisRotation field is intended to provide functionality which cannot be achieved by wrapping the Sensor in a Transform with the same rotation value which would also result in a rotated sensor local coordinate system. Presumably the answer is yes in order to justify its existence but I am not sure.</div><div class="gmail_extra"><br></div><div class="gmail_extra">For reference, here are the conformance scenes but they do not seem to include non-default axisRotation sensors:</div><div class="gmail_extra"><br></div><div class="gmail_extra"><a href="http://www.web3d.org/x3d/content/examples/ConformanceNist/Sensors/CylinderSensor/index.html">http://www.web3d.org/x3d/content/examples/ConformanceNist/Sensors/CylinderSensor/index.html</a><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Perhaps axisRotation was introduced relatively later ?</div><div class="gmail_extra"><br></div><div class="gmail_extra">-Andreas</div><div class="gmail_extra"><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div>Andreas Plesch<br>Waltham, MA 02453</div></div></div>
</div></div>