Hmmm,<br><br>This might be an implementation artifact (possible even in two players), or it might be correct to-spec behavior.<br><br>But now we've gone beyond my ability to visualize. Hoping KV can weigh in. Keith are you listening?!<br>
<br>Tony<br><br><div class="gmail_quote">On Wed, Sep 22, 2010 at 6:27 PM, Dave A <span dir="ltr"><<a href="mailto:dave@realmofconcepts.com">dave@realmofconcepts.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">


  
    
  
  <div bgcolor="#ffffff" text="#000000">
    Yeah. I try to save myself some time/trouble by asking if anyone's
    seen anything, such that I don't have to reinvent a wheel.....<br>
    <br>
    Anyway, I see this behavior in Vivaty and Contact.<br>
    <br>
    Imagine you have a plane. Let's say it's face-on to the screen. The
    PlaneSensor works well in this case, and setting min.y = max.y will
    restrict motion to just X. That's fine. Intuitive interaction.<br>
    <br>
    Now navigate such that the plane is not face-on to the screen. It's
    a rhombus. If you were to draw bisectors on the plane (its local
    axes), you would see a line representing the X axis no longer
    parallel to screen X, and Y no longer parallel to Y.<br>
    <br>
    Now when you get translation events from the sensor, there are X and
    Y components to that. But if you map that to motion, you'll see that
    MOUSE motion in any direction will result in object motion (in one
    direction). And when the unwanted axis is 'shorter' (more oblique),
    there is much more motion resulting from mouse-movement in that
    direction. It's a horribly non-intuitive interaction.<br>
    <br>
    It's hard to describe, sorry, but try it. Make something in Vivaty
    studio with a PlaneSensor and just set the min/max values. Then run
    it, rotate the scene around, and play with it. Won't be long before
    you run into this behavior.<br>
    <br>
    I imagine I may have to transform the sensor's values to screen
    coords, filter, and transform back?<br><font color="#888888">
    <br>
    Dave A</font><div><div></div><div class="h5"><br>
    <br>
    <br>
    <br>
    On 9/22/2010 5:34 PM, Tony Parisi wrote:
    <blockquote type="cite">Poor Dave, they're still bashing you after all these
      years. I feel for ya man.<br>
      <br>
      Ok now on-topic: if I recall, there is a way to constrain the
      PlaneSensor to one dimension. From da spec:<br>
      <br>
      "<i>minPosition</i> and <i>maxPosition</i> may be set to clamp <i>translation_changed</i>
      events to a range of values as measured from the origin of the Z=0
      plane of the local sensor coordinate system. If the X or Y
      component of <i>minPosition</i> is greater than the corresponding
      component of <i>maxPosition</i>, <i>translation_changed</i>
      events are not clamped in that dimension. If the X or Y component
      of <i>minPosition</i> is equal to the corresponding component of
      <i>maxPosition</i>, that component is constrained to the given
      value. This technique provides a way to implement a line sensor
      that maps dragging motion into a translation in one dimension."<br>
      <br>
      Tony<br>
      <br>
      <div class="gmail_quote">2010/9/22 Dave A <span dir="ltr"><<a href="mailto:dave@realmofconcepts.com" target="_blank">dave@realmofconcepts.com</a>></span><br>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
          <div bgcolor="#ffffff" text="#000000"> You don't have to be
            jerks about it. I've been scripting this crap for years.<br>
            A more constructive response would be something on the order
            of how to<br>
            apply some transform or something to the raw value coming
            from the PlaneSensor.<br>
            For your information, I DO have a script to filter out the
            unwanted axis, but simply doing<br>
            that as you say is not enough.<br>
            And did you know that if you set the min/max values to zero,
            you don't need a script<br>
            to set them to zero?<br>
            <br>
            Why do people not bother to think about what they say before
            hitting Send?
            <div>
              <div><br>
                <br>
                <br>
                On 9/22/2010 4:55 PM, Pierre Côté wrote:
                <blockquote type="cite"> <font face="Calibri, Verdana,
                    Helvetica, Arial"><span style="font-size: 12pt;">Because
                      people do not know (always) how to do scripting...
                      It’s a learning process...<br>
                      pc<br>
                      <br>
                      Le 10-09-22 19:49, « Paul Aslin » <<a href="http://fabricatorgeneral@yahoo.com" target="_blank">fabricatorgeneral@yahoo.com</a>>

                      a écrit :<br>
                      <br>
                    </span></font>
                  <blockquote><font face="Calibri, Verdana, Helvetica,
                      Arial"><span style="font-size: 12pt;"><br>
                        <br>
                        <br>
                        --- On Thu, 23/9/10, Dave A <<a href="http://dave@realmofconcepts.com" target="_blank">dave@realmofconcepts.com</a>>

                        wrote:<br>
                        <br>
                        > From: Dave A <<a href="http://dave@realmofconcepts.com" target="_blank">dave@realmofconcepts.com</a>><br>
                        > Subject: [X3D-Public] Any way to do a
                        'LineSensor' (Like PlaneSensor but in one
                        dimension)<br>
                        > To:<br>
                        > Cc: "<a href="http://x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>" <<a href="http://x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>
                        > Received: Thursday, 23 September, 2010,
                        8:27 AM<br>
                        >  I need to be able to drag objects<br>
                        > along one dimension only, and I'd like the
                        interaction to<br>
                        > look natural too.<br>
                        ><br>
                        > A PlaneSensor can let you drag things, and
                        restrict<br>
                        > *movement* using the min/max fields (set
                        them to the same<br>
                        > value, say, 0).<br>
                        ><br>
                        > The problem is, they *detect* mouse
                        movement in both<br>
                        > directions, and arbitrary movement always
                        produces some<br>
                        > movement in both directions. The result is,
                        for example,<br>
                        > moving the mouse up/down the screen
                        produces movement<br>
                        > right/left in the object. This is bad.<br>
                        ><br>
                        > So, is there any way to restrict the
                        detection of mouse<br>
                        > movement? Is there a different type of
                        sensor available. I'm<br>
                        > using Contact, maybe they have something
                        handy?<br>
                        <br>
                        Just use a Script node to filter the output and
                        set the unwanted value to zero.<br>
                        <br>
                        Why to people on this list demand new nodes for
                        something that can be solved with a few lines of
                        scripting ?<br>
                        <br>
                        <br>
                             <br>
                        <br>
                        <br>
                        _______________________________________________<br>
                        X3D-Public mailing list<br>
                        <a href="http://X3D-Public@web3d.org" target="_blank">X3D-Public@web3d.org</a><br>
                        <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
                        <br>
                      </span></font></blockquote>
                  <pre><fieldset></fieldset>
_______________________________________________
X3D-Public mailing list
<a href="mailto:X3D-Public@web3d.org" target="_blank">X3D-Public@web3d.org</a>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>
</pre>
                </blockquote>
              </div>
            </div>
          </div>
          <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" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
          <br>
        </blockquote>
      </div>
      <br>
      <br clear="all">
      <br>
      -- <br>
      Tony Parisi                             <a href="mailto:tparisi@gmail.com" target="_blank">tparisi@gmail.com</a><br>
      CTO at Large                         415.902.8002<br>
      <br>
    </blockquote>
  </div></div></div>

</blockquote></div><br><br clear="all"><br>-- <br>Tony Parisi                             <a href="mailto:tparisi@gmail.com">tparisi@gmail.com</a><br>CTO at Large                         415.902.8002<br><br>