Re: [Opensim-dev] Proposal: Change the OnDeRezObject event
So then would something in the LL protocol modules keep track of a localID/UUID relationship? LocalIDs are required for describing object hierarchies to the viewer. I thought they were also the primary reference for any in-scene object and UUIDs were more related to asset storage and scripted features. On Fri, Jul 10, 2009 at 9:17 AM, Teravus Ovares wrote: > It is feasible. It would just require a standard way of referencing > objects in all modules(URI?). unsigned integers are fast, small and > well supported. Potentially the binary data in a UUID could be fit > in the memory space and be just as fast. > > Regards > > Teravus > > On Fri, Jul 10, 2009 at 12:13 PM, Melanie wrote: > > Well, the problem is that there are two ids for each prim, that need > > to be translated between. I don't now physics, because looking at > > that math makes my head hurt, so I don't. > > > > Is it at all feasible then, to not have a local ID? > > > > Melanie > > > > Teravus Ovares wrote: > >> One connected functionality here, is script engine events. These are > >> all done via localID. Additionally, physics collision events are > >> generated with 'localid' because most physics engines either have a > >> sequential numeric id for objects or have a means to store them.It > >> may not have a bearing on the derez event, however, I wanted to > >> mention them since 'moving localID out of core' was brought up. > >> It's not really a Linden concept really.. it's a Havok concept > >> that they adopted. > >> > >> Regards > >> > >> Teravus > >> > >> On Fri, Jul 10, 2009 at 11:58 AM, Melanie wrote: > >>> Definitely +1. However, here's a thought: > >>> > >>> Could we not try to take this as a starting point for moving the > >>> localID to UUID conversion into the client view, e.g. make it a > >>> List and translate LocalID to UUID before the call. I believe > >>> we should work on getting LocalID out of core, it's a Linden concept > >>> other viewers probably won't have. Having just ONE type of ID (the > >>> UUID) would make implementing other client stacks easier. > >>> > >>> Melanie > >>> > >>> > >>> MW wrote: > In the current OnDeRezObject event, only a single localID of a prim is > passed at a time. > > So if multiple objects are DeRezzed in one action, even though all the > ids are sent in a single packet. We have code in the ClientView that loops > through that list and for each id triggers the OnDeRezObject event. > > I propose moving that loop into the Scene handling of the action > (Scene.DeRezObject(...)) so that the event is only triggered once per > packet and if there are multiple prims to derezz in a packet, the scene code > can loop through them and deal with them as required. > > So current the delegate of the OnDeRezObject event is : > > public delegate void DeRezObject( > IClientAPI remoteClient, uint localID, UUID groupID, > DeRezAction action, UUID destinationID); > > I propose changing it to: > > public delegate void DeRezObject( > IClientAPI remoteClient, List localIDs, UUID groupID, > DeRezAction action, UUID destinationID); > > It has to be better to have only one event triggering rather than > possibly hundreds for the same user action. > > My next step (which I'm currently in the middle of in my local > version) is to handle the taking of those multiple prims into inventory and > only making a single inventory item, rather than the current method of a > separate inventory item for each prim. But that will be detailed in a > different proposal.. > > > > > > > > > > ___ > Opensim-dev mailing list > Opensim-dev@lists.berlios.de > https://lists.berlios.de/mailman/listinfo/opensim-dev > >>> ___ > >>> Opensim-dev mailing list > >>> Opensim-dev@lists.berlios.de > >>> https://lists.berlios.de/mailman/listinfo/opensim-dev > >>> > >> ___ > >> Opensim-dev mailing list > >> Opensim-dev@lists.berlios.de > >> https://lists.berlios.de/mailman/listinfo/opensim-dev > >> > >> > > ___ > > Opensim-dev mailing list > > Opensim-dev@lists.berlios.de > > https://lists.berlios.de/mailman/listinfo/opensim-dev > > > ___ > Opensim-dev mailing list > Opensim-dev@lists.berlios.de > https://lists.berlios.de/mailman/listinfo/opensim-dev > ___ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev
Re: [Opensim-dev] Proposal: Change the OnDeRezObject event
And thanks for doing it on the mailing list vs IRC. OpenSIM isn't my day job so I can't follow IRC as closely. Doing it here helps me follow things as I can and keep up the "learning". Mike On Fri, 2009-07-10 at 16:17 +, MW wrote: > Yeah this might be going over the top, doing proposals down to this > level, but its good pratice anyway :) > > --- On Fri, 10/7/09, Charles Krinke wrote: > > From: Charles Krinke > Subject: Re: [Opensim-dev] Proposal: Change the OnDeRezObject > event > To: opensim-dev@lists.berlios.de > Date: Friday, 10 July, 2009, 4:44 PM > > Dear Mw: > > Thank you for sharing your technical thoughts as you work > through them. It is my fervent hope that others will share > similarly so that some of us 'lesser wizards' may learn a bit > more by reading how OpenSim is evolving. > > Charles > ___ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev
Re: [Opensim-dev] Proposal: Change the OnDeRezObject event
Yeah this might be going over the top, doing proposals down to this level, but its good pratice anyway :) --- On Fri, 10/7/09, Charles Krinke wrote: From: Charles Krinke Subject: Re: [Opensim-dev] Proposal: Change the OnDeRezObject event To: opensim-dev@lists.berlios.de Date: Friday, 10 July, 2009, 4:44 PM Dear Mw: Thank you for sharing your technical thoughts as you work through them. It is my fervent hope that others will share similarly so that some of us 'lesser wizards' may learn a bit more by reading how OpenSim is evolving. Charles From: MW To: opensim-dev@lists.berlios.de Sent: Friday, July 10, 2009 7:39:06 AM Subject: [Opensim-dev] Proposal: Change the OnDeRezObject event In the current OnDeRezObject event, only a single localID of a prim is passed at a time. So if multiple objects are DeRezzed in one action, even though all the ids are sent in a single packet. We have code in the ClientView that loops through that list and for each id triggers the OnDeRezObject event. I propose moving that loop into the Scene handling of the action (Scene.DeRezObject(...)) so that the event is only triggered once per packet and if there are multiple prims to derezz in a packet, the scene code can loop through them and deal with them as required. So current the delegate of the OnDeRezObject event is : public delegate void DeRezObject( IClientAPI remoteClient, uint localID, UUID groupID, DeRezAction action, UUID destinationID); I propose changing it to: public delegate void DeRezObject( IClientAPI remoteClient, List localIDs, UUID groupID, DeRezAction action, UUID destinationID); It has to be better to have only one event triggering rather than possibly hundreds for the same user action. My next step (which I'm currently in the middle of in my local version) is to handle the taking of those multiple prims into inventory and only making a single inventory item, rather than the current method of a separate inventory item for each prim. But that will be detailed in a different proposal.. -Inline Attachment Follows- ___ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev ___ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev
Re: [Opensim-dev] Proposal: Change the OnDeRezObject event
It is feasible. It would just require a standard way of referencing objects in all modules(URI?). unsigned integers are fast, small and well supported. Potentially the binary data in a UUID could be fit in the memory space and be just as fast. Regards Teravus On Fri, Jul 10, 2009 at 12:13 PM, Melanie wrote: > Well, the problem is that there are two ids for each prim, that need > to be translated between. I don't now physics, because looking at > that math makes my head hurt, so I don't. > > Is it at all feasible then, to not have a local ID? > > Melanie > > Teravus Ovares wrote: >> One connected functionality here, is script engine events. These are >> all done via localID. Additionally, physics collision events are >> generated with 'localid' because most physics engines either have a >> sequential numeric id for objects or have a means to store them. It >> may not have a bearing on the derez event, however, I wanted to >> mention them since 'moving localID out of core' was brought up. >> It's not really a Linden concept really.. it's a Havok concept >> that they adopted. >> >> Regards >> >> Teravus >> >> On Fri, Jul 10, 2009 at 11:58 AM, Melanie wrote: >>> Definitely +1. However, here's a thought: >>> >>> Could we not try to take this as a starting point for moving the >>> localID to UUID conversion into the client view, e.g. make it a >>> List and translate LocalID to UUID before the call. I believe >>> we should work on getting LocalID out of core, it's a Linden concept >>> other viewers probably won't have. Having just ONE type of ID (the >>> UUID) would make implementing other client stacks easier. >>> >>> Melanie >>> >>> >>> MW wrote: In the current OnDeRezObject event, only a single localID of a prim is passed at a time. So if multiple objects are DeRezzed in one action, even though all the ids are sent in a single packet. We have code in the ClientView that loops through that list and for each id triggers the OnDeRezObject event. I propose moving that loop into the Scene handling of the action (Scene.DeRezObject(...)) so that the event is only triggered once per packet and if there are multiple prims to derezz in a packet, the scene code can loop through them and deal with them as required. So current the delegate of the OnDeRezObject event is : public delegate void DeRezObject( IClientAPI remoteClient, uint localID, UUID groupID, DeRezAction action, UUID destinationID); I propose changing it to: public delegate void DeRezObject( IClientAPI remoteClient, List localIDs, UUID groupID, DeRezAction action, UUID destinationID); It has to be better to have only one event triggering rather than possibly hundreds for the same user action. My next step (which I'm currently in the middle of in my local version) is to handle the taking of those multiple prims into inventory and only making a single inventory item, rather than the current method of a separate inventory item for each prim. But that will be detailed in a different proposal.. ___ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev >>> ___ >>> Opensim-dev mailing list >>> Opensim-dev@lists.berlios.de >>> https://lists.berlios.de/mailman/listinfo/opensim-dev >>> >> ___ >> Opensim-dev mailing list >> Opensim-dev@lists.berlios.de >> https://lists.berlios.de/mailman/listinfo/opensim-dev >> >> > ___ > Opensim-dev mailing list > Opensim-dev@lists.berlios.de > https://lists.berlios.de/mailman/listinfo/opensim-dev > ___ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev
Re: [Opensim-dev] Proposal: Change the OnDeRezObject event
Well, the problem is that there are two ids for each prim, that need to be translated between. I don't now physics, because looking at that math makes my head hurt, so I don't. Is it at all feasible then, to not have a local ID? Melanie Teravus Ovares wrote: > One connected functionality here, is script engine events. These are > all done via localID. Additionally, physics collision events are > generated with 'localid' because most physics engines either have a > sequential numeric id for objects or have a means to store them.It > may not have a bearing on the derez event, however, I wanted to > mention them since 'moving localID out of core' was brought up. > It's not really a Linden concept really.. it's a Havok concept > that they adopted. > > Regards > > Teravus > > On Fri, Jul 10, 2009 at 11:58 AM, Melanie wrote: >> Definitely +1. However, here's a thought: >> >> Could we not try to take this as a starting point for moving the >> localID to UUID conversion into the client view, e.g. make it a >> List and translate LocalID to UUID before the call. I believe >> we should work on getting LocalID out of core, it's a Linden concept >> other viewers probably won't have. Having just ONE type of ID (the >> UUID) would make implementing other client stacks easier. >> >> Melanie >> >> >> MW wrote: >>> In the current OnDeRezObject event, only a single localID of a prim is >>> passed at a time. >>> >>> So if multiple objects are DeRezzed in one action, even though all the ids >>> are sent in a single packet. We have code in the ClientView that loops >>> through that list and for each id triggers the OnDeRezObject event. >>> >>> I propose moving that loop into the Scene handling of the action >>> (Scene.DeRezObject(...)) so that the event is only triggered once per >>> packet and if there are multiple prims to derezz in a packet, the scene >>> code can loop through them and deal with them as required. >>> >>> So current the delegate of the OnDeRezObject event is : >>> >>> public delegate void DeRezObject( >>> IClientAPI remoteClient, uint localID, UUID groupID, DeRezAction >>> action, UUID destinationID); >>> >>> I propose changing it to: >>> >>> public delegate void DeRezObject( >>> IClientAPI remoteClient, List localIDs, UUID groupID, >>> DeRezAction action, UUID destinationID); >>> >>> It has to be better to have only one event triggering rather than possibly >>> hundreds for the same user action. >>> >>> My next step (which I'm currently in the middle of in my local version) is >>> to handle the taking of those multiple prims into inventory and only making >>> a single inventory item, rather than the current method of a separate >>> inventory item for each prim. But that will be detailed in a different >>> proposal.. >>> >>> >>> >>> >>> >>> >>> >>> >>> ___ >>> Opensim-dev mailing list >>> Opensim-dev@lists.berlios.de >>> https://lists.berlios.de/mailman/listinfo/opensim-dev >> ___ >> Opensim-dev mailing list >> Opensim-dev@lists.berlios.de >> https://lists.berlios.de/mailman/listinfo/opensim-dev >> > ___ > Opensim-dev mailing list > Opensim-dev@lists.berlios.de > https://lists.berlios.de/mailman/listinfo/opensim-dev > > ___ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev
Re: [Opensim-dev] Proposal: Change the OnDeRezObject event
One connected functionality here, is script engine events. These are all done via localID. Additionally, physics collision events are generated with 'localid' because most physics engines either have a sequential numeric id for objects or have a means to store them.It may not have a bearing on the derez event, however, I wanted to mention them since 'moving localID out of core' was brought up. It's not really a Linden concept really.. it's a Havok concept that they adopted. Regards Teravus On Fri, Jul 10, 2009 at 11:58 AM, Melanie wrote: > Definitely +1. However, here's a thought: > > Could we not try to take this as a starting point for moving the > localID to UUID conversion into the client view, e.g. make it a > List and translate LocalID to UUID before the call. I believe > we should work on getting LocalID out of core, it's a Linden concept > other viewers probably won't have. Having just ONE type of ID (the > UUID) would make implementing other client stacks easier. > > Melanie > > > MW wrote: >> In the current OnDeRezObject event, only a single localID of a prim is >> passed at a time. >> >> So if multiple objects are DeRezzed in one action, even though all the ids >> are sent in a single packet. We have code in the ClientView that loops >> through that list and for each id triggers the OnDeRezObject event. >> >> I propose moving that loop into the Scene handling of the action >> (Scene.DeRezObject(...)) so that the event is only triggered once per >> packet and if there are multiple prims to derezz in a packet, the scene code >> can loop through them and deal with them as required. >> >> So current the delegate of the OnDeRezObject event is : >> >> public delegate void DeRezObject( >> IClientAPI remoteClient, uint localID, UUID groupID, DeRezAction >> action, UUID destinationID); >> >> I propose changing it to: >> >> public delegate void DeRezObject( >> IClientAPI remoteClient, List localIDs, UUID groupID, >> DeRezAction action, UUID destinationID); >> >> It has to be better to have only one event triggering rather than possibly >> hundreds for the same user action. >> >> My next step (which I'm currently in the middle of in my local version) is >> to handle the taking of those multiple prims into inventory and only making >> a single inventory item, rather than the current method of a separate >> inventory item for each prim. But that will be detailed in a different >> proposal.. >> >> >> >> >> >> >> >> >> ___ >> Opensim-dev mailing list >> Opensim-dev@lists.berlios.de >> https://lists.berlios.de/mailman/listinfo/opensim-dev > ___ > Opensim-dev mailing list > Opensim-dev@lists.berlios.de > https://lists.berlios.de/mailman/listinfo/opensim-dev > ___ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev
Re: [Opensim-dev] Proposal: Change the OnDeRezObject event
Definitely +1. However, here's a thought: Could we not try to take this as a starting point for moving the localID to UUID conversion into the client view, e.g. make it a List and translate LocalID to UUID before the call. I believe we should work on getting LocalID out of core, it's a Linden concept other viewers probably won't have. Having just ONE type of ID (the UUID) would make implementing other client stacks easier. Melanie MW wrote: > In the current OnDeRezObject event, only a single localID of a prim is passed > at a time. > > So if multiple objects are DeRezzed in one action, even though all the ids > are sent in a single packet. We have code in the ClientView that loops > through that list and for each id triggers the OnDeRezObject event. > > I propose moving that loop into the Scene handling of the action > (Scene.DeRezObject(...)) so that the event is only triggered once per packet > and if there are multiple prims to derezz in a packet, the scene code can > loop through them and deal with them as required. > > So current the delegate of the OnDeRezObject event is : > > public delegate void DeRezObject( > IClientAPI remoteClient, uint localID, UUID groupID, DeRezAction > action, UUID destinationID); > > I propose changing it to: > > public delegate void DeRezObject( > IClientAPI remoteClient, List localIDs, UUID groupID, > DeRezAction action, UUID destinationID); > > It has to be better to have only one event triggering rather than possibly > hundreds for the same user action. > > My next step (which I'm currently in the middle of in my local version) is to > handle the taking of those multiple prims into inventory and only making a > single inventory item, rather than the current method of a separate inventory > item for each prim. But that will be detailed in a different proposal.. > > > > > > > > > ___ > Opensim-dev mailing list > Opensim-dev@lists.berlios.de > https://lists.berlios.de/mailman/listinfo/opensim-dev ___ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev
Re: [Opensim-dev] Proposal: Change the OnDeRezObject event
Dear Mw: Thank you for sharing your technical thoughts as you work through them. It is my fervent hope that others will share similarly so that some of us 'lesser wizards' may learn a bit more by reading how OpenSim is evolving. Charles From: MW To: opensim-dev@lists.berlios.de Sent: Friday, July 10, 2009 7:39:06 AM Subject: [Opensim-dev] Proposal: Change the OnDeRezObject event In the current OnDeRezObject event, only a single localID of a prim is passed at a time. So if multiple objects are DeRezzed in one action, even though all the ids are sent in a single packet. We have code in the ClientView that loops through that list and for each id triggers the OnDeRezObject event. I propose moving that loop into the Scene handling of the action (Scene.DeRezObject(...)) so that the event is only triggered once per packet and if there are multiple prims to derezz in a packet, the scene code can loop through them and deal with them as required. So current the delegate of the OnDeRezObject event is : public delegate void DeRezObject( IClientAPI remoteClient, uint localID, UUID groupID, DeRezAction action, UUID destinationID); I propose changing it to: public delegate void DeRezObject( IClientAPI remoteClient, List localIDs, UUID groupID, DeRezAction action, UUID destinationID); It has to be better to have only one event triggering rather than possibly hundreds for the same user action. My next step (which I'm currently in the middle of in my local version) is to handle the taking of those multiple prims into inventory and only making a single inventory item, rather than the current method of a separate inventory item for each prim. But that will be detailed in a different proposal.___ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev
Re: [Opensim-dev] Proposal: Change the OnDeRezObject event
Fwiw, +1 :) Cheers James On Fri, Jul 10, 2009 at 10:25 AM, Teravus Ovares wrote: > +1 on this. > > Regards > > Teravus > > On Fri, Jul 10, 2009 at 10:39 AM, MW wrote: > > In the current OnDeRezObject event, only a single localID of a prim is > > passed at a time. > > > > So if multiple objects are DeRezzed in one action, even though all the > ids > > are sent in a single packet. We have code in the ClientView that loops > > through that list and for each id triggers the OnDeRezObject event. > > > > I propose moving that loop into the Scene handling of the action > > (Scene.DeRezObject(...)) so that the event is only triggered once per > > packet and if there are multiple prims to derezz in a packet, the scene > code > > can loop through them and deal with them as required. > > > > So current the delegate of the OnDeRezObject event is : > > > > public delegate void DeRezObject( > > IClientAPI remoteClient, uint localID, UUID groupID, DeRezAction > > action, UUID destinationID); > > > > I propose changing it to: > > > > public delegate void DeRezObject( > > IClientAPI remoteClient, List localIDs, UUID groupID, > > DeRezAction action, UUID destinationID); > > > > It has to be better to have only one event triggering rather than > possibly > > hundreds for the same user action. > > > > My next step (which I'm currently in the middle of in my local version) > is > > to handle the taking of those multiple prims into inventory and only > making > > a single inventory item, rather than the current method of a separate > > inventory item for each prim. But that will be detailed in a different > > proposal. > > > > > > ___ > > Opensim-dev mailing list > > Opensim-dev@lists.berlios.de > > https://lists.berlios.de/mailman/listinfo/opensim-dev > > > > > ___ > Opensim-dev mailing list > Opensim-dev@lists.berlios.de > https://lists.berlios.de/mailman/listinfo/opensim-dev > -- === http://osgrid.org http://del.icio.us/SPQR http://twitter.com/jstallings2 http://www.linkedin.com/pub/5/770/a49 ___ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev
Re: [Opensim-dev] Proposal: Change the OnDeRezObject event
+1 on this. Regards Teravus On Fri, Jul 10, 2009 at 10:39 AM, MW wrote: > In the current OnDeRezObject event, only a single localID of a prim is > passed at a time. > > So if multiple objects are DeRezzed in one action, even though all the ids > are sent in a single packet. We have code in the ClientView that loops > through that list and for each id triggers the OnDeRezObject event. > > I propose moving that loop into the Scene handling of the action > (Scene.DeRezObject(...)) so that the event is only triggered once per > packet and if there are multiple prims to derezz in a packet, the scene code > can loop through them and deal with them as required. > > So current the delegate of the OnDeRezObject event is : > > public delegate void DeRezObject( > IClientAPI remoteClient, uint localID, UUID groupID, DeRezAction > action, UUID destinationID); > > I propose changing it to: > > public delegate void DeRezObject( > IClientAPI remoteClient, List localIDs, UUID groupID, > DeRezAction action, UUID destinationID); > > It has to be better to have only one event triggering rather than possibly > hundreds for the same user action. > > My next step (which I'm currently in the middle of in my local version) is > to handle the taking of those multiple prims into inventory and only making > a single inventory item, rather than the current method of a separate > inventory item for each prim. But that will be detailed in a different > proposal. > > > ___ > Opensim-dev mailing list > Opensim-dev@lists.berlios.de > https://lists.berlios.de/mailman/listinfo/opensim-dev > > ___ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev