[Opensim-dev] clients, agents, avatars, ODE
dan miller
danbmil99 at yahoo.com
Wed Sep 19 22:17:38 UTC 2007
from my narrow POV as physics guy, what should happen is this:
when a client *really* enters a region, thru logon or across a border,
AddAvatar() should be called, so the avatar can interact with the
environment (walk on terrain, bump into prims/other avs...)
when the client leaves the region, RemoveAvatar() is called to remove it
from the physics for that region.
How the code got into the state it's in, I have no idea. Some of this was
inherited from pre-sugilite days, when things were mighty different.
I'm willing to get into the logistics of the rest of the codebase to some
degree, but frankly I think my energies are better spent staying focused on
physics issues. While not ideal, the physics engine plugin API is a
reasonable first pass, and is a good point of interaction between physics
and the rest of the project.
What I think might be helpful would be for me to add debug messages along
the lines of:
[PHYSICS] AddAvatar called; avatar count for this scene is now X
[PHYSICS] RemoveAvatar called; avatar count for this scene is now X
or something along those lines. Then you geniuses can mull over the code
and mangle it into something that makes sense from the physics angle.
Does this sound reasonable?
-dan
--- Stefan Andersson <stefan at tribalmedia.se> wrote:
> I guess you noticed by now, but I have done extensive restructuring in
> these areas yesterday and today; still, I suspect there is something odd
> (from looking at the code) with the chain of events. Also, we're
> re-creating physActors everytime we move into a region, but we just detach
> it from the physScene, we don't explicitly destroy (close) the old one
> when we leave; which I would suspect a native-wrapper would very much like
> us to.
>
> /Stefan
>
>
>
> > Date: Tue, 18 Sep 2007 23:00:53 -0700> From: danbmil99 at yahoo.com> To:
> opensim-dev at lists.berlios.de> Subject: Re: [Opensim-dev] clients, agents,
> avatars, ODE> > followup to chat with lbsa71:> > in ClientView.cs, we
> have:> > this.m_scene.AddNewClient(this, false);> > so it's always passing
> child=false. But InitNewClient is called by> AuthUser, which is spawned as
> a thread by ClientView, and... climbing up the> stack of calls, we get
> OnReceivedData creating a new client thread when it> gets a
> UseCircuitCode. This seems to happen once for each region, and I> have no
> idea how to tell what is a child and what is the 'real' client, to>
> hopefully pass it down the call stack or something of that nature.> >
> -dan> > > _______________________________________________> Opensim-dev
> mailing list> Opensim-dev at lists.berlios.de>
https://lists.berlios.de/mailman/listinfo/opensim-dev
More information about the Opensim-dev
mailing list