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>