<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    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>
    <br>
    <div class="moz-cite-prefix">On 3/5/2014 11:51 AM, Richard F. Puk
      wrote:<br>
    </div>
    <blockquote cite="mid:089801cf38ac$52b27070$f8175150$@igraphics.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      <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;}
/* 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.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.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.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:1358847474;
        mso-list-type:hybrid;
        mso-list-template-ids:-2028839838 1160908688 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:1993678774;
        mso-list-type:hybrid;
        mso-list-template-ids:267281542 1823480162 67567641 67567643 67567631 67567641 67567643 67567631 67567641 67567643;}
@list l1:level1
        {mso-level-text:"%1\.\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1: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]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span style="color:#1F497D">Hi, Dave –<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">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.<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 lfo3"><!--[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
              moz-do-not-send="true" 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">
                X3D-Public [<a class="moz-txt-link-freetext" 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 class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><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">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 moz-do-not-send="true"
              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:l1 level1 lfo2"><!--[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>
            <o:p></o:p></p>
          <p class="MsoListParagraph"
            style="text-indent:-.25in;mso-list:l1 level1 lfo2"><!--[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>
            <o:p></o:p></p>
          <p class="MsoNormal"><span
              style="font-size:12.0pt;font-family:"Times New
              Roman","serif""><br>
              <br>
              <br>
              <o:p></o:p></span></p>
          <pre>_______________________________________________<o:p></o:p></pre>
          <pre>X3D-Public mailing list<o:p></o:p></pre>
          <pre><a moz-do-not-send="true" href="mailto:X3D-Public@web3d.org">X3D-Public@web3d.org</a><o:p></o:p></pre>
          <pre><a moz-do-not-send="true" 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""><br>
              <br>
              <br>
              <o:p></o:p></span></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 moz-do-not-send="true"
                href="http://www.avg.com">www.avg.com</a><br>
              Version: 2014.0.4335 / Virus Database: 3705/7153 - Release
              Date: 03/04/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>
      <p class="" avgcert""="" color="#000000" align="left">No virus
        found in this message.<br>
        Checked by AVG - <a moz-do-not-send="true"
          href="http://www.avg.com">www.avg.com</a><br>
        Version: 2014.0.4335 / Virus Database: 3705/7156 - Release Date:
        03/05/14</p>
    </blockquote>
    <br>
  </body>
</html>