Hello,
I am a bit confused about the way avatars are supposed to work. This
seems to be handeled inconsistently across the VOS code. Maybe
someone could explain the correct use to me.
The most simple case is mesh, which just creates a local vobject and
tries to add this to the remote site sector. I believe this is maybe
a remnant of happier ACL-free days, since inserting children is
usually forbidden, and indeed fails when trying
$ ./mesh -a kao vip://interreality.org/world
permission to insert vip://alu.mi.fu-berlin.de:4231/kao denied
The most sophisticated (and working) avatar is that of Ter'angreal.
It *requires* the remote sector to be a compound factory, and uses
this to create remote puppet avatar. The step of inserting the avatar
into the sector seems to be unnecessary, apparenty the factory
already does it (?), however the avatar code has a failsafe (?) for
this:
avatar.cc:420
try {
avatar->findParent(sector);
} catch(NoSuchObjectError) {
sector->insertChild(-1, getNick(), avatar);
goToViewpoint("default-viewpoint");
}
What does Ter'angreal do when the remote sector is not a compound
factory? Use a local pseudo-avatar? Try to construct it manually?
Another point that confuses me here is the fact that the puppet
avatar does not have a misc:nick property at the beginning, but this
is added only when setNick() is called. Is it really such a good idea
to expect the remote (proxy) vobjects to fix the local vobjects
infrastructure? IMHO such "intrinsic" properties should be added on
local creation...
Otherwise, access control will either hinder this kind of repair, or
must be set to be wide open and thus becomes useless. In any case,
this seems to me like a rather strange behavior, a bit like saying,
"Sure, I have a phone, you can call me, but you have to erect some
phone masts and lay some wires first"... But changing this is
probably something for 0.24.
Regards,
Karsten Otto (kao)
_______________________________________________
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d