public void GetBoxGeometry() { var shape = _actor.CreateShape(new BoxGeometry(5, 5, 5), _material); var box = shape.GetBoxGeometry(); Assert.IsNotNull(box); Assert.AreEqual(new Vector3(5, 5, 5), box.HalfExtents); }
public PhysxPhysicObject(Scene scene, Geometry geometry, float mass, Matrix localTransformation, Matrix worldTransformation, Vector3 scale, MaterialDescription MaterialDescription) { Scale = scale; rigidActor = scene.Physics.CreateRigidDynamic(worldTransformation.AsPhysX()); material = scene.Physics.CreateMaterial(MaterialDescription.StaticFriction, MaterialDescription.DynamicFriction, MaterialDescription.Bounciness); var boxShape = rigidActor.CreateShape(geometry, material, localTransformation.AsPhysX()); rigidActor.SetMassAndUpdateInertia(mass); }
public void CreateBox(Scene.Entity3D ent) { Scene.Bounds bb = ent.Bounds; ID = PhysicsManager.py.CreateRigidDynamic( ); BoxGeometry ge = new BoxGeometry(bb.W / 2, bb.H / 2, bb.D / 2); Shape = ID.CreateShape(ge, Mat); ID.LinearVelocity = new System.Numerics.Vector3(0, 0, 0); //Pose = ID.GlobalPose; float m11 = ent.World.M11; float m12 = ent.World.M12; float m13 = ent.World.M13; float m14 = ent.World.M14; float m21 = ent.World.M21; float m22 = ent.World.M22; float m23 = ent.World.M23; float m24 = ent.World.M24; float m31 = ent.World.M31; float m32 = ent.World.M32; float m33 = ent.World.M33; float m34 = ent.World.M34; float m41 = ent.World.M41; float m42 = ent.World.M42; float m43 = ent.World.M43; float m44 = ent.World.M44; System.Numerics.Matrix4x4 tm = new System.Numerics.Matrix4x4(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44); ID.GlobalPose = tm; ID.SetMassAndUpdateInertia(3); Physics.PhysicsManager.Scene.AddActor(ID); }