At 10:08 PM -0700 7/30/20, Dahlia Trimble wrote:
You're only setting llTargetOmega in state_entry().
Note that if you put that script into the root prim of your linkset, the
rotation will be in region coordinates. Since you're only setting it once
during state_entry(), changing the orientation of the prim or linkset
should have no effect on the spinning axis. It appears to be behaving
properly based on your description and is not a bug.
This is a single prim and, although the specification does not
explicitly state that it should rotate around the prim's axis
(mentioning linksets as an exception), this is observed and desired
behaviour.
I fail to understand when i should call llTargetOmega outside
state_entry(), since resetting the script at any time re-issues the
call.
Invoking llTargetOmega on touch_start() makes no difference, except
if you take care to stop the rotation first, rotate the prim
manually, then restart rotation.
integer spinning = FALSE;
default {
touch_start (integer n) {
if (spinning = ! spinning)
llTargetOmega ( llRot2Up(llGetLocalRot()), 1, 1);
else
llTargetOmega ( ZERO_VECTOR, 0, 0);
}
}
I admit that rotating a spinning prim manually is not a useful nor
desirable thing. It happened accidentally in development, when I
tested the whole thing for different orientations of "the wheel".
-- Jeff
_______________________________________________
Opensim-users mailing list
Opensim-users@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-users