Difference between revisions of "LlGetMass"

From Second Life Wiki
Jump to navigation Jump to search
(Minor spelling changes (weight units are always expressed in lower case), creating a "real" footnote, adapting Wikipedia links with the {{Wikipedia}} template)
 
(20 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{LSL_Function
{{LSL_Function
|func_id=109|func_sleep=0.0|func_energy=10.0
|func_id=109|func_sleep=0.0|func_energy=10.0|func=llGetMass|return_type=float
|func=llGetMass|return_type=float
|func_footnote
|func_footnote
|func_desc=Get the mass of task name that script is attached to
|func_desc
|return_text
|return_text=that is the mass of object (in [[#Lindograms|lindograms]]) that script is attached to.
|func_footnote=
|spec
|spec
|caveats
|caveats=*The mass reported by this function is in [[#Lindograms|lindograms]], which function the same as kilograms within the bounds of Second Life, but not elsewhere. ([[#Lindograms|See below]])
*Attachments do not affect an avatar's mass, only certain Appearance settings.
**Avatar mass is reported to either be unexpectedly low (when measured using [[llGetMass]]) or unexpectedly high (when measured using [[llGetMassMKS]]). This is likely due to the weight being calculated based on a fixed value, with a modifier for height. The fixed value being used is incorrect, likely due to an incorrect density value being used.
|constants
|constants
|examples
|examples=<syntaxhighlight lang="lsl2">//A way of making a constant force that returns the same speed visually whatever the object is
default
{
    touch_start()
    {
        llApplyImpulse(<0.0, 0.0, 5.0> * llGetMass(), FALSE);
        // This fires the object up at the same m/s whatever the size (or difference!)
    }
}//Written by El Taka</syntaxhighlight>
|helpers
|helpers
|also_functions
|also_functions=
{{LSL DefineRow||[[llGetObjectMass]]|Gets the object mass (in lindograms)}}
{{LSL DefineRow||[[llGetForce]]|Gets the objects force}}
{{LSL DefineRow||[[llGetOmega]]|}}
{{LSL DefineRow||[[llGetVel]]|}}
{{LSL DefineRow||[[llGetTorque]]|}}
{{LSL DefineRow||[[llGetAccel]]|}}
{{LSL DefineRow||[[llGetMassMKS]]|Get the mass of an object (in kilograms)}}
|also_events
|also_events
|also_tests
|also_tests
Line 17: Line 34:
|permission
|permission
|negative_index
|negative_index
|cat1
|cat1=Physics
|cat2
|cat2=Object
|cat3
|cat3
|cat4=Stub
|cat4
}}
}}
==Lindograms==
"Lindograms" is the name of the primary unit of mass used in Second Life.
While Second Life primarily makes use of the {{Wikipedia|International System of Units|SI system of units}}, mass seems to be an exception.
Some speculate that lindograms were intended to be ''kilograms'', but a mistake was made when factoring object density, causing the mass value returned to be 100 times less than the actual kilogram value. As a result, some new functions were implemented (such as [[llGetMassMKS]]) which report the correct kilogram weight of an object.
Functionally speaking, lindograms can be used in the same way kilograms are used<ref>With exception to some functions, such as [[llSetPhysicsMaterial]], which use kilograms, not lindograms. [[llGetMassMKS]] returns a kilogram value, not a lindogram value.</ref>, however only within the bounds of Second Life. Trying to export mass values from Second Life will often run into issues, caused by the use of lindograms as a base unit of measurement.
From a technical point-of-view, a lindogram is equivalent to a {{Wikipedia|Quintal|{{em|metric quintal}}}}, however it is not treated as such.

Latest revision as of 10:16, 4 September 2023

Summary

Function: float llGetMass( );
0.0 Forced Delay
10.0 Energy

Returns a float that is the mass of object (in lindograms) that script is attached to.

Caveats

  • The mass reported by this function is in lindograms, which function the same as kilograms within the bounds of Second Life, but not elsewhere. (See below)
  • Attachments do not affect an avatar's mass, only certain Appearance settings.
    • Avatar mass is reported to either be unexpectedly low (when measured using llGetMass) or unexpectedly high (when measured using llGetMassMKS). This is likely due to the weight being calculated based on a fixed value, with a modifier for height. The fixed value being used is incorrect, likely due to an incorrect density value being used.

Examples

//A way of making a constant force that returns the same speed visually whatever the object is
default
{
    touch_start()
    {
        llApplyImpulse(<0.0, 0.0, 5.0> * llGetMass(), FALSE);
        // This fires the object up at the same m/s whatever the size (or difference!)
    }
}//Written by El Taka

See Also

Functions

•  llGetObjectMass Gets the object mass (in lindograms)
•  llGetForce Gets the objects force
•  llGetOmega
•  llGetVel
•  llGetTorque
•  llGetAccel
•  llGetMassMKS Get the mass of an object (in kilograms)

Deep Notes

Signature

function float llGetMass();

Lindograms

"Lindograms" is the name of the primary unit of mass used in Second Life.

While Second Life primarily makes use of the "Wikipedia logo"SI system of units, mass seems to be an exception.

Some speculate that lindograms were intended to be kilograms, but a mistake was made when factoring object density, causing the mass value returned to be 100 times less than the actual kilogram value. As a result, some new functions were implemented (such as llGetMassMKS) which report the correct kilogram weight of an object.

Functionally speaking, lindograms can be used in the same way kilograms are used[1], however only within the bounds of Second Life. Trying to export mass values from Second Life will often run into issues, caused by the use of lindograms as a base unit of measurement.

From a technical point-of-view, a lindogram is equivalent to a "Wikipedia logo"metric quintal, however it is not treated as such.

  1. With exception to some functions, such as llSetPhysicsMaterial, which use kilograms, not lindograms. llGetMassMKS returns a kilogram value, not a lindogram value.