llApplyImpulse

From Second Life Wiki
Revision as of 21:23, 25 September 2012 by MartinRJ Fayray (talk | contribs) (Added something to caveats.)
Jump to navigation Jump to search

Summary

Function: llApplyImpulse( vector force, integer local );

Applies impulse to object

• vector force
• integer local boolean, if TRUE force is treated as a local directional vector, if FALSE force is treated as a region directional vector

Instantaneous impulse. llSetForce has continuous push. "Instantaneous" seems to mean a one second impulse, as an application of a force (in newtons) equal to the object's mass (in kg) for one second will accelerate it to a velocity of 1 (in meters per second), which appears to be what happens with this function.

Caveats

  • Only works in physics-enabled objects.
  • The magnitude of force may be scaled back by the object's available energy.
  • The maximum magnitude of force is 20.0 and if it exceeds that it will be scaled back.
  • Silently fails when not called from inside the root prim.
All Issues ~ Search JIRA for related Bugs

Examples

<lsl> //Rez an object, and drop this script in it. //This will launch it at the owner. default {

    state_entry() {
         list p = llGetObjectDetails(llGetOwner(), [OBJECT_POS]);
         if(p != []) {
             llSetStatus(STATUS_PHYSICS, TRUE);
             vector pos = llList2Vector(p, 0);
             vector direction = llVecNorm(pos - llGetPos());
             llApplyImpulse(direction * 100, 0);
         }
    }

}

</lsl>

See Also

Functions

•  llApplyRotationalImpulse
•  llSetForce Set continuous force

Deep Notes

Search JIRA for related Issues

Signature

function void llApplyImpulse( vector force, integer local );