Difference between revisions of "PRIM PHYSICS MATERIAL"

From Second Life Wiki
Jump to navigation Jump to search
m
m (^_^)
Line 14: Line 14:
{{#vardefine:p_friction_hover|range 0.0 to 255.0}}
{{#vardefine:p_friction_hover|range 0.0 to 255.0}}
{{#vardefine:p_density_hover|range 1.0 to 22587.0 (in kg/m^3)}}
{{#vardefine:p_density_hover|range 1.0 to 22587.0 (in kg/m^3)}}
{{LSL Signature/Add|function list llGetPhysicsMaterial();
function void llSetPhysicsMaterial( integer material_bits, float gravity_multiplier, float restitution, float friction, float density );
{{LSL Const/Signature|DENSITY|integer|c={{#var:p_density_hover}}}}
{{LSL Const/Signature|FRICTION|integer|c={{#var:p_friction_hover}}}}
{{LSL Const/Signature|RESTITUTION|integer|c={{#var:p_restitution_hover}}}}
{{LSL Const/Signature|GRAVITY_MULTIPLIER|integer|c={{#var:p_gravity_multiplier_hover}}}}
}}


{{#vardefine:caveats|{{#var:caveats}}
{{#vardefine:caveats|{{#var:caveats}}

Revision as of 10:41, 8 January 2012

Description

Constant: integer PRIM_PHYSICS_MATERIAL = 31;

The integer constant PRIM_PHYSICS_MATERIAL has the value 31

PRIM_PHYSICS_MATERIAL is used to get or set the prim's physics material properties.

llSetPrimitiveParams

llSetPrimitiveParams([ PRIM_PHYSICS_MATERIAL, integer material_bits, float gravity_multiplier, float restitution, float friction, float density ]);
• integer material_bits bitwise combination of DENSITY, FRICTION, RESTITUTION, and GRAVITY_MULTIPLIER and specifies which floats to actually apply
• float gravity_multiplier range [-1.0, +28.0]
• float restitution range [0.0, 1.0]
• float friction range [0.0, 255.0]
• float density range [1.0, 22587.0] kg/m^3

When used with llSetPrimitiveParams & llSetLinkPrimitiveParams

llGetPrimitiveParams

llGetPrimitiveParams([ PRIM_PHYSICS_MATERIAL ]);

Returns the list [ integer material_bits, float gravity_multiplier, float restitution, float friction, float density ]

• integer material_bits bitwise combination of DENSITY, FRICTION, RESTITUTION, and GRAVITY_MULTIPLIER and specifies which floats to actually apply
• float gravity_multiplier range [-1.0, +28.0]
• float restitution range [0.0, 1.0]
• float friction range [0.0, 255.0]
• float density range [1.0, 22587.0] kg/m^3
material_bits Flags V Description
DENSITY Indicates that density parameter is enabled
FRICTION Indicates that friction parameter is enabled
RESTITUTION Indicates that restitution parameter is enabled
GRAVITY_MULTIPLIER Indicates that gravity_multiplier parameter is enabled

Caveats

  • A collision between two objects with restitution 1.0 will still not be perfectly elastic due to damping in the physics engine.


Deep Notes

History

Search JIRA for related Issues

Footnotes

  1. ^ The ranges in this article are written in Interval Notation.

Signature

integer PRIM_PHYSICS_MATERIAL = 31;
function list llGetPhysicsMaterial();
function void llSetPhysicsMaterial( integer material_bits, float gravity_multiplier, float restitution, float friction, float density );
integer DENSITY;//range 1.0 to 22587.0 (in kg/m^3)
integer FRICTION;//range 0.0 to 255.0
integer RESTITUTION;//range 0.0 to 1.0 (note, a collision between two objects with restitution 1.0 will still not be perfectly elastic due to damping in the physics engine)
integer GRAVITY_MULTIPLIER;//range -1.0 to +28.0