public Material Duplicate(PhysX.Physics physics) { if (this.MaterialPreset != NO_PRESET) { return (Material)FindImpl((OpenMetaverse.Material)this.MaterialPreset); } else { PhysX.Material baseMaterial = physics.CreateMaterial(StaticFriction, DynamicFriction, Restitution); return new Material(baseMaterial, Density, GravityMultiplier); } }
public Material ToLocalMaterial(PhysX.Physics physics) { if (this.MaterialPreset != NO_PRESET) { return (Material)FindImpl((OpenMetaverse.Material)this.MaterialPreset); } else { _baseMaterial = physics.CreateMaterial(_serializedStaticFriction, _serializedDynamicFriction, _serializedRestitution); return this; } }
public Material(PhysX.Physics physics, float staticFriction, float dynamicFriction, float restitution, float density, float gravityMultiplier) { _baseMaterial = physics.CreateMaterial(staticFriction, dynamicFriction, restitution); Density = density; GravityMultiplier = gravityMultiplier; }
public Material(PhysX.Physics physics, float staticFriction, float dynamicFriction, float restitution, float density) { _baseMaterial = physics.CreateMaterial(staticFriction, dynamicFriction, restitution); Density = density; GravityMultiplier = GRAVITY_MULTIPLIER_DEFAULT; }
public static void BuiltinMaterialInit(PhysX.Physics physics) { // PhysX collision forces are very strong, so the ground restitution needs to be lowered significantly. GROUND = new Material(physics.CreateMaterial(0.4f, 0.35f, 0.05f), 1200.0f); GROUND.IsShared = true; // For navigable roads, people need a preset that acts mostly like ground. STONE = new Material(physics.CreateMaterial(0.5f, 0.35f, 0.05f), 2400.0f, (int)OpenMetaverse.Material.Stone); STONE.IsShared = true; METAL = new Material(physics.CreateMaterial(0.3f, 0.25f, 0.4f), 2700.0f, (int)OpenMetaverse.Material.Metal); METAL.IsShared = true; GLASS = new Material(physics.CreateMaterial(0.2f, 0.15f, 0.7f), 2500.0f, (int)OpenMetaverse.Material.Glass); GLASS.IsShared = true; WOOD = new Material(physics.CreateMaterial(0.6f, 0.55f, 0.5f), 1000.0f, (int)OpenMetaverse.Material.Wood); WOOD.IsShared = true; FLESH = new Material(physics.CreateMaterial(0.9f, 0.8f, 0.3f), 1400.0f, (int)OpenMetaverse.Material.Flesh); FLESH.IsShared = true; PLASTIC = new Material(physics.CreateMaterial(0.4f, 0.35f, 0.7f), 900.0f, (int)OpenMetaverse.Material.Plastic); PLASTIC.IsShared = true; RUBBER = new Material(physics.CreateMaterial(0.9f, 0.87f, 0.9f), 1100.0f, (int)OpenMetaverse.Material.Rubber); RUBBER.IsShared = true; MaterialsByOMVEnum = new Material[] { STONE, //0... METAL, GLASS, WOOD, FLESH, PLASTIC, RUBBER, WOOD //light.. which makes no sense is remapped to wood }; }