<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<html xmlns:v="urn:schemas-microsoft-com:vml" 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 name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
{font-family:"Times New Roman \, serif";
panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
color:black;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";
color:black;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-priority:99;
mso-style-link:"Balloon Text Char";
margin:0in;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Tahoma","sans-serif";
color:black;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
color:black;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;
color:black;}
span.EmailStyle20
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.EmailStyle21
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:#1F497D;}
span.EmailStyle22
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
span.BalloonTextChar
{mso-style-name:"Balloon Text Char";
mso-style-priority:99;
mso-style-link:"Balloon Text";
font-family:"Tahoma","sans-serif";
color:black;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:70.85pt 70.85pt 56.7pt 70.85pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:1279411760;
mso-list-type:hybrid;
mso-list-template-ids:2109483940 -793197330 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:\F06E;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:22.8pt;
text-indent:-.25in;
font-family:Wingdings;
mso-fareast-font-family:Calibri;
mso-bidi-font-family:"Times New Roman";}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:58.8pt;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:94.8pt;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:130.8pt;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:166.8pt;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:202.8pt;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:238.8pt;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:274.8pt;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:310.8pt;
text-indent:-.25in;
font-family:Wingdings;}
@list l1
{mso-list-id:1358847474;
mso-list-type:hybrid;
mso-list-template-ids:-2028839838 1160908688 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:\F06E;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:22.8pt;
text-indent:-.25in;
font-family:Wingdings;
mso-fareast-font-family:Calibri;
mso-bidi-font-family:"Times New Roman";}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:58.8pt;
text-indent:-.25in;
font-family:"Courier New";}
@list l1:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:94.8pt;
text-indent:-.25in;
font-family:Wingdings;}
@list l1:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:130.8pt;
text-indent:-.25in;
font-family:Symbol;}
@list l1:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:166.8pt;
text-indent:-.25in;
font-family:"Courier New";}
@list l1:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:202.8pt;
text-indent:-.25in;
font-family:Wingdings;}
@list l1:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:238.8pt;
text-indent:-.25in;
font-family:Symbol;}
@list l1:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:274.8pt;
text-indent:-.25in;
font-family:"Courier New";}
@list l1:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:310.8pt;
text-indent:-.25in;
font-family:Wingdings;}
@list l2
{mso-list-id:1993678774;
mso-list-type:hybrid;
mso-list-template-ids:267281542 1823480162 67567641 67567643 67567631 67567641 67567643 67567631 67567641 67567643;}
@list l2:level1
{mso-level-text:"%1\.\)";
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l2:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l2:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l2:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='color:#1F497D'>Hi, David –<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>There is a separate binding stack for each of the layers. Therefore, the mapping between each should be automatic if the geometry is placed in a node hierarchy acceptable from each layer. Actually, viewports can be place in any layer and multiple viewports can be overlap each other in screen space. HUD’s are only one of many different effects that can be achieved.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoListParagraph style='margin-left:22.8pt;text-indent:-.25in;mso-list:l0 level1 lfo5'><![if !supportLists]><span style='font-family:Wingdings;color:#1F497D'><span style='mso-list:Ignore'>n<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span style='color:#1F497D'>Dick<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>/******************************************<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>| Richard F. Puk, Ph.D., President<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>| Intelligraphics Incorporated<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>| 7644 Cortina Court<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>| Carlsbad, CA 92009-8206<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>| Tel: +1-760-753-9027 Mobile: +1-760-809-9027<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>| Email: <a href="mailto:puk@igraphics.com"><span style='color:blue'>puk@igraphics.com</span></a><o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>\****************************************** <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'> Dave A [mailto:dave@realmofconcepts.com] <br><b>Sent:</b> Wednesday, March 5, 2014 11:57 AM<br><b>To:</b> Richard F. Puk; 'Limper, Max'; x3d-public@web3d.org<br><b>Subject:</b> Re: [X3D-Public] Common translation tool via X3D PlaneSensor?<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>Ah, see that's news to me.<br><br>So can I transform any point in world space to viewport space and back? Can I implement a 'drag sensor' in viewport space?<br><br>You aren't talking about having geometry parented to the current view, ala the HUD's of old, right?<br><br>Dave A<br><br><o:p></o:p></p><div><p class=MsoNormal>On 3/5/2014 11:51 AM, Richard F. Puk wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span style='color:#1F497D'>Hi, Dave –</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>X3D does have a ‘viewport’ space. Please review the Layering component. Simply put the viewport in front of the normal world and make the viewport background transparent.</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoListParagraph style='margin-left:22.8pt;text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span style='font-family:Wingdings'><span style='mso-list:Ignore'>n<span style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span style='color:#1F497D'>Dick</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>/******************************************</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>| Richard F. Puk, Ph.D., President</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>| Intelligraphics Incorporated</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>| 7644 Cortina Court</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>| Carlsbad, CA 92009-8206</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>| Tel: +1-760-753-9027 Mobile: +1-760-809-9027</span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>| Email: <a href="mailto:puk@igraphics.com">puk@igraphics.com</a></span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>\****************************************** </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'> X3D-Public [<a href="mailto:x3d-public-bounces@web3d.org">mailto:x3d-public-bounces@web3d.org</a>] <b>On Behalf Of </b>Dave A<br><b>Sent:</b> Wednesday, March 5, 2014 11:41 AM<br><b>To:</b> Limper, Max; <a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><br><b>Subject:</b> Re: [X3D-Public] Common translation tool via X3D PlaneSensor?</span><o:p></o:p></p></div></div><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>I have implemented a screen-oriented dragger, we can talk.<br><br>What X3D (and X3DOM) NEEDS if it doesn't have it, is a 'viewport' space, in addition to 'world' space, and functions to convert EASILY between them. Because most people that want to drag editor-style want to do it parallel to the plane of the screen (perpendicular to the camera 'forward' direction) in many cases. This type of thing is made easy by API's in other systems such as Unity. If X3D/om wants to compete, it better have that stuff available.<br>IMHO.<br>Dave A<o:p></o:p></p><div><p class=MsoNormal>On 3/5/2014 2:10 AM, Limper, Max wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal>Dear all,<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>it seems many people want some tools to realize common 3D “handles” like known from popular modeling programs (Maya, Blender, …) – here’s an example from the three.js folks:<o:p></o:p></p><p class=MsoNormal><a href="http://mrdoob.github.io/three.js/editor/">http://mrdoob.github.io/three.js/editor/</a><o:p></o:p></p><p class=MsoNormal>Since there have been many requests for such tools in X3DOM, we have started to implement the PointingDeviceSensor componentī, as we didn’t want to re-invent the wheel and keep conformant with X3D.<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>However, it turned out that it is quite hard to achieve what we want with the PointingDeviceSensor component, especially for the Transformation tool (please find attached a screenshot, as well as the corresponding X3D file).<o:p></o:p></p><p class=MsoNormal>There are two issues where I would be pleased to hear your opinion:<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l2 level1 lfo4'><![if !supportLists]><span style='mso-list:Ignore'>1.)<span style='font:7.0pt "Times New Roman"'> </span></span><![endif]>The axisRotation field lets us track pointer motion mapped onto a different plane than the standard Z=0 plane. This is great to realize the handles: For the X and Y handle, we keep the standard orientation of the virtual sensor plane. For the Z handle, we rotate it.<br>However, since the sensors always fire the _<i>unrotated</i>_ transformations (in the local sensor coordinate system), we need to apply an extra rotation above the target transform in order to translate motion on the Z handle properly. Is this intended?<br>My first impression was that it makes the application actually more complicated. InstantPlayer has changed the behavior towards a rotated output (applying the axisRotation) within the last week (dailybuilds only – this is experimental and can be reverted), while bs contact seems to ignore the axisRotation field (it was added in a later version of the spec?).<br><br><br><br><o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l2 level1 lfo4'><![if !supportLists]><span style='mso-list:Ignore'>2.)<span style='font:7.0pt "Times New Roman"'> </span></span><![endif]>With the PlaneSensor component, there is an obvious drawback when implementing such axis-aligned transformation handles:<br>Since the sensor tracks motion on a plane, we get in trouble when we have a viewing direction that is perpendicular to the plane normal. For the attached example, you can see the problem if you look into the direction of the x-Axis and trigger the y-Axis’ handle – in that case, the viewing direction will be perpendicular to the Z=0 plane used by the PlaneSensor, and you will get random transformation results.<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>Especially the second point seems to be caused by us using the PlaneSensor for things for which it was not originally intended.<o:p></o:p></p><p class=MsoNormal>However, I wasn’t able to find any other X3D-conformant way to declare such common translation handles. Do you have any idea how X3D could provide something like that? Is there maybe already a proposal for X3D 4.0, which solves this problem?<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>Thanks a lot in advance!<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>Best Regards,<o:p></o:p></p><p class=MsoNormal>Max<o:p></o:p></p><p class=MsoNormal><br><br><br><br><br><o:p></o:p></p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman , serif","serif"'><br><br><br><br></span><o:p></o:p></p><pre>_______________________________________________<o:p></o:p></pre><pre>X3D-Public mailing list<o:p></o:p></pre><pre><a href="mailto:X3D-Public@web3d.org">X3D-Public@web3d.org</a><o:p></o:p></pre><pre><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><o:p></o:p></pre><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman , serif","serif"'><br><br><br><br></span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:12.0pt;font-family:"Times New Roman , serif","serif"'>No virus found in this message.<br>Checked by AVG - <a href="http://www.avg.com">www.avg.com</a><br>Version: 2014.0.4335 / Virus Database: 3705/7153 - Release Date: 03/04/14</span><o:p></o:p></p></blockquote><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman , serif","serif"'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:12.0pt;font-family:"Times New Roman","serif"'>No virus found in this message.<br>Checked by AVG - <a href="http://www.avg.com">www.avg.com</a><br>Version: 2014.0.4335 / Virus Database: 3705/7156 - Release Date: 03/05/14<o:p></o:p></span></p></blockquote><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif"'><o:p> </o:p></span></p></div></body></html>