[Opensim-dev] Setting a single child prim to Phantom
Oren Hurvitz
orenh at kitely.com
Sun Feb 3 07:16:34 UTC 2013
I have recently become aware that there's an entire cottage industry of
scripts whose purpose is to make a single prim in a linkset phantom. These
scripts are needed because:
a) Usually the phantom flag is set for an entire linkset, so it's necessary
to use a script to change the flag for a single prim
b) The LSL functions that change the Phantom flag (llSetStatus() and
llSetPrimitiveParams()) change it for the entire linkset at once, so they
can't be used to change a single prim.
These scripts use a very complicated workaround that involve changing the
prim's shape in several steps, which is brittle and dangerous. You can see
the scripts here: http://wiki.secondlife.com/wiki/Phantom_Child
In Second Life there is now a simpler and safer way to make a single prim
stop colliding:
llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_PHYSICS_SHAPE_TYPE,
PRIM_PHYSICS_SHAPE_NONE]);
However, this isn't implemented in OpenSim. And I don't know if it's exactly
equivalent to making the prim phantom.
I propose extending llSetStatus() to allow setting the phantom flag for a
single prim. This involves adding the flag OS_STATUS_PHANTOM_PRIM. It works
just like the existing flag STATUS_PHANTOM, but it operates on the prim that
contains the script instead of the entire linkset. This behavior mirrors the
way llSetStatus() works with the STATUS_BLOCK_GRAB flag: it also comes in
two flavors, STATUS_BLOCK_GRAB (for a prim) and STATUS_BLOCK_GRAB_OBJECT
(for the linkset).
Any thoughts? Does anyone know of a different way to safely change the
phantom flag for a single prim in a linkset?
Oren
--
View this message in context: http://opensim-dev.2196679.n2.nabble.com/Setting-a-single-child-prim-to-Phantom-tp7578513.html
Sent from the opensim-dev mailing list archive at Nabble.com.
More information about the Opensim-dev
mailing list