<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>
<div>Hi Doug, Hi all,</div>

<div> </div>

<div>After the latest discussions at the thread "Question VR Cafe + X3D", I am feeling free to explain the intentions behind the below cited proposal from last weekend (e-mail "Avatar Handling / non-standard movement strategies / input of key strokes").</div>

<div> </div>

<div>Regarding an avatar that rides a locomotive, I was considering two different approaches:</div>

<div> </div>

<div>1) Human body avatar is moved by the "WALK" paradigm of X3D.</div>

<div>The locomotive contains a "ProximitySensor" and a "Viewpoint" as well as a "NavigationInfo", all of which are moving with the locomotive. Also a <Group> node is contained, which takes the avatar as child. The avatar contains a "Transform" node, whose "translation" and "orientation" are fed by the "ProximitySensor".</div>

<div> </div>

<div>1.a) The model of the locomotive has got touchable controls ("faster", "power up", "whistle", ......), which are used to control the model.</div>

<div> </div>

<div>2) As soon as the avatar is attached to the locomotive --> use key strokes to directly control the locomotive</div>

<div>Thus the "combined" avatar "locomotive + human body avatar" becomes the "real" avatar, which takes the input from the keyboard (or from somewhere else)</div>

<div>I am not "riding" the locomotive, but I "am" the locomotive</div>

<div> </div>

<div>I followed approach (1), but now, when it might come to having "real cockpit" and "virtual cockpit", I am not sure, whether approach (2) wouldn't be better.</div>

<div> </div>

<div>Just to have it nailed down on the mailing list :-)</div>

<div> </div>

<div>Kind regards,</div>

<div>Christoph</div>

<div> 
<div style="margin: 10px 5px 5px 10px; padding: 10px 0px 10px 10px; border-left-color: rgb(195, 217, 229); border-left-width: 2px; border-left-style: solid;">
<div>
<div class="mail_android_quote" style="padding: 0.3em; line-height: 1;">
<blockquote class="gmail_quote" style="margin: 0.8ex 0pt 0pt 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;">
<div style="font-family: Verdana; font-size: 12px;">
<div>
<div>
<div style="margin: 10px 5px 5px 10px; padding: 10px 0px 10px 10px; border-left-color: rgb(195, 217, 229); border-left-width: 2px; border-left-style: solid;">
<div>
<div style="font-family: Verdana; font-size: 12px;">
<div>
<div>
<p style="margin-bottom: 0cm;">Sorry for writing so many e-mails for just one idea. Now I have seized the lunch break to summarize the suggestion, maybe it can explain the idea better:</p>

<ol>
        <li>
        <p style="margin-bottom: 0cm;">Is there anything in X3D that makes the following DRAFT proposal obsolete?</p>
        </li>
        <li>
        <p style="margin-bottom: 0cm;">DRAFT Proposal for simplified handling of keystrokes or other input of character streams via KeySensor and StringSensor.<br/>
        a) Each <strong>X3D grouping node</strong> defines two additional fields<br/>
        <field accessType='inputOutput' name=<strong>'canHaveFocus' </strong>type='SFBool' value='false'/><br/>
        <field accessType='inputOutput' name=<strong>'isAvatar' </strong>type='SFBool' value='false'/><br/>
        b) the behaviour is as follows:<br/>
        b.1) <strong>canHaveFocus == false</strong>: well-known "old" behaviour, no change<br/>
        b.2) <strong>canHaveFocus == true && isAvatar == false</strong>: the browser may select this group together with all static and dynamic children to get the "focus" by some means. Only one group and its children can have the focus at any time. Having the focus means all StringSensor nodes and KeySensor nodes contained in the group are enabled regardless of the value of their "enabled" field. The browser SHOULD graphically indicate, which geometry has got the focus, e.g. by highlighting or by drawing a 2-dimensional "frame" around the geometry.<br/>
        b.3) <strong>canHaveFocus == true && isAvatar == true</strong>: same behaviour as with b.2), but the avatar gets the focus any time, when no other geometry has the focus, even, if the avatar is invisible currently.</p>
        </li>
</ol>

<div>Have a nice day</div>

<div>Christoph</div>
</div>

<div>
<div style="margin: 10px 5px 5px 10px; padding: 10px 0px 10px 10px; border-left-color: rgb(195, 217, 229); border-left-width: 2px; border-left-style: solid;">
<div style="margin: 0px 0px 10px;"><b>Gesendet:</b> Donnerstag, 17. Januar 2019 um 09:44 Uhr<br/>
<b>Von:</b> "Christoph Valentin" <christoph.valentin@gmx.at><br/>
<b>An:</b> "Christoph Valentin" <christoph.valentin@gmx.at>, "Leonard Daly" <Leonard.Daly@realism.com>, x3d-public@web3d.org<br/>
<b>Betreff:</b> Re: [x3d-public] Mac-unaware PageUp/PageDown, Viewpoint list, navigation keys?</div>

<div>
<div class="mail_android_message" style="padding: 0.5em; line-height: 1;">Maybe its silly, but I thought: 1) I can *ride* a locomotive and * use* its controls or 2) I can *be* a locomotive<br/>
<br/>
Like a Horse + Rider = a single entity<br/>
--<br/>
Diese Nachricht wurde von meinem Android Mobiltelefon mit GMX Mail gesendet.</div>

<div class="mail_android_quote" style="padding: 0.3em; line-height: 1;">Am 17.01.19, 09:28, Christoph Valentin <christoph.valentin@gmx.at> schrieb:
<blockquote class="gmail_quote" style="margin: 0.8ex 0pt 0pt 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;">
<div class="mail_android_message" style="padding: 0.5em; line-height: 1;">Plus a "special handling" for avatars, where the pilot avatar can have an "always on" focus to supersede Standard navigation by avatar specific movement Strategy..........<br/>
--<br/>
Diese Nachricht wurde von meinem Android Mobiltelefon mit GMX Mail gesendet.</div>

<div class="mail_android_quote" style="padding: 0.3em; line-height: 1;">Am 17.01.19, 07:45, Christoph Valentin <christoph.valentin@gmx.at> schrieb:
<blockquote class="gmail_quote" style="margin: 0.8ex 0pt 0pt 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;">
<div class="mail_android_message" style="padding: 0.5em; line-height: 1;">Each grouping node would need a new field:<br/>
<br/>
<field accessType='inputOutput' type='SFBool' name='canHaveFocus' value='false'/><br/>
<br/>
and the rest was up to the browser.<br/>
--<br/>
Diese Nachricht wurde von meinem Android Mobiltelefon mit GMX Mail gesendet.</div>

<div class="mail_android_quote" style="padding: 0.3em; line-height: 1;">Am 17.01.19, 07:25, Christoph Valentin <christoph.valentin@gmx.at> schrieb:
<blockquote class="gmail_quote" style="margin: 0.8ex 0pt 0pt 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;">
<div class="mail_android_message" style="padding: 0.5em; line-height: 1;">And what about a concept of "having the focus":<br/>
<br/>
If a grouping node "had the focus", then all KeySensor and StringSensor nodes within this group would become "enabled".<br/>
<br/>
KR<br/>
Christoph<br/>
--<br/>
Diese Nachricht wurde von meinem Android Mobiltelefon mit GMX Mail gesendet.</div>

<div class="mail_android_quote" style="padding: 0.3em; line-height: 1;">Am 16.01.19, 23:22, Christoph Valentin <christoph.valentin@gmx.at> schrieb:
<blockquote class="gmail_quote" style="margin: 0.8ex 0pt 0pt 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;">
<div class="mail_android_message" style="padding: 0.5em; line-height: 1;">Maybe my opinion is not important, but I think these concrete hints which key to use for which navigation function should be completely avoided in X3D Spec.<br/>
<br/>
Isn't it enough to have the abstract/virtual concepts of "indicating forward/backward/left/right/up/down", "fast/slow", "touch", "drag" by "some means that are up to the Browser"?<br/>
<br/>
The Events that are created by the sensor nodes have to be specified well, on the other hand. <br/>
<br/>
A different story is the Network Sensor, where the protocol should be specified to the bits. <br/>
<br/>
Just my opinion and just Two Cent:-)<br/>
--<br/>
Diese Nachricht wurde von meinem Android Mobiltelefon mit GMX Mail gesendet.</div>
</blockquote>

<div class="mail_android_message" style="padding: 0.5em; line-height: 1;"> </div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
_______________________________________________ x3d-public mailing list x3d-public@web3d.org http://web3d.org/mailman/listinfo/x3d-public_web3d.org</blockquote>
</div>
</div>
</div>
</div>
</div></div></body></html>