<div dir="ltr">Drags - perhaps beside the Pointing Device Sensor notion of a bearing (5 DOF ray) there could be the articulation / notion of a 'bearing drag' - meaning its not necessarily a 2D device space drag, rather more generically its more like in ray / bearing space, or (after ray/bearing istersects sensor geometry) sensor-geometry-space drag.<div>defining 'drag' in bearing or sensor space abstracts it somewhat from the messy particulars of specific pointing devices<br><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jun 14, 2020 at 10:24 AM GPU Group <<a href="mailto:gpugroup@gmail.com">gpugroup@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">5.  more than one way to generate 2 rays / bearings / 5-DOF (degree of freedom) rays:<div>- game controller - most have 2 thumb buttons, and so in theory could be used as 2 separate rays - like a multitouch device (but I haven't tried it)</div><div>- mouse - press an ALT or other modifier button to alternate between rays</div><div>- (Appendix G arrow keys for ray 2, mouse xy, LMB for ray 1)</div><div>- mouse in one hand, WiiMote wand in other hand</div><div>- etc</div><div>SUMMARY: the SENSORS section is already pretty good at abstracting pointing devices to talk about 3D rays/bearings/5DOF pointing. So trying to keep the MULTI part general will help adoption and use going forward.</div><div>-Doug</div><div><br><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jun 14, 2020 at 10:05 AM GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">1. I think the mouse + MultitouchSensor idea was submitted as a SPEC COMMENT or I hereby declare it so. <div>So its no longer my method'- I'll call it the <a href="http://web3d.org" target="_blank">web3d.org</a> mouse + MultiTouchSensor method.</div><div>2. I haven't implemented it, but something similar in a more general multitouch emulator that uses a mouse</div><div>3. it wouldn't need to be a mouse - any 2D+viewpoint or 3D raycasting / pointing device / bearing device can do this</div><div>- HMD head mounted display with gyro and viewport center pointer</div><div>- game console/controller  thumbstick</div><div>- touch device with only one touch allowed</div><div>- etc</div><div>4. how:</div><div>a) shoot first ray/bearing as an anchor / pin / pivot point and freeze it (the ray) as the first point/drag of the multitouch sensor</div><div>b) shoot a 2nd ray/bearing and downdrag/downdrag/drag it as the 2nd point of the multi-touch</div><div>c) after dragging to scale and rotate, release the 2nd downdrag leaving the first</div><div>d) unfreeze the first ray/drag</div><div>d) drag the first if desired to adjust translation</div><div>e) release the first drag</div><div>f) repeat / iterate as needed</div><div><br></div><div>down-drag - primary pointing device (2D+viewpoint or 3D) with primary trigger on / pressed / activated and motion (vs clicking)</div><div>shoot - point pointing device, and active trigger</div><div><br></div><div>-Doug Sanden</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jun 14, 2020 at 9:45 AM Don Brutzman <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Thanks for pointing at that Joe, very important and often overlooked.  Agreed that it describes how our device-neutral definitions actually work, and that it could be very helpful to extend.<br>
<br>
Doug, can you describe how your "MultiTouch using a Mouse" works?<br>
<br>
Given that, Dick and I can accept/adapt/rephrase the wording for Annex G to define suggested practices for "MultiTouch using a Single Pointing Device".<br>
<br>
On 6/14/2020 8:36 AM, Joseph D Williams wrote:<br>
> For example:<br>
> <br>
> *WALK:      forward/backward/left/right*<br>
> <br>
> *FLY:       forward/backward/left/right*<br>
> <br>
> *EXAMINE:   orbit up/down/left/right around center of rotation*<br>
> <br>
> *           with camera pointed at center of rotation*<br>
> <br>
> **<br>
> <br>
> Sent from Mail <<a href="https://go.microsoft.com/fwlink/?LinkId=550986" rel="noreferrer" target="_blank">https://go.microsoft.com/fwlink/?LinkId=550986</a>> for Windows 10<br>
> <br>
> *From: *Joseph D Williams <mailto:<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>><br>
> *Sent: *Sunday, June 14, 2020 8:31 AM<br>
> *To: *GPU Group <mailto:<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>>; X3D Graphics public mailing list <mailto:<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>
> *Subject: *Re: [x3d-public] [x3d] Spec Comment by dougsanden on 19775-1:X3DArchitecture - V3.0<br>
> <br>
>   * Q. And could/should named navigation modes/types be<br>
> <br>
> How about some more work on:<br>
> <br>
> Extensible 3D (X3D) Part 1: Architecture and base components<br>
> <br>
> Annex G Recommended navigation behaviours<br>
> <br>
> (informative)<br>
> <br>
> <a href="https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/behaviours.html" rel="noreferrer" target="_blank">https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/behaviours.html</a><br>
> <br>
> Several reasons the annex was informative at that time, or even attempted.<br>
> <br>
> Maybe more Is understood now, and this offers some guidance from some point in time.<br>
> <br>
> Thanks,<br>
> <br>
> Joe<br>
> <br>
> *From: *GPU Group <mailto:<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>><br>
> *Sent: *Sunday, June 14, 2020 6:28 AM<br>
> *To: *X3D Graphics public mailing list <mailto:<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>
> *Subject: *Re: [x3d-public] [x3d] Spec Comment by dougsanden on 19775-1: X3DArchitecture - V3.0<br>
> <br>
> Forwarding some comments on other channels<br>
> <br>
> Q. should specs > NavigationInfo attempt to abstract input / pointing device terminology<br>
> <br>
> - so gyros, game controllers/pads, touch screens, 3D pointing devices ?, HMD / AR gyro/view-center - can all be mapped more generically:<br>
> <br>
> Instead of mouse xy, it would be 'primaryXY channel' or  'primary 2D pointing device'<br>
> <br>
> Q. And could/should named navigation modes/types be specified in terms of the order and transform element being mapped to:<br>
> <br>
> WALK: yaw and Z are applied to last yaw-z pose, then pitch-roll applied<br>
> <br>
> FREEFLY: yaw,z,pitch,roll are applied in any order<br>
> <br>
> Perhaps something in a table format?<br>
> <br>
> Thanks,<br>
> <br>
> Doug Sanden<br>
> <br>
> On Sat, Jun 13, 2020 at 12:15 PM GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a> <mailto:<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>>> wrote:<br>
> <br>
>     "have your ray loop forget about ID=2"<br>
> <br>
>     One notable difference between a touch device and a mouse: a mouse has an up-drag. A touch doesn't.<br>
> <br>
>     - that makes no difference to MultiTouch/MultiDragSensor, which only works with down-drags.<br>
> <br>
>     Where you see the difference: isOver, and navigation modes that assume updrag is available - like proposed GAME mode.<br>
> <br>
>     And what you do when a button / touch is 'released':<br>
> <br>
>     - updrag-capabile input devices: you likely just change a button state, and keep drawing the cursor at the last location<br>
> <br>
>     - updrag-incapable input devices - you likely release/forget/recycle the ID number<br>
> <br>
>     SUMMARY: web3d specs may need more terms to describe input device classes and capabilities more abstractly<br>
> <br>
>     - up-drags<br>
> <br>
>     - drag-ID<br>
> <br>
>     - drag-ID recycling<br>
> <br>
>     On Sat, Jun 13, 2020 at 11:59 AM GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a> <mailto:<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>>> wrote:<br>
> <br>
>         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.<br>
> <br>
>         A mouse-friendly use of a MultiDragSensor:<br>
> <br>
>         - your regular pointing device ray might be ID=1<br>
> <br>
>         - 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<br>
> <br>
>         - 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.<br>
> <br>
>         SUMMARY: yes - it can be abstracted from touch devices, but you still need a per-drag ID.<br>
> <br>
>         -Doug<br>
> <br>
>         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> <mailto:<a href="mailto:spec-comment@web3d.org" target="_blank">spec-comment@web3d.org</a>>> wrote:<br>
> <br>
> -- 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" rel="noreferrer" 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> <mailto:<a href="mailto:x3d@web3d.org" target="_blank">x3d@web3d.org</a>><br>
> <a href="http://web3d.org/mailman/listinfo/x3d_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d_web3d.org</a><br>
> <br>
> <br>
> _______________________________________________<br>
> x3d-public mailing list<br>
> <a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
> <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
> <br>
<br>
all the best, Don<br>
-- <br>
Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><br>
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149<br>
X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" rel="noreferrer" target="_blank">http://faculty.nps.edu/brutzman</a><br>
</blockquote></div>
</blockquote></div>
</blockquote></div>