From Second Life Wiki
(Redirected from
LSL llTargetOmega)
TargetOmega
llTargetOmega
Description
Function: llTargetOmega( vector axis, float spinrate, float gain );
Rotates the object around axis at spinrate * llVecMag(axis) in radians per second with strength gain.
| • vector
| axis
| –
| arbitrary axis to rotate the object around
|
|
| • float
| spinrate
| –
| rate of rotation in radians per second
|
|
| • float
| gain
| –
| also modulates the final spinrate and disables the rotation behavior if zero
|
|
Specification
Physics
- If the object is not physical then the effect is entirely client side. The rotation experienced by the user cannot be detected or queried by script.
- If the object is physical then the physical representation is updated regularly. The rotation experienced by the user can be detected or queried by script.
Link Sets
- If the script is attached to the root prim, the entire object rotates around the region axis
- If the object is attached then it rotates around the attachment axis
- If the script is attached to a child prim, the prim rotates around the local axis
- A Child prim can rotate around its own axis while the entire object rotates around another axis.
Caveats
- If the object is not physical then the rotation is only a client side effect and it will collide as non-moving geometry.
Examples
//rotates the x axis once per second,
// rotates the y axis 3 times per second,
// rotates the z axis once every two seconds.
// combined the rate is about 3.20156 revolutions per second
llTargetOmega(<1.0,3.0,0.5>,TWO_PI,1.0);
Notes
- Use llVecNorm on axis so that spinrate actually represents the rate of rotation.
- Set the gain to zero to disable and remove the rotation behavior, eg llTargetOmega(ZERO_VECTOR, 0, 0);
- A spinrate of 0 with a nonzero gain causes the object to try to stop all spin, rather than simply clearing a previous llTargetOmega() call.