<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    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<br>
    <br>
    <div class="moz-cite-prefix">On 3/5/2014 2:10 AM, Limper, Max wrote:<br>
    </div>
    <blockquote
cite="mid:59A2F7345900E2478F1FD18FABBBCAAE0A47BD61@EXMBS1.ad.igd.fraunhofer.de"
      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:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
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;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1993678774;
        mso-list-type:hybrid;
        mso-list-template-ids:267281542 1823480162 67567641 67567643 67567631 67567641 67567643 67567631 67567641 67567643;}
@list l0:level1
        {mso-level-text:"%1\.\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></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">Dear all,<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><span lang="EN-US">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></span></p>
        <p class="MsoNormal"><span lang="EN-US"><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></span></p>
        <p class="MsoNormal"><span lang="EN-US">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></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">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></span></p>
        <p class="MsoNormal"><span lang="EN-US">There are two issues
            where I would be pleased to hear your opinion:<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoListParagraph"
          style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span
            lang="EN-US"><span style="mso-list:Ignore">1.)<span
                style="font:7.0pt "Times New Roman"">   
              </span></span></span><!--[endif]--><span lang="EN-US">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>
            <o:p></o:p></span></p>
        <p class="MsoListParagraph"
          style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span
            lang="EN-US"><span style="mso-list:Ignore">2.)<span
                style="font:7.0pt "Times New Roman"">   
              </span></span></span><!--[endif]--><span lang="EN-US">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></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">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></span></p>
        <p class="MsoNormal"><span lang="EN-US">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></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">Thanks a lot in advance!<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">Best Regards,<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">Max<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><br>
            <br>
            <br>
            <o:p></o:p></span></p>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
X3D-Public mailing list
<a class="moz-txt-link-abbreviated" href="mailto:X3D-Public@web3d.org">X3D-Public@web3d.org</a>
<a class="moz-txt-link-freetext" href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>
</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <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/7153 - Release Date:
        03/04/14</p>
    </blockquote>
    <br>
  </body>
</html>