Ejemplo n.º 1
0
        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 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);
        }
Ejemplo n.º 4
0
        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);
        }