For those who haven't seen it yet, we got our first wiki edit by a named Linden and it contains some very useful information.

http://www.libsecondlife.org/protocol/index.php/ImprovedTerseObjectUpdate

I'm writing the code right now to implement object tracking (prims and avatars both) in to libsl, and made an initial commit to kind of lay out the outline of how it will work, although after looking at the situation closer it's going to change. I think the best way to index objects is two hashtables in each region, one for prims and one for avatars, that are indexed on the local id numbers. Helper functions will assist with global prim/avatar lookups. Four new delegates will be available to client apps, to track newly seen prims/avatars, and movement updates for prims/avatars. When it's done this will be a big milestone in the project, as libsl clients will finally be aware of the virtual world around them. There's also been some speculation that moving the avatar is not far off.

The only work that needs to be done right now is some framework code in libsl for tracking all of this new information, and debugging the dequantization function(s). The ImprovedTerseObjectUpdate packet uses 16-bit values to store all of it's vectors and rotations, which need to be converted back in to 32-bit floating point values so LLVector3 and LLQuaternion classes can be built. I threw in an early guess at approximately how it might work in Helpers.Dequantize() but it will surely need to be tested and corrected.

John Hurliman

_______________________________________________
libsecondlife-dev mailing list
libsecondlife-dev@gna.org
https://mail.gna.org/listinfo/libsecondlife-dev

Reply via email to