Simulating hirarchial linking - PRIM_LINK
|
|
Christopher Omega
Oxymoron
Join date: 28 Mar 2003
Posts: 1,828
|
10-20-2005 22:48
I just ran into a scenerio where this would be incredibly useful ( this thread). A certain portion of a linked set needed to rotate at exactly the same instant. Because we dont have hirarchial links, the poster had to settle with all the prims moving in an unsynchronized fashion. I propose a PRIM_LINK constant be added to the llSetPrimitiveParams repertoire. Following the constant is one integer specifying the link number (or LINK* constant) the parameters are applied to. If PRIM_LINK is specified, the params are not applied to the prim the script is in, unless the prim is mentioned explicitly by PRIM_LINK's parameters. For example: llSetPrimitiveParams([PRIM_LINK, LINK_SET, PRIM_MATERIAL, PRIM_MATERIAL_GLASS]); Sets all the primitives in the link set to glass. llSetPrimitiveParams([PRIM_LINK, 2, PRIM_SIZE, <1, 1, 1>]); Scales the prim who's link number is 2 to <1, 1, 1>. It still doesnt provide all the features hirarchial linking would, but it would be a step in that direction. Vote for it here! ==Chris
|
|
Keknehv Psaltery
Hacker
Join date: 11 Apr 2005
Posts: 1,185
|
03-07-2006 14:54
Let me wake this thread from its long sleep...
While Christopher's original purpose was to simulate hierarchical linking, this sort of addition would work for llSetLinkTexture as well. This would significantly reduce the number of necessary scripts for many objects, which currently have many "slave" prims for displaying things, that must be communicated with using link messages.
With this sort of thing, these scripts would no longer be necessary.
While we're at it, how about adding the parameters in llTextureAnim to llSetPrimitiveParameters. This would make every (important) feature of a prim accessible by this function.
While we're at it, how about adding llDetectedLinkName and llDetectedLinkDesc to the detected functions? In this way, we could make large linked objects with the main script knowing what was clicked simply by the name of the link.
Lindens, hear our cry!
(Everyone, please contribute votes...)
|
|
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
|
llSetLinkParameters
03-08-2006 07:47
I'd much rather make this a new call, llSetLinkParameters. This has been discussed before, with a call like llSetLinkParameters(integer link, list parameters);, and a corresponding llGetLinkParameters.
But that wouldn't solve your problem, unless you want to target *all* the links in the set, or just one. And for hierarchical linking what you're really looking for is a subset of those links.
So better would be llSetLinkParameters(list links, list parameters);.
|
|
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
|
03-08-2006 07:50
From: Keknehv Psaltery llDetectedLinkName You mean llGetLinkName(llDetectedLinkNumber(i));? I'd love llGetLinkDesc and llGetInventoryDesc, though... and llSetLink/InventoryDesc as well. That would give us a nice big place to store params without having to spam the asset server with writable notecards.
|
|
Keknehv Psaltery
Hacker
Join date: 11 Apr 2005
Posts: 1,185
|
03-09-2006 17:07
From: Argent Stonecutter I'd much rather make this a new call, llSetLinkParameters. This has been discussed before, with a call like llSetLinkParameters(integer link, list parameters);, and a corresponding llGetLinkParameters.
But that wouldn't solve your problem, unless you want to target *all* the links in the set, or just one. And for hierarchical linking what you're really looking for is a subset of those links.
So better would be llSetLinkParameters(list links, list parameters);. No, I'm not thinking of hierarchical linking, I'm just talking about setting link parameters. llSetLinkParameters would be fine with me...
|
|
Christopher Omega
Oxymoron
Join date: 28 Mar 2003
Posts: 1,828
|
03-11-2006 17:44
From: Argent Stonecutter I'd much rather make this a new call, llSetLinkParameters. This has been discussed before, with a call like llSetLinkParameters(integer link, list parameters);, and a corresponding llGetLinkParameters.
But that wouldn't solve your problem, unless you want to target *all* the links in the set, or just one. And for hierarchical linking what you're really looking for is a subset of those links.
So better would be llSetLinkParameters(list links, list parameters);. Both of our implementations have a significant limitation. Say you want to apply two different sets of parameters to two different parts of the link set at the same time. I dont think either of our proposals would work in this case. I can see the case where you'd want to move one particular prim in one direction, and another in a completely different direction, at the same time. We'd need to be able to say something like "the first N parameters you encounter, apply here, the rest there." ==Chris
|
|
Kaiser Bogomil
Registered User
Join date: 15 Mar 2006
Posts: 20
|
03-21-2006 12:28
I wouldn't even care if the textures or other actions/properties worked on groups if I could only nest linked groups.
I understand that linked objects are composites -- not primitives and that edit actions work on primitives. Its a pain in the ass to have to mark a group un-physical, unlink them ALL, adjust one or two prims, get in postion to select an object, move again to select the next object... link them all back & then make the group physical again!
Mac Paint shipped with the Macintosh I in 1982. It had nestable groups. Its not that hard. -- well, not with a good architecture. Its really nothing new.
|
|
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
|
03-21-2006 12:45
From: Christopher Omega I just ran into a scenerio where this would be incredibly useful ( this thread). A certain portion of a linked set needed to rotate at exactly the same instant. Because we dont have hirarchial links, the poster had to settle with all the prims moving in an unsynchronized fashion. I propose a PRIM_LINK constant be added to the llSetPrimitiveParams repertoire. Following the constant is one integer specifying the link number (or LINK* constant) the parameters are applied to. If PRIM_LINK is specified, the params are not applied to the prim the script is in, unless the prim is mentioned explicitly by PRIM_LINK's parameters. For example: llSetPrimitiveParams([PRIM_LINK, LINK_SET, PRIM_MATERIAL, PRIM_MATERIAL_GLASS]); Sets all the primitives in the link set to glass. llSetPrimitiveParams([PRIM_LINK, 2, PRIM_SIZE, <1, 1, 1>]); Scales the prim who's link number is 2 to <1, 1, 1>. It still doesnt provide all the features hirarchial linking would, but it would be a step in that direction. Vote for it here! ==Chris I would kil- do the dishes for this.
_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river. - Cyril Connolly
Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence. - James Nachtwey
|
|
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
|
03-21-2006 12:55
From: Kaiser Bogomil Mac Paint shipped with the Macintosh I in 1982. 1984 From: someone It had nestable groups. Groups of what, pixels? Are you sure you're not thining of Draw?
|
|
Kaiser Bogomil
Registered User
Join date: 15 Mar 2006
Posts: 20
|
03-21-2006 13:11
Does it matter?
You get the point?
|
|
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
|
03-21-2006 13:59
From: Kaiser Bogomil Does it matter? It's mind over matter, mate. If I don't mind, it doesn't matter.
|
|
Kairen Overdrive
Registered User
Join date: 12 Jul 2005
Posts: 38
|
03-21-2006 22:25
From: Kaiser Bogomil Its a pain in the ass to have to mark a group un-physical, unlink them ALL, adjust one or two prims, get in postion to select an object, move again to select the next object... link them all back & then make the group physical again! Look closely. See that button that says "edit linked parts". Well that allows you to edit linked prims. And why did you have to move? You could have just moved your camera instead.
|