浏览代码

Adding angular velocity settings

Raanan Weber 9 年之前
父节点
当前提交
10597923d4

+ 5 - 1
src/Physics/Plugins/babylon.cannonJSPlugin.ts

@@ -427,9 +427,13 @@
             return window.CANNON !== undefined;
         }
 
-        public setVelocity(impostor: PhysicsImpostor, velocity: Vector3) {
+        public setLinearVelocity(impostor: PhysicsImpostor, velocity: Vector3) {
             impostor.physicsBody.velocity.copy(velocity);
         }
+        
+        public setAngularVelocity(impostor: PhysicsImpostor, velocity: Vector3) {
+            impostor.physicsBody.angularVelocity.copy(velocity);
+        }
 
         public sleepBody(impostor: PhysicsImpostor) {
             impostor.physicsBody.sleep();

+ 5 - 1
src/Physics/Plugins/babylon.oimoJSPlugin.ts

@@ -316,9 +316,13 @@ module BABYLON {
             return lastShape;
         }
 
-        public setVelocity(impostor: PhysicsImpostor, velocity: Vector3) {
+        public setLinearVelocity(impostor: PhysicsImpostor, velocity: Vector3) {
             impostor.physicsBody.linearVelocity.init(velocity.x, velocity.y, velocity.z);
         }
+        
+        public setAngularVelocity(impostor: PhysicsImpostor, velocity: Vector3) {
+            impostor.physicsBody.angularVelocity.init(velocity.x, velocity.y, velocity.z);
+        }
 
         public sleepBody(impostor: PhysicsImpostor) {
             impostor.physicsBody.sleep();

+ 2 - 1
src/Physics/babylon.physicsEngine.ts

@@ -161,7 +161,8 @@
         isSupported(): boolean;
         setTransformationFromPhysicsBody(impostor: PhysicsImpostor);
         setPhysicsBodyTransformation(impostor: PhysicsImpostor, newPosition: Vector3, newRotation: Quaternion);
-        setVelocity(impostor: PhysicsImpostor, velocity: Vector3);
+        setLinearVelocity(impostor: PhysicsImpostor, velocity: Vector3);
+        setAngularVelocity(impostor: PhysicsImpostor, velocity: Vector3);
         sleepBody(impostor: PhysicsImpostor);
         wakeUpBody(impostor: PhysicsImpostor);
         dispose();

+ 10 - 3
src/Physics/babylon.physicsImpostor.ts

@@ -134,10 +134,17 @@ module BABYLON {
         }
 
         /**
-         * Set the body's velocity.
+         * Set the body's linear velocity.
          */
-        public setVelocity(velocity: Vector3) {
-            this._physicsEngine.getPhysicsPlugin().setVelocity(this, velocity);
+        public setLinearVelocity(velocity: Vector3) {
+            this._physicsEngine.getPhysicsPlugin().setLinearVelocity(this, velocity);
+        }
+        
+        /**
+         * Set the body's linear velocity.
+         */
+        public setAngularVelocity(velocity: Vector3) {
+            this._physicsEngine.getPhysicsPlugin().setAngularVelocity(this, velocity);
         }
         
         /**