[fluxus] equality commit (Re: interactivity issues)

Dave Griffiths dave at pawfal.org
Mon Jul 17 08:08:32 PDT 2006


> Dave Griffiths wrote:
>> I'm not sure, but the problem was that mouse-over returns something
>> which
>> you can't accurately test equality on, so I don't think you can code a
>> way
>> out of it without using something else like the transform or a special
>> id
>> pdata value on the primitive.
>>
>> This is fixed now anyway (in cvs) and I understand the problem a lot
>> better now (the bottom line for Claude is to update and use assoc or
>> equal?).
>
> Done, and it works!  Thanks :)
>
>> Equality is one of those things that needs a little more explanation
>> than
>> you'd think.
>
> Enlightening explanation, thanks :)
>
>
> Still got the weird "camera must be right on top of an object for it to
> register a (mouse-over)" issue, though.

Have you got the sky sphere around everything? mouse-over is a little dumb
in that it only returns one primitive - the closest one to the camera in z
depth (really it should return a list of all the primitives in z order or
something) this means that it can get confused when objects overlap - and
my brain is too consumed by eq? atm to know how it will deal with things
scaled negative :)

Generally to get round this you should turn off anything which you don't
want selected with setting (selectable 0) on them while grabbed, this will
also speed up the calculation greatly.

FWIW, mouse-over causes a rerender of the scene using opengl selection
mechanism - ie you give it a view matrix which consists of a small area
around the mouse pointer, and it returns a list of all the objects which
got passed the clipping test. Fluxus finds the closest one and returns the
primitive id for it.

cheers,

dave




More information about the Fluxus mailing list