Dear Daniel,

thanks for your hints.

> Amway, sorry to ramble.

That is exactly what I wanted: discussion of concepts shedding
light from different angles onto them.

> This sounds very similar to what I did in the KeyNavigateTest example
> ...
> Before modifying the TransformGroup using the super-class KeyBehavior the
> KeyCollisionBehavior calls the isCollision method (passing the new modified
> Transform3D) on the CollisionDetector. If the return value is true the
> modification is applied to the TransformGroup, otherwise it is discarded.

Yes, but my approach will allow the cooperating class to modify
the transform, i.e. to allow 'sliding along the wall', when Behavior
approaches the wall in an angle non perpendicular. And there is
no special handling of this inside the Behavior itself, all done
in the delegates.

> I think your second approach is closer to what I did for the Particle System
> code I checked into the J3D.ORG repository. A pipeline of MovementFunctions
> is defined that cooperate/compete to control a Particle's position. The

I still have to check that code. But I think my first concept of
allowing multiple Listeners on the Behavior comes pretty close to
a pipeline: each Listener is called by the Behavior in the
order of registration, and every Listener is allowed to modify
the same transform in turn. If no Listener is registered the Behavior
just is normal, non restricted one.

In a scenario with multiple Listeners the first one i.e. could
attempt to keep the avatars feet on the ground, accelerating it
down, if the feet are above ground. The second one could be
responsible for collision avoidance against obstacles.

> I don't think I'd like a system that used competing behaviors however.
> Behavior could be scheduled to run on independent threads, and while Java 3D
> provides some guarantees about when certain classes of behavior are run,
> historically this has been unreliable. I think you might find that you'd get
> jitter (see the BillboardTest example from the book).

Ah, good hint.

So I'll attempt to implement the Listener approach. Technically
it isn't really harder to do than the simplistic approach and I
have sort of pipelining from the beginning.

> Let me know how things work out.

I'll put the code and a sample app on the web, when it's ready,
maybe someone is interested to use it.

thanks and regards

Georg
 ___   ___
| + | |__    Georg Rehfeld      Woltmanstr. 12     20097 Hamburg
|_|_\ |___   [EMAIL PROTECTED]           +49 (40) 23 53 27 10

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to