Aurora.ScriptEngine.AuroraDotNetEngine.APIs.LSL_Api.llSetPhysicsMaterial C# (CSharp) Method

llSetPhysicsMaterial() public method

public llSetPhysicsMaterial ( Aurora.ScriptEngine.AuroraDotNetEngine.LSL_Types.LSLInteger bits, Aurora.ScriptEngine.AuroraDotNetEngine.LSL_Types.LSLFloat density, Aurora.ScriptEngine.AuroraDotNetEngine.LSL_Types.LSLFloat friction, Aurora.ScriptEngine.AuroraDotNetEngine.LSL_Types.LSLFloat restitution, Aurora.ScriptEngine.AuroraDotNetEngine.LSL_Types.LSLFloat gravityMultiplier ) : void
bits Aurora.ScriptEngine.AuroraDotNetEngine.LSL_Types.LSLInteger
density Aurora.ScriptEngine.AuroraDotNetEngine.LSL_Types.LSLFloat
friction Aurora.ScriptEngine.AuroraDotNetEngine.LSL_Types.LSLFloat
restitution Aurora.ScriptEngine.AuroraDotNetEngine.LSL_Types.LSLFloat
gravityMultiplier Aurora.ScriptEngine.AuroraDotNetEngine.LSL_Types.LSLFloat
return void
        public void llSetPhysicsMaterial(LSL_Integer bits, LSL_Float density, LSL_Float friction, LSL_Float restitution,
            LSL_Float gravityMultiplier)
        {
            ObjectFlagUpdatePacket.ExtraPhysicsBlock[] blocks = new ObjectFlagUpdatePacket.ExtraPhysicsBlock[1];
            blocks[0] = new ObjectFlagUpdatePacket.ExtraPhysicsBlock();
            if ((bits & ScriptBaseClass.DENSITY) == ScriptBaseClass.DENSITY)
                m_host.Density = (float)density;
            else
                blocks[0].Density = m_host.Density;

            if ((bits & ScriptBaseClass.FRICTION) == ScriptBaseClass.FRICTION)
                m_host.Friction = (float)friction;
            else
                blocks[0].Friction = m_host.Friction;

            if ((bits & ScriptBaseClass.RESTITUTION) == ScriptBaseClass.RESTITUTION)
                m_host.Restitution = (float)restitution;
            else
                blocks[0].Restitution = m_host.Restitution;

            if ((bits & ScriptBaseClass.GRAVITY_MULTIPLIER) == ScriptBaseClass.GRAVITY_MULTIPLIER)
                m_host.GravityMultiplier = (float)gravityMultiplier;
            else
                blocks[0].GravityMultiplier = m_host.GravityMultiplier;

            bool UsePhysics = ((m_host.Flags & PrimFlags.Physics) != 0);
            bool IsTemporary = ((m_host.Flags & PrimFlags.TemporaryOnRez) != 0);
            bool IsPhantom = ((m_host.Flags & PrimFlags.Phantom) != 0);
            bool IsVolumeDetect = m_host.VolumeDetectActive;
            blocks[0].PhysicsShapeType = m_host.PhysicsType;
            if (m_host.UpdatePrimFlags(UsePhysics, IsTemporary, IsPhantom, IsVolumeDetect, blocks))
                m_host.ParentEntity.RebuildPhysicalRepresentation(true);
        }
LSL_Api