<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 5 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:674961713;
        mso-list-template-ids:-1;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1
        {mso-list-id:1799106997;
        mso-list-template-ids:-1;}
@list l1:level1
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level4
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level7
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Once I recall maybe gravity should be default part of certain navigations and not others. Like how the nograv of Fly is what you want to do, mostly, unless you are flying by aero, then of course there are other effects. Suppose you are flying and somebody turns gravity on? </p><p class=MsoNormal> </p><p class=MsoNormal>Also, please look for current x3d ‘name’ for interactions, like maybe hover is isOver and use of select rather than click. Some superset of x3d and html event inOut styles? </p><p class=MsoNormal>The important thing is that a competent input/output device must be able to describe itself as to its allowed data and interactions plus the author must be able to describe what is needed to make the show, maybe at various capability levels. Finally, the user must be able to tell what can be done and make some simple tests to observe the results of using various techniques with available tools. </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>X3d recommended optional use of the keyboard and provided keys and events (not normative). </p><p class=MsoNormal>However, for implementers there was enough behind it so that most users in 2006 could expect that best browsers would at least do that set of keys. Again, the purpose was not to stop or start anything, just to document some current best practices that were being done by the most interesting tools. </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>This challenge of creating usable abstractions for human user interaction using modern human interface arts was last documented by x3d around 2006, I think. I hope to see great advancements in documenting what will be regarded as World-class best practices for development of an important collection of x3d statements and sensor nodes to support the widest range of human input/output features. We need to get interaction data into the scene, out of the scene , interpreted by the user, then put back into the scene, etc.</p><p class=MsoNormal>  </p><p class=MsoNormal>Thanks,</p><p class=MsoNormal>Joe</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:gpugroup@gmail.com">GPU Group</a><br><b>Sent: </b>Sunday, June 14, 2020 11:45 AM<br><b>To: </b><a href="mailto:joedwil@earthlink.net">Joseph D Williams</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] [x3d] Spec Comment by dougsanden on19775-1:X3DArchitecture - V3.0</p></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>My attempt at specifying HELICOPTER and GAME navigationInfo.type generically</p><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>"SPHERICAL" navigation freezes the location while allowing convenient yaw-pitch look around.</p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>"HELICOPTER" navigation is similar to "WALK" except avatar height adjustment is convenient, and "SPHERICAL" style yaw-pitch look around is convenient.</p></div></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>"GAME" navigation is like "WALK" except yaw-ptich is done with up-drag primary pointing device, and Z travel with secondary pointing device.</p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Sun, Jun 14, 2020 at 11:57 AM GPU Group <<a href="mailto:gpugroup@gmail.com">gpugroup@gmail.com</a>> wrote:</p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>Appendix G style mapping<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>Example trigger mapping for desktop keyboard + mouse<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse'><tr><td width=108 valign=top style='width:80.85pt;border:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>trigger permutation<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border:solid windowtext 1.0pt;border-left:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>LMB<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border:solid windowtext 1.0pt;border-left:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>RMB<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border:solid windowtext 1.0pt;border-left:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>SHIFT<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border:solid windowtext 1.0pt;border-left:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>ALT<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border:solid windowtext 1.0pt;border-left:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>CTRL<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border:solid windowtext 1.0pt;border-left:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td></tr><tr><td width=108 valign=top style='width:80.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>1.primary<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>*<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td></tr><tr><td width=108 valign=top style='width:80.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>2. secondary<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>*<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>*<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td></tr><tr><td width=108 valign=top style='width:80.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>3. tertiary<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>*<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>*<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>*<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td></tr><tr><td width=108 valign=top style='width:80.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>4. quaternary<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>*<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>*<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td></tr><tr><td width=108 valign=top style='width:80.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>5. quinary<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>*<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>*<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>*<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td></tr><tr><td width=108 valign=top style='width:80.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>6, senary<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>*<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>*<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td></tr><tr><td width=108 valign=top style='width:80.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>7. septenary<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td></tr><tr><td width=108 valign=top style='width:80.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>8. octonary<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td></tr><tr><td width=108 valign=top style='width:80.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>9. nonary<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td></tr><tr><td width=108 valign=top style='width:80.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>10 denary<o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.85pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td><td width=108 valign=top style='width:80.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> <o:p></o:p></span></p></td></tr></table></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Sun, Jun 14, 2020 at 11:41 AM GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>> wrote:</p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><p class=MsoNormal>my attempt to abstract the EXPLORE NavigationInfo type:</p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><span style='font-size:8.5pt;font-family:"Courier New";color:black'>"EXPLORE"</span><span style='font-family:"Verdana",sans-serif;color:black'> navigation is used to provide consistent <s><span style='background:yellow'>keystroke</span></s><span style='background:yellow'> <u>input device mapping</u></span> navigation for both geospatial and Cartesian modes. <span style='background:yellow'>Common terms:</span></span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Verdana",sans-serif;color:black;background:yellow'>Drag - moving primary pointing device with a trigger activated, primary trigger unless otherwise specified</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Verdana",sans-serif;color:black;background:yellow'>Click - activating and releasing a trigger, primary trigger unless otherwise specified</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Verdana",sans-serif;color:black;background:yellow'>up/down,left/right - relative to viewport sides</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Verdana",sans-serif;color:black;background:yellow'>trigger button state-permutation names:</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><em><span style='font-family:"Helvetica",sans-serif;color:#2A2A2A;background:yellow'>1.primary</span></em><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><em><span style='font-family:"Helvetica",sans-serif;color:#2A2A2A;background:yellow'>2. secondary</span></em><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><em><span style='font-family:"Helvetica",sans-serif;color:#2A2A2A;background:yellow'>3. tertiary</span></em><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><em><span style='font-family:"Helvetica",sans-serif;color:#2A2A2A;background:yellow'>4. quaternary</span></em><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Helvetica",sans-serif;color:#2A2A2A;background:yellow'>5. </span><em><span style='font-size:10.0pt;font-family:"Helvetica",sans-serif'>quinary</span></em><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><em><span style='font-family:"Helvetica",sans-serif;color:#2A2A2A;background:yellow'>6</span></em><span style='font-family:"Helvetica",sans-serif;color:#2A2A2A;background:yellow'>, </span><em><span style='font-size:10.0pt;font-family:"Helvetica",sans-serif'>senary</span></em><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><em><span style='font-family:"Helvetica",sans-serif;color:#2A2A2A;background:yellow'>7.</span></em><span style='font-family:"Helvetica",sans-serif;color:#2A2A2A;background:yellow'> </span><em><span style='font-size:10.0pt;font-family:"Helvetica",sans-serif'>septenary</span></em><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><em><span style='font-family:"Helvetica",sans-serif;color:#2A2A2A;background:yellow'>8.</span></em><span style='font-family:"Helvetica",sans-serif;color:#2A2A2A;background:yellow'> </span><em><span style='font-size:10.0pt;font-family:"Helvetica",sans-serif'>octonary</span></em><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Helvetica",sans-serif;color:#2A2A2A;background:yellow'>9. </span><em><span style='font-size:10.0pt;font-family:"Helvetica",sans-serif'>nonary</span></em><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><em><span style='font-family:"Helvetica",sans-serif;color:#2A2A2A;background:yellow'>10</span></em><span style='font-family:"Helvetica",sans-serif;color:#2A2A2A;background:yellow'> </span><em><span style='font-size:10.0pt;font-family:"Helvetica",sans-serif'>denary</span></em><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Verdana",sans-serif;color:black'>When </span><span style='font-size:8.5pt;font-family:"Courier New";color:black'>"EXPLORE"</span><span style='font-family:"Verdana",sans-serif;color:black'> mode is active:</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p><ol style='margin-top:0in' start=1 type=a><li class=MsoNormal style='color:black;margin-top:2.7pt;mso-list:l1 level1 lfo1'><span style='font-family:"Verdana",sans-serif'>Dragging left and right <s><span style='background:yellow'>while holding the left button down</span></s> causes viewpoint rotation about a vertical axis that passes through the point of rotation. This vertical axis is always perpendicular to the viewpoint vector. Motion in the left direction rotates the viewpoint clockwise (as viewed from the top) about the vertical axis. Rotation is tied to the motion of the pointing device; there is no damping or delay.</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></li><li class=MsoNormal style='color:black;margin-top:2.7pt;mso-list:l1 level1 lfo1'><span style='font-family:"Verdana",sans-serif'>Dragging <s><span style='background:yellow'>the</span></s> up and down <s><span style='background:yellow'>while holding the left button down</span></s> causes rotation about a horizontal axis that passes through the point of rotation. Motion in the up direction rotates the viewpoint clockwise (as viewed from the right) about the horizontal axis. Rotation is tied to the motion of the pointing device; there is no damping or delay.</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></li><li class=MsoNormal style='color:black;margin-top:2.7pt;mso-list:l1 level1 lfo1'><s><span style='font-family:"Verdana",sans-serif;background:yellow'>Holding the Ctrl key (or other key that may be user-selectable) down modifies the left button down</span></s><span style='font-family:"Verdana",sans-serif;background:yellow'> Secondary trigger</span><span style='font-family:"Verdana",sans-serif'> drag movement <s><span style='background:yellow'>such that</span></s> up <s><span style='background:yellow'>and</span></s> down <s>(Y-axis)</s> movement causes the viewpoint to zoom toward and from the point of rotation. <span style='background:yellow'>Tertiary trigger</span> Left and right motion <s><span style='background:yellow'>while Ctrl is held down has no effect. Shift and Ctrl (or other keys that may be user-selectable) held at the same time also</span></s> enables zoom but disables TouchSensors.</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></li><li class=MsoNormal style='color:black;margin-top:2.7pt;mso-list:l1 level1 lfo1'><s><span style='font-family:"Verdana",sans-serif;background:yellow'>Holding the Alt key (or other key that may be user-selectable) modifies the movement such that motion of the pointing device while the left button is held down</span></s><span style='font-family:"Verdana",sans-serif;background:yellow'> Quaternary trigger movement</span><span style='font-family:"Verdana",sans-serif'> is translated into a pan of the viewpoint in a plane passing through the viewpoint perpendicular to the vector pointing to the point of rotation. <s><span style='background:yellow'>Shift and Alt (or other keys that may be user-selectable) held at the same time also</span></s><span style='background:yellow'> Quinary trigger</span> enables pan but disables TouchSensors.</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></li><li class=MsoNormal style='color:black;margin-top:2.7pt;mso-list:l1 level1 lfo1'><span style='font-family:"Verdana",sans-serif'>The point of rotation can be set by <s><span style='background:yellow'>holding the Shift key (or other key that may be user-selectable) while</span></s> pointing at an object and clicking <s><span style='background:yellow'>the left button</span></s><span style='background:yellow'> senary trigger</span>. To provide feedback that the point has been selected, the viewpoint shall zoom about twenty percent of the distance toward that point.</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></li><li class=MsoNormal style='color:black;margin-top:2.7pt;mso-list:l1 level1 lfo1'><span style='font-family:"Verdana",sans-serif'>If the pointer is positioned over a TouchSensor, the pointer icon shall change its appearance to indicate that a <s><span style='background:yellow'>left</span></s><span style='background:yellow'> primary</span> click will activate the TouchSensor.</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></li><li class=MsoNormal style='color:black;margin-top:2.7pt;mso-list:l1 level1 lfo1'><s><span style='font-family:"Verdana",sans-serif;background:yellow'>Holding the Shift key (or other key that may be user-selectable)</span></s><span style='font-family:"Verdana",sans-serif;background:yellow'> Septenary trigger</span><span style='font-family:"Verdana",sans-serif'> overrides any TouchSensor that the pointer may be over and forces the pointing device to function as the viewpoint navigation tool; <i>i.e.</i>, drag operations cause rotation, click operations cause center of rotation point selection.</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></li></ol><p class=MsoNormal><s><span style='font-family:"Verdana",sans-serif;color:black;background:yellow'>Whether user-selectable alternatives to the Shift, Ctrl, and/or Alt are provided is browser-dependent. If provided, the method by which such alternatives are specified is also browser-dependent.</span></s><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'><o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Sun, Jun 14, 2020 at 9:45 AM GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>> wrote:</p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><p class=MsoNormal>Yes I see there's terminology it looks like its is mapping keyboard to work as a pointing device</p><div><p class=MsoNormal>Hypothesis: there could be a way to remap EXPLORE (which is heavy in button / pointing-device-motion specifics)</p></div><div><p class=MsoNormal>a) write it more generally somehow</p></div><div><p class=MsoNormal>b) then as with Appendix G, do some device-specific mappings.</p></div><div><p class=MsoNormal>Same with (new v4) HELICOPTER, GAME motions - could they be written generally like the WALK, FLY, EXAMINE - with very little talk about buttons and pointing devices - and then somehow articulate mappings in Appendix G?</p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Here are some device scenarios</p></div><div><p class=MsoNormal>i) desktop 2 button + wheel mouse, full keyboard with arrow keys, ctrl,shft,alt<br>ii) mobile - gyro, touch screen<br>iii) non-mobile touch screen<br>iv) HMD with gyro and viewport center</p></div><div><p class=MsoNormal>v) desktop game controller</p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>EXPLORE could define 'drag / dragging' in such a way to share with HELICOPTER, GAME and new ones if they can't be specified notion-lessly.</p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Sun, Jun 14, 2020 at 9:36 AM Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>> wrote:</p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>For example:</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:9.5pt;font-family:"Courier New";color:black;background:white'>WALK:      forward/backward/left/right</span></b></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:9.5pt;font-family:"Courier New";color:black;background:white'>FLY:       forward/backward/left/right</span></b></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:9.5pt;font-family:"Courier New";color:black;background:white'>EXAMINE:   orbit up/down/left/right around center of rotation</span></b></p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:9.5pt;font-family:"Courier New";color:black;background:white'>           with camera pointed at center of rotation</span></b></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:9.5pt;font-family:"Courier New";color:black;background:white'> </span></b></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank">Mail</a> for Windows 10</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b>From: </b><a href="mailto:joedwil@earthlink.net" target="_blank">Joseph D Williams</a><br><b>Sent: </b>Sunday, June 14, 2020 8:31 AM<br><b>To: </b><a href="mailto:gpugroup@gmail.com" target="_blank">GPU Group</a>; <a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] [x3d] Spec Comment by dougsanden on 19775-1:X3DArchitecture - V3.0</p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><ul type=disc><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo2'>Q. And could/should named navigation modes/types be</li></ul><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>How about some more work on:</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Extensible 3D (X3D) Part 1: Architecture and base components</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Annex G Recommended navigation behaviours</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>(informative)</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><a href="https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/behaviours.html" target="_blank">https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/behaviours.html</a></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Several reasons the annex was informative at that time, or even attempted. </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Maybe more Is understood now, and this offers some guidance from some point in time.</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thanks, </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Joe</p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b>From: </b><a href="mailto:gpugroup@gmail.com" target="_blank">GPU Group</a><br><b>Sent: </b>Sunday, June 14, 2020 6:28 AM<br><b>To: </b><a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] [x3d] Spec Comment by dougsanden on 19775-1: X3DArchitecture - V3.0</p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Forwarding some comments on other channels</p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Q. should specs > NavigationInfo attempt to abstract input / pointing device terminology</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- so gyros, game controllers/pads, touch screens, 3D pointing devices ?, HMD / AR gyro/view-center - can all be mapped more generically:</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Instead of mouse xy, it would be 'primaryXY channel' or  'primary 2D pointing device'</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Q. And could/should named navigation modes/types be specified in terms of the order and transform element being mapped to:</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>WALK: yaw and Z are applied to last yaw-z pose, then pitch-roll applied</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>FREEFLY: yaw,z,pitch,roll are applied in any order</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Perhaps something in a table format?</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thanks,</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Doug Sanden</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>On Sat, Jun 13, 2020 at 12:15 PM GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>> wrote:</p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'>"have your ray loop forget about ID=2"</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'>One notable difference between a touch device and a mouse: a mouse has an up-drag. A touch doesn't. </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'>- that makes no difference to MultiTouch/MultiDragSensor, which only works with down-drags.</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'>Where you see the difference: isOver, and navigation modes that assume updrag is available - like proposed GAME mode.</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'>And what you do when a button / touch is 'released': </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'>- updrag-capabile input devices: you likely just change a button state, and keep drawing the cursor at the last location</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'>- updrag-incapable input devices - you likely release/forget/recycle the ID number</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'>SUMMARY: web3d specs may need more terms to describe input device classes and capabilities more abstractly</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'>- up-drags</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'>- drag-ID</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'>- drag-ID recycling</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'> </p></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'> </p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:4.8pt'>On Sat, Jun 13, 2020 at 11:59 AM GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>> wrote:</p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt'>Drags need an ID ie 1,2,3 and that comes normally in windows 7 desktop WM_TOUCH events, or more precisely you can get an index number in a lookup table of touches.</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt'>A mouse-friendly use of a MultiDragSensor:</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt'>- your regular pointing device ray might be ID=1</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt'>- to create a second ray, you can park/freeze ID=1 with some mouse or keyboard button ie MMB - and push a 2nd one with ID=2 onto a stack </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt'>- then you would move drag ID= 2, until done with scaling and rotation, and unfreeze / pop to get back to dragging ID=1 - maybe same button- and have your ray loop forget about ID=2 after that, until the user repeats the cycle. Or something like that. </p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt'>SUMMARY: yes - it can be abstracted from touch devices, but you still need a per-drag ID.</p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt'>-Doug</p></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt'> </p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:9.6pt'>On Sat, Jun 13, 2020 at 11:18 AM Spec Feedback <<a href="mailto:spec-comment@web3d.org" target="_blank">spec-comment@web3d.org</a>> wrote:</p></div></div></blockquote></div></blockquote></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.2in'>-- Submitter indicates that this comment may be public: *Yes* --<br><br>Comment on 19775-1: X3D Architecture - V3.0<br>MultiTouchSensor<br><br><br>-----------------<br>MultiTouchSensor > Touch vs Drag > MutliDragSensor<br>In theory it should be called something that abstracts it from the particular<br>type of input device.<br>Drag is more input device neutral - there could be other device-neutral<br>terms.<br>For example a typical game controller has 2 thumb sticks that could act like<br>2 touches.<br>A combination of device gyro -in HMD or mobile phone or Wii Controller- and<br>freeze-button could shoot one ray, freeze it as one touch, then shoot another<br>ray to drag.<br>Internally, code works with a plane sensor xy origin when a button goes<br>down/a ray is shot, then a drag xy is compared to the orgin xy to see how far<br>in what direction: internally its drag-oriented and doesn't care what device<br>shot the rays.<br>-----------------<br><br>Submitted on Saturday, 2020,  June 13 - 11:18am<br>by dougsanden (dougsanden )<br>IP: 75.159.18.239<br><br>See: <a href="https://www.web3d.org/node/1694/submission/4039" target="_blank">https://www.web3d.org/node/1694/submission/4039</a><br><br><br>_______________________________________________<br>x3d mailing list<br><a href="mailto:x3d@web3d.org" target="_blank">x3d@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d_web3d.org</a></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> </p></div></div></blockquote></div></blockquote></div></blockquote></div></blockquote></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> </p><p class=MsoNormal><o:p> </o:p></p></div></body></html>