@galacean/engine-physics-lite 1.1.0-alpha.4 → 1.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +41 -22
- package/dist/browser.min.js +1 -1
- package/dist/main.js +41 -22
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +41 -22
- package/dist/module.js +41 -22
- package/dist/module.js.map +1 -1
- package/package.json +4 -4
- package/types/shape/LiteBoxColliderShape.d.ts +0 -1
- package/types/shape/LiteColliderShape.d.ts +3 -2
package/dist/browser.js
CHANGED
|
@@ -90,6 +90,8 @@
|
|
|
90
90
|
* Abstract class for collider shapes.
|
|
91
91
|
*/ var LiteColliderShape = /*#__PURE__*/ function() {
|
|
92
92
|
function LiteColliderShape() {
|
|
93
|
+
/** @internal */ this._position = new engine.Vector3();
|
|
94
|
+
/** @internal */ this._worldScale = new engine.Vector3(1, 1, 1);
|
|
93
95
|
/** @internal */ this._transform = new LiteTransform();
|
|
94
96
|
/** @internal */ this._invModelMatrix = new engine.Matrix();
|
|
95
97
|
this._transform.owner = this;
|
|
@@ -104,7 +106,18 @@
|
|
|
104
106
|
/**
|
|
105
107
|
* {@inheritDoc IColliderShape.setPosition }
|
|
106
108
|
*/ _proto.setPosition = function setPosition(position) {
|
|
107
|
-
|
|
109
|
+
if (position !== this._position) {
|
|
110
|
+
this._position.copyFrom(position);
|
|
111
|
+
}
|
|
112
|
+
this._setLocalPose();
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* {@inheritDoc IColliderShape.setWorldScale }
|
|
116
|
+
*/ _proto.setWorldScale = function setWorldScale(scale) {
|
|
117
|
+
if (scale !== this._worldScale) {
|
|
118
|
+
this._worldScale.copyFrom(scale);
|
|
119
|
+
}
|
|
120
|
+
this._setLocalPose();
|
|
108
121
|
};
|
|
109
122
|
/**
|
|
110
123
|
* {@inheritDoc IColliderShape.setContactOffset }
|
|
@@ -158,6 +171,11 @@
|
|
|
158
171
|
}
|
|
159
172
|
return this._invModelMatrix;
|
|
160
173
|
};
|
|
174
|
+
_proto._setLocalPose = function _setLocalPose() {
|
|
175
|
+
var shapePosition = LiteColliderShape._tempPoint;
|
|
176
|
+
engine.Vector3.multiply(this._position, this._worldScale, shapePosition);
|
|
177
|
+
this._transform.position = shapePosition;
|
|
178
|
+
};
|
|
161
179
|
return LiteColliderShape;
|
|
162
180
|
}();
|
|
163
181
|
(function() {
|
|
@@ -545,11 +563,11 @@
|
|
|
545
563
|
|
|
546
564
|
/**
|
|
547
565
|
* A dynamic collider can act with self-defined movement or physical force
|
|
548
|
-
*/ var LiteDynamicCollider = /*#__PURE__*/ function(
|
|
549
|
-
_inherits(LiteDynamicCollider,
|
|
566
|
+
*/ var LiteDynamicCollider = /*#__PURE__*/ function(LiteCollider1) {
|
|
567
|
+
_inherits(LiteDynamicCollider, LiteCollider1);
|
|
550
568
|
function LiteDynamicCollider(position, rotation) {
|
|
551
569
|
var _this;
|
|
552
|
-
_this =
|
|
570
|
+
_this = LiteCollider1.call(this) || this;
|
|
553
571
|
_this._transform.setPosition(position.x, position.y, position.z);
|
|
554
572
|
_this._transform.setRotationQuaternion(rotation.x, rotation.y, rotation.z, rotation.w);
|
|
555
573
|
return _this;
|
|
@@ -747,13 +765,12 @@
|
|
|
747
765
|
|
|
748
766
|
/**
|
|
749
767
|
* Box collider shape in Lite.
|
|
750
|
-
*/ var LiteBoxColliderShape = /*#__PURE__*/ function(
|
|
751
|
-
_inherits(LiteBoxColliderShape,
|
|
768
|
+
*/ var LiteBoxColliderShape = /*#__PURE__*/ function(LiteColliderShape1) {
|
|
769
|
+
_inherits(LiteBoxColliderShape, LiteColliderShape1);
|
|
752
770
|
function LiteBoxColliderShape(uniqueID, size, material) {
|
|
753
771
|
var _this;
|
|
754
|
-
_this =
|
|
772
|
+
_this = LiteColliderShape1.call(this) || this;
|
|
755
773
|
_this._halfSize = new engine.Vector3();
|
|
756
|
-
_this._scale = new engine.Vector3(1, 1, 1);
|
|
757
774
|
/** @internal */ _this._boxMin = new engine.Vector3(-0.5, -0.5, -0.5);
|
|
758
775
|
/** @internal */ _this._boxMax = new engine.Vector3(0.5, 0.5, 0.5);
|
|
759
776
|
_this._id = uniqueID;
|
|
@@ -765,14 +782,14 @@
|
|
|
765
782
|
/**
|
|
766
783
|
* {@inheritDoc IColliderShape.setPosition }
|
|
767
784
|
*/ _proto.setPosition = function setPosition(position) {
|
|
768
|
-
|
|
785
|
+
LiteColliderShape1.prototype.setPosition.call(this, position);
|
|
769
786
|
this._setBondingBox();
|
|
770
787
|
};
|
|
771
788
|
/**
|
|
772
789
|
* {@inheritDoc IColliderShape.setWorldScale }
|
|
773
790
|
*/ _proto.setWorldScale = function setWorldScale(scale) {
|
|
774
|
-
|
|
775
|
-
this.
|
|
791
|
+
LiteColliderShape1.prototype.setWorldScale.call(this, scale);
|
|
792
|
+
this._setBondingBox();
|
|
776
793
|
};
|
|
777
794
|
/**
|
|
778
795
|
* {@inheritDoc IBoxColliderShape.setSize }
|
|
@@ -785,8 +802,8 @@
|
|
|
785
802
|
*/ _proto._raycast = function _raycast(ray, hit) {
|
|
786
803
|
var localRay = this._getLocalRay(ray);
|
|
787
804
|
var boundingBox = LiteBoxColliderShape._tempBox;
|
|
788
|
-
boundingBox.min.set(-this._halfSize.x * this.
|
|
789
|
-
boundingBox.max.set(this._halfSize.x * this.
|
|
805
|
+
boundingBox.min.set(-this._halfSize.x * this._worldScale.x, -this._halfSize.y * this._worldScale.y, -this._halfSize.z * this._worldScale.z);
|
|
806
|
+
boundingBox.max.set(this._halfSize.x * this._worldScale.x, this._halfSize.y * this._worldScale.y, this._halfSize.z * this._worldScale.z);
|
|
790
807
|
var rayDistance = localRay.intersectBox(boundingBox);
|
|
791
808
|
if (rayDistance !== -1) {
|
|
792
809
|
this._updateHitResult(localRay, rayDistance, hit, ray.origin);
|
|
@@ -796,10 +813,11 @@
|
|
|
796
813
|
}
|
|
797
814
|
};
|
|
798
815
|
_proto._setBondingBox = function _setBondingBox() {
|
|
799
|
-
var
|
|
816
|
+
var position = this._transform.position;
|
|
817
|
+
var scale = this._worldScale;
|
|
800
818
|
var halfSize = this._halfSize;
|
|
801
|
-
|
|
802
|
-
|
|
819
|
+
this._boxMin.set(-halfSize.x * scale.x + position.x, -halfSize.y * scale.y + position.y, -halfSize.z * scale.z + position.z);
|
|
820
|
+
this._boxMax.set(halfSize.x * scale.x + position.x, halfSize.y * scale.y + position.y, halfSize.z * scale.z + position.z);
|
|
803
821
|
};
|
|
804
822
|
return LiteBoxColliderShape;
|
|
805
823
|
}(LiteColliderShape);
|
|
@@ -809,11 +827,11 @@
|
|
|
809
827
|
|
|
810
828
|
/**
|
|
811
829
|
* Sphere collider shape in Lite.
|
|
812
|
-
*/ var LiteSphereColliderShape = /*#__PURE__*/ function(
|
|
813
|
-
_inherits(LiteSphereColliderShape,
|
|
830
|
+
*/ var LiteSphereColliderShape = /*#__PURE__*/ function(LiteColliderShape1) {
|
|
831
|
+
_inherits(LiteSphereColliderShape, LiteColliderShape1);
|
|
814
832
|
function LiteSphereColliderShape(uniqueID, radius, material) {
|
|
815
833
|
var _this;
|
|
816
|
-
_this =
|
|
834
|
+
_this = LiteColliderShape1.call(this) || this;
|
|
817
835
|
_this._radius = 1;
|
|
818
836
|
_this._maxScale = 1;
|
|
819
837
|
_this._radius = radius;
|
|
@@ -829,6 +847,7 @@
|
|
|
829
847
|
/**
|
|
830
848
|
* {@inheritDoc IColliderShape.setWorldScale }
|
|
831
849
|
*/ _proto.setWorldScale = function setWorldScale(scale) {
|
|
850
|
+
LiteColliderShape1.prototype.setWorldScale.call(this, scale);
|
|
832
851
|
this._maxScale = Math.max(scale.x, scale.y, scale.z);
|
|
833
852
|
};
|
|
834
853
|
/**
|
|
@@ -1140,11 +1159,11 @@
|
|
|
1140
1159
|
/**
|
|
1141
1160
|
* A static collider component that will not move.
|
|
1142
1161
|
* @remarks Mostly used for object which always stays at the same place and never moves around.
|
|
1143
|
-
*/ var LiteStaticCollider = /*#__PURE__*/ function(
|
|
1144
|
-
_inherits(LiteStaticCollider,
|
|
1162
|
+
*/ var LiteStaticCollider = /*#__PURE__*/ function(LiteCollider1) {
|
|
1163
|
+
_inherits(LiteStaticCollider, LiteCollider1);
|
|
1145
1164
|
function LiteStaticCollider(position, rotation) {
|
|
1146
1165
|
var _this;
|
|
1147
|
-
_this =
|
|
1166
|
+
_this = LiteCollider1.call(this) || this;
|
|
1148
1167
|
_this._transform.setPosition(position.x, position.y, position.z);
|
|
1149
1168
|
_this._transform.setRotationQuaternion(rotation.x, rotation.y, rotation.z, rotation.w);
|
|
1150
1169
|
return _this;
|
package/dist/browser.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@galacean/engine")):"function"==typeof define&&define.amd?define(["exports","@galacean/engine"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).Galacean=t.Galacean||{},t.Galacean.PhysicsLite={}),t.Galacean)}(this,function(t,e){"use strict";function i(t,e){return(i=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function n(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&i(t,e)}function s(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e,i){return e&&s(t.prototype,e),i&&s(t,i),t}function r(t,e){return null!=e&&"undefined"!=typeof Symbol&&e[Symbol.hasInstance]?!!e[Symbol.hasInstance](t):t instanceof e}var a,h,l,c,u=function(){function t(t){void 0===t&&(t=[]),this._flags=t,this.flag=!0,this._flags.push(this)}return t.prototype.destroy=function(){e.Utils.removeFromArray(this._flags,this),this._flags=null},t}(),d=function(){function t(){this._updateFlags=[]}var e=t.prototype;return e.register=function(){return new u(this._updateFlags)},e.distribute=function(){for(var t=this._updateFlags,e=t.length-1;e>=0;e--)t[e].flag=!0},t}(),_=function(){function t(){this._transform=new p,this._invModelMatrix=new e.Matrix,this._transform.owner=this,this._inverseWorldMatFlag=this._transform.registerWorldChangeFlag()}var i=t.prototype;return i.setRotation=function(t){console.log("Physics-lite don't support setRotation. Use Physics-PhysX instead!")},i.setPosition=function(t){this._transform.setPosition(t.x,t.y,t.z)},i.setContactOffset=function(t){console.log("Physics-lite don't support setContactOffset. Use Physics-PhysX instead!")},i.setMaterial=function(t){console.log("Physics-lite don't support setMaterial. Use Physics-PhysX instead!")},i.setUniqueID=function(t){this._id=t},i.setIsTrigger=function(t){console.log("Physics-lite don't support setIsTrigger. Use Physics-PhysX instead!")},i.destroy=function(){},i._updateHitResult=function(i,n,s,o,r){void 0===r&&(r=!1);var a=t._tempPoint;i.getPoint(n,a),r||e.Vector3.transformCoordinate(a,this._transform.worldMatrix,a);var h=e.Vector3.distance(o,a);h<s.distance&&(s.point.copyFrom(a),s.distance=h,s.shapeID=this._id)},i._getLocalRay=function(i){var n=this._getInvModelMatrix(),s=t._ray;return e.Vector3.transformCoordinate(i.origin,n,s.origin),e.Vector3.transformNormal(i.direction,n,s.direction),s.direction.normalize(),s},i._getInvModelMatrix=function(){return this._inverseWorldMatFlag.flag&&(e.Matrix.invert(this._transform.worldMatrix,this._invModelMatrix),this._inverseWorldMatFlag.flag=!1),this._invModelMatrix},t}();_._ray=new e.Ray,_._tempPoint=new e.Vector3;var p=function(){function t(){this._position=new e.Vector3,this._rotation=new e.Vector3,this._rotationQuaternion=new e.Quaternion,this._scale=new e.Vector3(1,1,1),this._worldRotationQuaternion=new e.Quaternion,this._localMatrix=new e.Matrix,this._worldMatrix=new e.Matrix,this._updateFlagManager=new d,this._isParentDirty=!0,this._parentTransformCache=null,this._dirtyFlag=188}var i=t.prototype;return i.setPosition=function(t,e,i){this._position.set(t,e,i),this.position=this._position},i.setRotationQuaternion=function(t,e,i,n){this._rotationQuaternion.set(t,e,i,n),this.rotationQuaternion=this._rotationQuaternion},i.setScale=function(t,e,i){this._scale.set(t,e,i),this.scale=this._scale},i.registerWorldChangeFlag=function(){return this._updateFlagManager.register()},i._updateWorldPositionFlag=function(){if(!this._isContainDirtyFlags(132)&&(this._worldAssociatedChange(132),r(this._owner,f)))for(var t=this._owner._shapes,e=0,i=t.length;e<i;e++)t[e]._transform._updateWorldPositionFlag()},i._updateWorldRotationFlag=function(){if(!this._isContainDirtyFlags(152)&&(this._worldAssociatedChange(152),r(this._owner,f)))for(var t=this._owner._shapes,e=0,i=t.length;e<i;e++)t[e]._transform._updateWorldRotationFlag()},i._updateWorldScaleFlag=function(){if(!this._isContainDirtyFlags(160)&&(this._worldAssociatedChange(160),r(this._owner,f)))for(var t=this._owner._shapes,e=0,i=t.length;e<i;e++)t[e]._transform._updateWorldScaleFlag()},i._updateAllWorldFlag=function(){if(!this._isContainDirtyFlags(188)&&(this._worldAssociatedChange(188),r(this._owner,f)))for(var t=this._owner._shapes,e=0,i=t.length;e<i;e++)t[e]._transform._updateAllWorldFlag()},i._getParentTransform=function(){if(!this._isParentDirty)return this._parentTransformCache;var t=null;return r(this._owner,_)&&(t=this._owner._collider._transform),this._parentTransformCache=t,this._isParentDirty=!1,t},i._isContainDirtyFlags=function(t){return(this._dirtyFlag&t)===t},i._isContainDirtyFlag=function(t){return(this._dirtyFlag&t)!=0},i._setDirtyFlagTrue=function(t){this._dirtyFlag|=t},i._setDirtyFlagFalse=function(t){this._dirtyFlag&=~t},i._worldAssociatedChange=function(t){this._dirtyFlag|=t,this._updateFlagManager.distribute()},o(t,[{key:"owner",set:function(t){this._owner=t}},{key:"position",get:function(){return this._position},set:function(t){this._position!==t&&this._position.copyFrom(t),this._setDirtyFlagTrue(64),this._updateWorldPositionFlag()}},{key:"rotationQuaternion",get:function(){return this._isContainDirtyFlag(2)&&(e.Quaternion.rotationEuler(e.MathUtil.degreeToRadian(this._rotation.x),e.MathUtil.degreeToRadian(this._rotation.y),e.MathUtil.degreeToRadian(this._rotation.z),this._rotationQuaternion),this._setDirtyFlagFalse(2)),this._rotationQuaternion},set:function(t){this._rotationQuaternion!==t&&this._rotationQuaternion.copyFrom(t),this._setDirtyFlagTrue(65),this._setDirtyFlagFalse(2),this._updateWorldRotationFlag()}},{key:"worldRotationQuaternion",get:function(){if(this._isContainDirtyFlag(16)){var t=this._getParentTransform();null!=t?e.Quaternion.multiply(t.worldRotationQuaternion,this.rotationQuaternion,this._worldRotationQuaternion):this._worldRotationQuaternion.copyFrom(this.rotationQuaternion),this._setDirtyFlagFalse(16)}return this._worldRotationQuaternion},set:function(i){this._worldRotationQuaternion!==i&&this._worldRotationQuaternion.copyFrom(i);var n=this._getParentTransform();n?(e.Quaternion.invert(n.worldRotationQuaternion,t._tempQuat0),e.Quaternion.multiply(i,t._tempQuat0,this._rotationQuaternion)):this._rotationQuaternion.copyFrom(i),this.rotationQuaternion=this._rotationQuaternion,this._setDirtyFlagFalse(16)}},{key:"scale",get:function(){return this._scale},set:function(t){this._scale!==t&&this._scale.copyFrom(t),this._setDirtyFlagTrue(64),this._updateWorldScaleFlag()}},{key:"localMatrix",get:function(){return this._isContainDirtyFlag(64)&&(e.Matrix.affineTransformation(this._scale,this.rotationQuaternion,this._position,this._localMatrix),this._setDirtyFlagFalse(64)),this._localMatrix},set:function(t){this._localMatrix!==t&&this._localMatrix.copyFrom(t),this._localMatrix.decompose(this._position,this._rotationQuaternion,this._scale),this._setDirtyFlagTrue(1),this._setDirtyFlagFalse(64),this._updateAllWorldFlag()}},{key:"worldMatrix",get:function(){if(this._isContainDirtyFlag(128)){var t=this._getParentTransform();t?e.Matrix.multiply(t.worldMatrix,this.localMatrix,this._worldMatrix):this._worldMatrix.copyFrom(this.localMatrix),this._setDirtyFlagFalse(128)}return this._worldMatrix},set:function(i){this._worldMatrix!==i&&this._worldMatrix.copyFrom(i);var n=this._getParentTransform();n?(e.Matrix.invert(n.worldMatrix,t._tempMat42),e.Matrix.multiply(t._tempMat42,i,this._localMatrix)):this._localMatrix.copyFrom(i),this.localMatrix=this._localMatrix,this._setDirtyFlagFalse(128)}}]),t}();p._tempQuat0=new e.Quaternion,p._tempMat42=new e.Matrix,(a=l||(l={}))[a.LocalEuler=1]="LocalEuler",a[a.LocalQuat=2]="LocalQuat",a[a.WorldPosition=4]="WorldPosition",a[a.WorldEuler=8]="WorldEuler",a[a.WorldQuat=16]="WorldQuat",a[a.WorldScale=32]="WorldScale",a[a.LocalMatrix=64]="LocalMatrix",a[a.WorldMatrix=128]="WorldMatrix",a[a.WmWp=132]="WmWp",a[a.WmWeWq=152]="WmWeWq",a[a.WmWpWeWq=156]="WmWpWeWq",a[a.WmWs=160]="WmWs",a[a.WmWpWs=164]="WmWpWs",a[a.WmWpWeWqWs=188]="WmWpWeWqWs";var f=function(){function t(){this._shapes=[],this._transform=new p,this._transform.owner=this}var e=t.prototype;return e.addShape=function(t){var e=t._collider;e!==this&&(e&&e.removeShape(t),this._shapes.push(t),t._collider=this)},e.removeShape=function(t){var e=this._shapes.indexOf(t);-1!==e&&(this._shapes.splice(e,1),t._collider=null)},e.setWorldTransform=function(t,e){this._transform.setPosition(t.x,t.y,t.z),this._transform.setRotationQuaternion(e.x,e.y,e.z,e.w)},e.getWorldTransform=function(t,e){var i=this._transform,n=i.position,s=i.rotationQuaternion;t.set(n.x,n.y,n.z),e.set(s.x,s.y,s.z,s.w)},e.destroy=function(){},e._raycast=function(t,e,i){i.distance=Number.MAX_VALUE;for(var n=this._shapes,s=0,o=n.length;s<o;s++){var r=n[s];e(r._id)&&r._raycast(t,i)}return i.distance!=Number.MAX_VALUE},t}(),y=function(t){function e(e,i){var n;return(n=t.call(this)||this)._transform.setPosition(e.x,e.y,e.z),n._transform.setRotationQuaternion(i.x,i.y,i.z,i.w),n}n(e,t);var i=e.prototype;return i.addForce=function(t){throw"Physics-lite don't support addForce. Use Physics-PhysX instead!"},i.addTorque=function(t){throw"Physics-lite don't support addTorque. Use Physics-PhysX instead!"},i.move=function(t,e){throw"Physics-lite don't support move. Use Physics-PhysX instead!"},i.sleep=function(){throw"Physics-lite don't support putToSleep. Use Physics-PhysX instead!"},i.setAngularDamping=function(t){throw"Physics-lite don't support setAngularDamping. Use Physics-PhysX instead!"},i.setAngularVelocity=function(t){throw"Physics-lite don't support setAngularVelocity. Use Physics-PhysX instead!"},i.setCenterOfMass=function(t){throw"Physics-lite don't support setCenterOfMass. Use Physics-PhysX instead!"},i.setCollisionDetectionMode=function(t){throw"Physics-lite don't support setCollisionDetectionMode. Use Physics-PhysX instead!"},i.setConstraints=function(t){throw"Physics-lite don't support setConstraints. Use Physics-PhysX instead!"},i.setInertiaTensor=function(t){throw"Physics-lite don't support setInertiaTensor. Use Physics-PhysX instead!"},i.setIsKinematic=function(t){throw"Physics-lite don't support setIsKinematic. Use Physics-PhysX instead!"},i.setLinearDamping=function(t){throw"Physics-lite don't support setLinearDamping. Use Physics-PhysX instead!"},i.setLinearVelocity=function(t){throw"Physics-lite don't support setLinearVelocity. Use Physics-PhysX instead!"},i.setMass=function(t){throw"Physics-lite don't support setMass. Use Physics-PhysX instead!"},i.setMaxAngularVelocity=function(t){throw"Physics-lite don't support setMaxAngularVelocity. Use Physics-PhysX instead!"},i.setMaxDepenetrationVelocity=function(t){throw"Physics-lite don't support setMaxDepenetrationVelocity. Use Physics-PhysX instead!"},i.setSleepThreshold=function(t){throw"Physics-lite don't support setSleepThreshold. Use Physics-PhysX instead!"},i.setSolverIterations=function(t){throw"Physics-lite don't support setSolverIterations. Use Physics-PhysX instead!"},i.wakeUp=function(){throw"Physics-lite don't support wakeUp. Use Physics-PhysX instead!"},e}(f),g=function(){function t(t,e,i,n,s){}var e=t.prototype;return e.setBounciness=function(t){throw"Physics-lite don't support physics material. Use Physics-PhysX instead!"},e.setDynamicFriction=function(t){throw"Physics-lite don't support physics material. Use Physics-PhysX instead!"},e.setStaticFriction=function(t){throw"Physics-lite don't support physics material. Use Physics-PhysX instead!"},e.setBounceCombine=function(t){throw"Physics-lite don't support physics material. Use Physics-PhysX instead!"},e.setFrictionCombine=function(t){throw"Physics-lite don't support physics material. Use Physics-PhysX instead!"},e.destroy=function(){},t}(),m=function(){function t(t){void 0===t&&(t=0),this.length=0,this._elements=Array(t)}var e=t.prototype;return e.add=function(t){this.length===this._elements.length?this._elements.push(t):this._elements[this.length]=t,this.length++},e.delete=function(t){var e=this._elements.indexOf(t);this.deleteByIndex(e)},e.get=function(t){if(t>=this.length)throw"Index is out of range.";return this._elements[t]},e.deleteByIndex=function(t){var e=this._elements,i=null,n=this.length-1;return t!==n&&(i=e[n],e[t]=i),this.length--,i},e.garbageCollection=function(){this._elements.length=this.length},t}(),P=function(){this.shapeID=-1,this.distance=0,this.point=new e.Vector3,this.normal=new e.Vector3},x=function(t){function i(i,n,s){var o;return(o=t.call(this)||this)._halfSize=new e.Vector3,o._scale=new e.Vector3(1,1,1),o._boxMin=new e.Vector3(-.5,-.5,-.5),o._boxMax=new e.Vector3(.5,.5,.5),o._id=i,o._halfSize.set(.5*n.x,.5*n.y,.5*n.z),o._setBondingBox(),o}n(i,t);var s=i.prototype;return s.setPosition=function(e){t.prototype.setPosition.call(this,e),this._setBondingBox()},s.setWorldScale=function(t){this._transform.position=this._transform.position.multiply(t),this._scale.copyFrom(t)},s.setSize=function(t){this._halfSize.set(.5*t.x,.5*t.y,.5*t.z),this._setBondingBox()},s._raycast=function(t,e){var n=this._getLocalRay(t),s=i._tempBox;s.min.set(-this._halfSize.x*this._scale.x,-this._halfSize.y*this._scale.y,-this._halfSize.z*this._scale.z),s.max.set(this._halfSize.x*this._scale.x,this._halfSize.y*this._scale.y,this._halfSize.z*this._scale.z);var o=n.intersectBox(s);return -1!==o&&(this._updateHitResult(n,o,e,t.origin),!0)},s._setBondingBox=function(){var t=this._transform.position,i=this._halfSize;e.Vector3.add(t,i,this._boxMax),e.Vector3.subtract(t,i,this._boxMin)},i}(_);x._tempBox=new e.BoundingBox;var v=function(t){function i(e,i,n){var s;return(s=t.call(this)||this)._radius=1,s._maxScale=1,s._radius=i,s._id=e,s}n(i,t);var s=i.prototype;return s.setRadius=function(t){this._radius=t},s.setWorldScale=function(t){this._maxScale=Math.max(t.x,t.y,t.z)},s._raycast=function(t,n){var s=i._tempSphere;e.Vector3.transformCoordinate(this._transform.position,this._collider._transform.worldMatrix,s.center),s.radius=this.worldRadius;var o=t.intersectSphere(s);return -1!==o&&(this._updateHitResult(t,o,n,t.origin,!0),!0)},o(i,[{key:"worldRadius",get:function(){return this._radius*this._maxScale}}]),i}(_);v._tempSphere=new e.BoundingSphere;var w=function(){function t(t,i,n,s,o,r){this._colliders=[],this._sphere=new e.BoundingSphere,this._box=new e.BoundingBox,this._currentEvents=new m,this._eventMap={},this._eventPool=[],this._onContactEnter=t,this._onContactExit=i,this._onContactStay=n,this._onTriggerEnter=s,this._onTriggerExit=o,this._onTriggerStay=r}var i=t.prototype;return i.setGravity=function(t){console.log("Physics-lite don't support gravity. Use Physics-PhysX instead!")},i.addColliderShape=function(t){this._eventMap[t._id]={}},i.removeColliderShape=function(t){for(var e=this._eventPool,i=this._currentEvents,n=t._id,s=i.length-1;s>=0;s--){var o=i.get(s);(o.index1==n||o.index2==n)&&(i.deleteByIndex(s),e.push(o))}delete this._eventMap[n]},i.addCollider=function(t){this._colliders.push(t)},i.removeCollider=function(t){var e=this._colliders.indexOf(t);-1!==e&&this._colliders.splice(e,1)},i.update=function(t){for(var e=this._colliders,i=0,n=e.length;i<n;i++)this._collisionDetection(t,e[i]);this._fireEvent()},i.raycast=function(e,i,n,s){var o,r=this._colliders;s&&(o=t._hitResult);for(var a=!1,h=t._currentHit,l=0,c=r.length;l<c;l++)if(r[l]._raycast(e,n,h)&&(a=!0,h.distance<i)){if(!o)return!0;o.normal.copyFrom(h.normal),o.point.copyFrom(h.point),o.distance=h.distance,o.shapeID=h.shapeID,i=h.distance}return!a&&o?(o.shapeID=-1,o.distance=0,o.point.set(0,0,0),o.normal.set(0,0,0)):a&&o&&s(o.shapeID,o.distance,o.point,o.normal),a},i.addCharacterController=function(t){throw"Physics-lite don't support addCharacterController. Use Physics-PhysX instead!"},i.removeCharacterController=function(t){throw"Physics-lite don't support removeCharacterController. Use Physics-PhysX instead!"},i._getTrigger=function(t,e){var i;return this._eventPool.length?((i=this._eventPool.pop()).index1=t,i.index2=e):i=new M(t,e),this._eventMap[t][e]=i,i},i._collisionDetection=function(e,i){for(var n=this._colliders,s=i._shapes,o=0,a=s.length;o<a;o++){var h=s[o];if(r(h,x)){t._updateWorldBox(h,this._box);for(var l=0,c=n.length;l<c;l++)for(var u=n[l]._shapes,d=0,_=u.length;d<_;d++){var p=u[d],f=p._id,y=h._id,g=f<y?this._eventMap[f][y]:this._eventMap[y][f];if((void 0===g||g.alreadyInvoked)&&p!=h&&this._boxCollision(p)){if(void 0===g){var m=f<y?this._getTrigger(f,y):this._getTrigger(y,f);m.state=0,m.alreadyInvoked=!1,this._currentEvents.add(m)}else 0===g.state?(g.state=1,g.alreadyInvoked=!1):1===g.state&&(g.alreadyInvoked=!1)}}}else if(r(h,v)){t._upWorldSphere(h,this._sphere);for(var P=0,w=n.length;P<w;P++)for(var M=n[P]._shapes,F=0,C=M.length;F<C;F++){var W=M[F],S=W._id,U=h._id,D=S<U?this._eventMap[S][U]:this._eventMap[U][S];if((void 0===D||D.alreadyInvoked)&&W!=h&&this._sphereCollision(W)){if(void 0===D){var Q=S<U?this._getTrigger(S,U):this._getTrigger(U,S);Q.state=0,Q.alreadyInvoked=!1,this._currentEvents.add(Q)}else 0===D.state?(D.state=1,D.alreadyInvoked=!1):1===D.state&&(D.alreadyInvoked=!1)}}}}},i._fireEvent=function(){for(var t=this._eventPool,e=this._currentEvents,i=e.length-1;i>=0;i--){var n=e.get(i);n.alreadyInvoked?(n.state=2,this._eventMap[n.index1][n.index2]=void 0,this._onTriggerExit(n.index1,n.index2),e.deleteByIndex(i),t.push(n)):0==n.state?(this._onTriggerEnter(n.index1,n.index2),n.alreadyInvoked=!0):1==n.state&&(this._onTriggerStay(n.index1,n.index2),n.alreadyInvoked=!0)}},i._boxCollision=function(i){if(r(i,x)){var n=t._tempBox;return t._updateWorldBox(i,n),e.CollisionUtil.intersectsBoxAndBox(n,this._box)}if(r(i,v)){var s=t._tempSphere;return t._upWorldSphere(i,s),e.CollisionUtil.intersectsSphereAndBox(s,this._box)}return!1},i._sphereCollision=function(i){if(r(i,x)){var n=t._tempBox;return t._updateWorldBox(i,n),e.CollisionUtil.intersectsSphereAndBox(this._sphere,n)}if(r(i,v)){var s=t._tempSphere;return t._upWorldSphere(i,s),e.CollisionUtil.intersectsSphereAndSphere(s,this._sphere)}return!1},t._updateWorldBox=function(t,i){var n=t._transform.worldMatrix;i.min.copyFrom(t._boxMin),i.max.copyFrom(t._boxMax),e.BoundingBox.transform(i,n,i)},t._upWorldSphere=function(t,i){e.Vector3.transformCoordinate(t._transform.position,t._transform.worldMatrix,i.center),i.radius=t.worldRadius},t}();w._tempSphere=new e.BoundingSphere,w._tempBox=new e.BoundingBox,w._currentHit=new P,w._hitResult=new P,(h=c||(c={}))[h.Enter=0]="Enter",h[h.Stay=1]="Stay",h[h.Exit=2]="Exit";var M=function(t,e){this.alreadyInvoked=!1,this.index1=t,this.index2=e},F=function(t){function e(e,i){var n;return(n=t.call(this)||this)._transform.setPosition(e.x,e.y,e.z),n._transform.setRotationQuaternion(i.x,i.y,i.z,i.w),n}return n(e,t),e}(f),C=function(){function t(){}var e=t.prototype;return e.initialize=function(){return Promise.resolve()},e.createPhysicsManager=function(){return null},e.createPhysicsScene=function(t,e,i,n,s,o,r){return new w(e,i,n,s,o,r)},e.createStaticCollider=function(t,e){return new F(t,e)},e.createDynamicCollider=function(t,e){return new y(t,e)},e.createCharacterController=function(){throw"Physics-lite don't support createCharacterController. Use Physics-PhysX instead!"},e.createPhysicsMaterial=function(t,e,i,n,s){return new g(t,e,i,n,s)},e.createBoxColliderShape=function(t,e,i){return new x(t,e,i)},e.createSphereColliderShape=function(t,e,i){return new v(t,e,i)},e.createPlaneColliderShape=function(t,e){throw"Physics-lite don't support PlaneColliderShape. Use Physics-PhysX instead!"},e.createCapsuleColliderShape=function(t,e,i,n){throw"Physics-lite don't support CapsuleColliderShape. Use Physics-PhysX instead!"},e.createFixedJoint=function(t){throw"Physics-lite don't support CapsuleColliderShape. Use Physics-PhysX instead!"},e.createHingeJoint=function(t){throw"Physics-lite don't support CapsuleColliderShape. Use Physics-PhysX instead!"},e.createSpringJoint=function(t){throw"Physics-lite don't support CapsuleColliderShape. Use Physics-PhysX instead!"},t}();t.LitePhysics=C,Object.defineProperty(t,"__esModule",{value:!0})});
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@galacean/engine")):"function"==typeof define&&define.amd?define(["exports","@galacean/engine"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).Galacean=t.Galacean||{},t.Galacean.PhysicsLite={}),t.Galacean)}(this,function(t,e){"use strict";function i(t,e){return(i=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function n(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&i(t,e)}function s(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e,i){return e&&s(t.prototype,e),i&&s(t,i),t}function r(t,e){return null!=e&&"undefined"!=typeof Symbol&&e[Symbol.hasInstance]?!!e[Symbol.hasInstance](t):t instanceof e}var a,l,h,c,u=function(){function t(t){void 0===t&&(t=[]),this._flags=t,this.flag=!0,this._flags.push(this)}return t.prototype.destroy=function(){e.Utils.removeFromArray(this._flags,this),this._flags=null},t}(),d=function(){function t(){this._updateFlags=[]}var e=t.prototype;return e.register=function(){return new u(this._updateFlags)},e.distribute=function(){for(var t=this._updateFlags,e=t.length-1;e>=0;e--)t[e].flag=!0},t}(),_=function(){function t(){this._position=new e.Vector3,this._worldScale=new e.Vector3(1,1,1),this._transform=new p,this._invModelMatrix=new e.Matrix,this._transform.owner=this,this._inverseWorldMatFlag=this._transform.registerWorldChangeFlag()}var i=t.prototype;return i.setRotation=function(t){console.log("Physics-lite don't support setRotation. Use Physics-PhysX instead!")},i.setPosition=function(t){t!==this._position&&this._position.copyFrom(t),this._setLocalPose()},i.setWorldScale=function(t){t!==this._worldScale&&this._worldScale.copyFrom(t),this._setLocalPose()},i.setContactOffset=function(t){console.log("Physics-lite don't support setContactOffset. Use Physics-PhysX instead!")},i.setMaterial=function(t){console.log("Physics-lite don't support setMaterial. Use Physics-PhysX instead!")},i.setUniqueID=function(t){this._id=t},i.setIsTrigger=function(t){console.log("Physics-lite don't support setIsTrigger. Use Physics-PhysX instead!")},i.destroy=function(){},i._updateHitResult=function(i,n,s,o,r){void 0===r&&(r=!1);var a=t._tempPoint;i.getPoint(n,a),r||e.Vector3.transformCoordinate(a,this._transform.worldMatrix,a);var l=e.Vector3.distance(o,a);l<s.distance&&(s.point.copyFrom(a),s.distance=l,s.shapeID=this._id)},i._getLocalRay=function(i){var n=this._getInvModelMatrix(),s=t._ray;return e.Vector3.transformCoordinate(i.origin,n,s.origin),e.Vector3.transformNormal(i.direction,n,s.direction),s.direction.normalize(),s},i._getInvModelMatrix=function(){return this._inverseWorldMatFlag.flag&&(e.Matrix.invert(this._transform.worldMatrix,this._invModelMatrix),this._inverseWorldMatFlag.flag=!1),this._invModelMatrix},i._setLocalPose=function(){var i=t._tempPoint;e.Vector3.multiply(this._position,this._worldScale,i),this._transform.position=i},t}();_._ray=new e.Ray,_._tempPoint=new e.Vector3;var p=function(){function t(){this._position=new e.Vector3,this._rotation=new e.Vector3,this._rotationQuaternion=new e.Quaternion,this._scale=new e.Vector3(1,1,1),this._worldRotationQuaternion=new e.Quaternion,this._localMatrix=new e.Matrix,this._worldMatrix=new e.Matrix,this._updateFlagManager=new d,this._isParentDirty=!0,this._parentTransformCache=null,this._dirtyFlag=188}var i=t.prototype;return i.setPosition=function(t,e,i){this._position.set(t,e,i),this.position=this._position},i.setRotationQuaternion=function(t,e,i,n){this._rotationQuaternion.set(t,e,i,n),this.rotationQuaternion=this._rotationQuaternion},i.setScale=function(t,e,i){this._scale.set(t,e,i),this.scale=this._scale},i.registerWorldChangeFlag=function(){return this._updateFlagManager.register()},i._updateWorldPositionFlag=function(){if(!this._isContainDirtyFlags(132)&&(this._worldAssociatedChange(132),r(this._owner,y)))for(var t=this._owner._shapes,e=0,i=t.length;e<i;e++)t[e]._transform._updateWorldPositionFlag()},i._updateWorldRotationFlag=function(){if(!this._isContainDirtyFlags(152)&&(this._worldAssociatedChange(152),r(this._owner,y)))for(var t=this._owner._shapes,e=0,i=t.length;e<i;e++)t[e]._transform._updateWorldRotationFlag()},i._updateWorldScaleFlag=function(){if(!this._isContainDirtyFlags(160)&&(this._worldAssociatedChange(160),r(this._owner,y)))for(var t=this._owner._shapes,e=0,i=t.length;e<i;e++)t[e]._transform._updateWorldScaleFlag()},i._updateAllWorldFlag=function(){if(!this._isContainDirtyFlags(188)&&(this._worldAssociatedChange(188),r(this._owner,y)))for(var t=this._owner._shapes,e=0,i=t.length;e<i;e++)t[e]._transform._updateAllWorldFlag()},i._getParentTransform=function(){if(!this._isParentDirty)return this._parentTransformCache;var t=null;return r(this._owner,_)&&(t=this._owner._collider._transform),this._parentTransformCache=t,this._isParentDirty=!1,t},i._isContainDirtyFlags=function(t){return(this._dirtyFlag&t)===t},i._isContainDirtyFlag=function(t){return(this._dirtyFlag&t)!=0},i._setDirtyFlagTrue=function(t){this._dirtyFlag|=t},i._setDirtyFlagFalse=function(t){this._dirtyFlag&=~t},i._worldAssociatedChange=function(t){this._dirtyFlag|=t,this._updateFlagManager.distribute()},o(t,[{key:"owner",set:function(t){this._owner=t}},{key:"position",get:function(){return this._position},set:function(t){this._position!==t&&this._position.copyFrom(t),this._setDirtyFlagTrue(64),this._updateWorldPositionFlag()}},{key:"rotationQuaternion",get:function(){return this._isContainDirtyFlag(2)&&(e.Quaternion.rotationEuler(e.MathUtil.degreeToRadian(this._rotation.x),e.MathUtil.degreeToRadian(this._rotation.y),e.MathUtil.degreeToRadian(this._rotation.z),this._rotationQuaternion),this._setDirtyFlagFalse(2)),this._rotationQuaternion},set:function(t){this._rotationQuaternion!==t&&this._rotationQuaternion.copyFrom(t),this._setDirtyFlagTrue(65),this._setDirtyFlagFalse(2),this._updateWorldRotationFlag()}},{key:"worldRotationQuaternion",get:function(){if(this._isContainDirtyFlag(16)){var t=this._getParentTransform();null!=t?e.Quaternion.multiply(t.worldRotationQuaternion,this.rotationQuaternion,this._worldRotationQuaternion):this._worldRotationQuaternion.copyFrom(this.rotationQuaternion),this._setDirtyFlagFalse(16)}return this._worldRotationQuaternion},set:function(i){this._worldRotationQuaternion!==i&&this._worldRotationQuaternion.copyFrom(i);var n=this._getParentTransform();n?(e.Quaternion.invert(n.worldRotationQuaternion,t._tempQuat0),e.Quaternion.multiply(i,t._tempQuat0,this._rotationQuaternion)):this._rotationQuaternion.copyFrom(i),this.rotationQuaternion=this._rotationQuaternion,this._setDirtyFlagFalse(16)}},{key:"scale",get:function(){return this._scale},set:function(t){this._scale!==t&&this._scale.copyFrom(t),this._setDirtyFlagTrue(64),this._updateWorldScaleFlag()}},{key:"localMatrix",get:function(){return this._isContainDirtyFlag(64)&&(e.Matrix.affineTransformation(this._scale,this.rotationQuaternion,this._position,this._localMatrix),this._setDirtyFlagFalse(64)),this._localMatrix},set:function(t){this._localMatrix!==t&&this._localMatrix.copyFrom(t),this._localMatrix.decompose(this._position,this._rotationQuaternion,this._scale),this._setDirtyFlagTrue(1),this._setDirtyFlagFalse(64),this._updateAllWorldFlag()}},{key:"worldMatrix",get:function(){if(this._isContainDirtyFlag(128)){var t=this._getParentTransform();t?e.Matrix.multiply(t.worldMatrix,this.localMatrix,this._worldMatrix):this._worldMatrix.copyFrom(this.localMatrix),this._setDirtyFlagFalse(128)}return this._worldMatrix},set:function(i){this._worldMatrix!==i&&this._worldMatrix.copyFrom(i);var n=this._getParentTransform();n?(e.Matrix.invert(n.worldMatrix,t._tempMat42),e.Matrix.multiply(t._tempMat42,i,this._localMatrix)):this._localMatrix.copyFrom(i),this.localMatrix=this._localMatrix,this._setDirtyFlagFalse(128)}}]),t}();p._tempQuat0=new e.Quaternion,p._tempMat42=new e.Matrix,(a=h||(h={}))[a.LocalEuler=1]="LocalEuler",a[a.LocalQuat=2]="LocalQuat",a[a.WorldPosition=4]="WorldPosition",a[a.WorldEuler=8]="WorldEuler",a[a.WorldQuat=16]="WorldQuat",a[a.WorldScale=32]="WorldScale",a[a.LocalMatrix=64]="LocalMatrix",a[a.WorldMatrix=128]="WorldMatrix",a[a.WmWp=132]="WmWp",a[a.WmWeWq=152]="WmWeWq",a[a.WmWpWeWq=156]="WmWpWeWq",a[a.WmWs=160]="WmWs",a[a.WmWpWs=164]="WmWpWs",a[a.WmWpWeWqWs=188]="WmWpWeWqWs";var y=function(){function t(){this._shapes=[],this._transform=new p,this._transform.owner=this}var e=t.prototype;return e.addShape=function(t){var e=t._collider;e!==this&&(e&&e.removeShape(t),this._shapes.push(t),t._collider=this)},e.removeShape=function(t){var e=this._shapes.indexOf(t);-1!==e&&(this._shapes.splice(e,1),t._collider=null)},e.setWorldTransform=function(t,e){this._transform.setPosition(t.x,t.y,t.z),this._transform.setRotationQuaternion(e.x,e.y,e.z,e.w)},e.getWorldTransform=function(t,e){var i=this._transform,n=i.position,s=i.rotationQuaternion;t.set(n.x,n.y,n.z),e.set(s.x,s.y,s.z,s.w)},e.destroy=function(){},e._raycast=function(t,e,i){i.distance=Number.MAX_VALUE;for(var n=this._shapes,s=0,o=n.length;s<o;s++){var r=n[s];e(r._id)&&r._raycast(t,i)}return i.distance!=Number.MAX_VALUE},t}(),f=function(t){function e(e,i){var n;return(n=t.call(this)||this)._transform.setPosition(e.x,e.y,e.z),n._transform.setRotationQuaternion(i.x,i.y,i.z,i.w),n}n(e,t);var i=e.prototype;return i.addForce=function(t){throw"Physics-lite don't support addForce. Use Physics-PhysX instead!"},i.addTorque=function(t){throw"Physics-lite don't support addTorque. Use Physics-PhysX instead!"},i.move=function(t,e){throw"Physics-lite don't support move. Use Physics-PhysX instead!"},i.sleep=function(){throw"Physics-lite don't support putToSleep. Use Physics-PhysX instead!"},i.setAngularDamping=function(t){throw"Physics-lite don't support setAngularDamping. Use Physics-PhysX instead!"},i.setAngularVelocity=function(t){throw"Physics-lite don't support setAngularVelocity. Use Physics-PhysX instead!"},i.setCenterOfMass=function(t){throw"Physics-lite don't support setCenterOfMass. Use Physics-PhysX instead!"},i.setCollisionDetectionMode=function(t){throw"Physics-lite don't support setCollisionDetectionMode. Use Physics-PhysX instead!"},i.setConstraints=function(t){throw"Physics-lite don't support setConstraints. Use Physics-PhysX instead!"},i.setInertiaTensor=function(t){throw"Physics-lite don't support setInertiaTensor. Use Physics-PhysX instead!"},i.setIsKinematic=function(t){throw"Physics-lite don't support setIsKinematic. Use Physics-PhysX instead!"},i.setLinearDamping=function(t){throw"Physics-lite don't support setLinearDamping. Use Physics-PhysX instead!"},i.setLinearVelocity=function(t){throw"Physics-lite don't support setLinearVelocity. Use Physics-PhysX instead!"},i.setMass=function(t){throw"Physics-lite don't support setMass. Use Physics-PhysX instead!"},i.setMaxAngularVelocity=function(t){throw"Physics-lite don't support setMaxAngularVelocity. Use Physics-PhysX instead!"},i.setMaxDepenetrationVelocity=function(t){throw"Physics-lite don't support setMaxDepenetrationVelocity. Use Physics-PhysX instead!"},i.setSleepThreshold=function(t){throw"Physics-lite don't support setSleepThreshold. Use Physics-PhysX instead!"},i.setSolverIterations=function(t){throw"Physics-lite don't support setSolverIterations. Use Physics-PhysX instead!"},i.wakeUp=function(){throw"Physics-lite don't support wakeUp. Use Physics-PhysX instead!"},e}(y),g=function(){function t(t,e,i,n,s){}var e=t.prototype;return e.setBounciness=function(t){throw"Physics-lite don't support physics material. Use Physics-PhysX instead!"},e.setDynamicFriction=function(t){throw"Physics-lite don't support physics material. Use Physics-PhysX instead!"},e.setStaticFriction=function(t){throw"Physics-lite don't support physics material. Use Physics-PhysX instead!"},e.setBounceCombine=function(t){throw"Physics-lite don't support physics material. Use Physics-PhysX instead!"},e.setFrictionCombine=function(t){throw"Physics-lite don't support physics material. Use Physics-PhysX instead!"},e.destroy=function(){},t}(),m=function(){function t(t){void 0===t&&(t=0),this.length=0,this._elements=Array(t)}var e=t.prototype;return e.add=function(t){this.length===this._elements.length?this._elements.push(t):this._elements[this.length]=t,this.length++},e.delete=function(t){var e=this._elements.indexOf(t);this.deleteByIndex(e)},e.get=function(t){if(t>=this.length)throw"Index is out of range.";return this._elements[t]},e.deleteByIndex=function(t){var e=this._elements,i=null,n=this.length-1;return t!==n&&(i=e[n],e[t]=i),this.length--,i},e.garbageCollection=function(){this._elements.length=this.length},t}(),P=function(){this.shapeID=-1,this.distance=0,this.point=new e.Vector3,this.normal=new e.Vector3},x=function(t){function i(i,n,s){var o;return(o=t.call(this)||this)._halfSize=new e.Vector3,o._boxMin=new e.Vector3(-.5,-.5,-.5),o._boxMax=new e.Vector3(.5,.5,.5),o._id=i,o._halfSize.set(.5*n.x,.5*n.y,.5*n.z),o._setBondingBox(),o}n(i,t);var s=i.prototype;return s.setPosition=function(e){t.prototype.setPosition.call(this,e),this._setBondingBox()},s.setWorldScale=function(e){t.prototype.setWorldScale.call(this,e),this._setBondingBox()},s.setSize=function(t){this._halfSize.set(.5*t.x,.5*t.y,.5*t.z),this._setBondingBox()},s._raycast=function(t,e){var n=this._getLocalRay(t),s=i._tempBox;s.min.set(-this._halfSize.x*this._worldScale.x,-this._halfSize.y*this._worldScale.y,-this._halfSize.z*this._worldScale.z),s.max.set(this._halfSize.x*this._worldScale.x,this._halfSize.y*this._worldScale.y,this._halfSize.z*this._worldScale.z);var o=n.intersectBox(s);return -1!==o&&(this._updateHitResult(n,o,e,t.origin),!0)},s._setBondingBox=function(){var t=this._transform.position,e=this._worldScale,i=this._halfSize;this._boxMin.set(-i.x*e.x+t.x,-i.y*e.y+t.y,-i.z*e.z+t.z),this._boxMax.set(i.x*e.x+t.x,i.y*e.y+t.y,i.z*e.z+t.z)},i}(_);x._tempBox=new e.BoundingBox;var v=function(t){function i(e,i,n){var s;return(s=t.call(this)||this)._radius=1,s._maxScale=1,s._radius=i,s._id=e,s}n(i,t);var s=i.prototype;return s.setRadius=function(t){this._radius=t},s.setWorldScale=function(e){t.prototype.setWorldScale.call(this,e),this._maxScale=Math.max(e.x,e.y,e.z)},s._raycast=function(t,n){var s=i._tempSphere;e.Vector3.transformCoordinate(this._transform.position,this._collider._transform.worldMatrix,s.center),s.radius=this.worldRadius;var o=t.intersectSphere(s);return -1!==o&&(this._updateHitResult(t,o,n,t.origin,!0),!0)},o(i,[{key:"worldRadius",get:function(){return this._radius*this._maxScale}}]),i}(_);v._tempSphere=new e.BoundingSphere;var w=function(){function t(t,i,n,s,o,r){this._colliders=[],this._sphere=new e.BoundingSphere,this._box=new e.BoundingBox,this._currentEvents=new m,this._eventMap={},this._eventPool=[],this._onContactEnter=t,this._onContactExit=i,this._onContactStay=n,this._onTriggerEnter=s,this._onTriggerExit=o,this._onTriggerStay=r}var i=t.prototype;return i.setGravity=function(t){console.log("Physics-lite don't support gravity. Use Physics-PhysX instead!")},i.addColliderShape=function(t){this._eventMap[t._id]={}},i.removeColliderShape=function(t){for(var e=this._eventPool,i=this._currentEvents,n=t._id,s=i.length-1;s>=0;s--){var o=i.get(s);(o.index1==n||o.index2==n)&&(i.deleteByIndex(s),e.push(o))}delete this._eventMap[n]},i.addCollider=function(t){this._colliders.push(t)},i.removeCollider=function(t){var e=this._colliders.indexOf(t);-1!==e&&this._colliders.splice(e,1)},i.update=function(t){for(var e=this._colliders,i=0,n=e.length;i<n;i++)this._collisionDetection(t,e[i]);this._fireEvent()},i.raycast=function(e,i,n,s){var o,r=this._colliders;s&&(o=t._hitResult);for(var a=!1,l=t._currentHit,h=0,c=r.length;h<c;h++)if(r[h]._raycast(e,n,l)&&(a=!0,l.distance<i)){if(!o)return!0;o.normal.copyFrom(l.normal),o.point.copyFrom(l.point),o.distance=l.distance,o.shapeID=l.shapeID,i=l.distance}return!a&&o?(o.shapeID=-1,o.distance=0,o.point.set(0,0,0),o.normal.set(0,0,0)):a&&o&&s(o.shapeID,o.distance,o.point,o.normal),a},i.addCharacterController=function(t){throw"Physics-lite don't support addCharacterController. Use Physics-PhysX instead!"},i.removeCharacterController=function(t){throw"Physics-lite don't support removeCharacterController. Use Physics-PhysX instead!"},i._getTrigger=function(t,e){var i;return this._eventPool.length?((i=this._eventPool.pop()).index1=t,i.index2=e):i=new M(t,e),this._eventMap[t][e]=i,i},i._collisionDetection=function(e,i){for(var n=this._colliders,s=i._shapes,o=0,a=s.length;o<a;o++){var l=s[o];if(r(l,x)){t._updateWorldBox(l,this._box);for(var h=0,c=n.length;h<c;h++)for(var u=n[h]._shapes,d=0,_=u.length;d<_;d++){var p=u[d],y=p._id,f=l._id,g=y<f?this._eventMap[y][f]:this._eventMap[f][y];if((void 0===g||g.alreadyInvoked)&&p!=l&&this._boxCollision(p)){if(void 0===g){var m=y<f?this._getTrigger(y,f):this._getTrigger(f,y);m.state=0,m.alreadyInvoked=!1,this._currentEvents.add(m)}else 0===g.state?(g.state=1,g.alreadyInvoked=!1):1===g.state&&(g.alreadyInvoked=!1)}}}else if(r(l,v)){t._upWorldSphere(l,this._sphere);for(var P=0,w=n.length;P<w;P++)for(var M=n[P]._shapes,F=0,S=M.length;F<S;F++){var W=M[F],C=W._id,U=l._id,D=C<U?this._eventMap[C][U]:this._eventMap[U][C];if((void 0===D||D.alreadyInvoked)&&W!=l&&this._sphereCollision(W)){if(void 0===D){var Q=C<U?this._getTrigger(C,U):this._getTrigger(U,C);Q.state=0,Q.alreadyInvoked=!1,this._currentEvents.add(Q)}else 0===D.state?(D.state=1,D.alreadyInvoked=!1):1===D.state&&(D.alreadyInvoked=!1)}}}}},i._fireEvent=function(){for(var t=this._eventPool,e=this._currentEvents,i=e.length-1;i>=0;i--){var n=e.get(i);n.alreadyInvoked?(n.state=2,this._eventMap[n.index1][n.index2]=void 0,this._onTriggerExit(n.index1,n.index2),e.deleteByIndex(i),t.push(n)):0==n.state?(this._onTriggerEnter(n.index1,n.index2),n.alreadyInvoked=!0):1==n.state&&(this._onTriggerStay(n.index1,n.index2),n.alreadyInvoked=!0)}},i._boxCollision=function(i){if(r(i,x)){var n=t._tempBox;return t._updateWorldBox(i,n),e.CollisionUtil.intersectsBoxAndBox(n,this._box)}if(r(i,v)){var s=t._tempSphere;return t._upWorldSphere(i,s),e.CollisionUtil.intersectsSphereAndBox(s,this._box)}return!1},i._sphereCollision=function(i){if(r(i,x)){var n=t._tempBox;return t._updateWorldBox(i,n),e.CollisionUtil.intersectsSphereAndBox(this._sphere,n)}if(r(i,v)){var s=t._tempSphere;return t._upWorldSphere(i,s),e.CollisionUtil.intersectsSphereAndSphere(s,this._sphere)}return!1},t._updateWorldBox=function(t,i){var n=t._transform.worldMatrix;i.min.copyFrom(t._boxMin),i.max.copyFrom(t._boxMax),e.BoundingBox.transform(i,n,i)},t._upWorldSphere=function(t,i){e.Vector3.transformCoordinate(t._transform.position,t._transform.worldMatrix,i.center),i.radius=t.worldRadius},t}();w._tempSphere=new e.BoundingSphere,w._tempBox=new e.BoundingBox,w._currentHit=new P,w._hitResult=new P,(l=c||(c={}))[l.Enter=0]="Enter",l[l.Stay=1]="Stay",l[l.Exit=2]="Exit";var M=function(t,e){this.alreadyInvoked=!1,this.index1=t,this.index2=e},F=function(t){function e(e,i){var n;return(n=t.call(this)||this)._transform.setPosition(e.x,e.y,e.z),n._transform.setRotationQuaternion(i.x,i.y,i.z,i.w),n}return n(e,t),e}(y),S=function(){function t(){}var e=t.prototype;return e.initialize=function(){return Promise.resolve()},e.createPhysicsManager=function(){return null},e.createPhysicsScene=function(t,e,i,n,s,o,r){return new w(e,i,n,s,o,r)},e.createStaticCollider=function(t,e){return new F(t,e)},e.createDynamicCollider=function(t,e){return new f(t,e)},e.createCharacterController=function(){throw"Physics-lite don't support createCharacterController. Use Physics-PhysX instead!"},e.createPhysicsMaterial=function(t,e,i,n,s){return new g(t,e,i,n,s)},e.createBoxColliderShape=function(t,e,i){return new x(t,e,i)},e.createSphereColliderShape=function(t,e,i){return new v(t,e,i)},e.createPlaneColliderShape=function(t,e){throw"Physics-lite don't support PlaneColliderShape. Use Physics-PhysX instead!"},e.createCapsuleColliderShape=function(t,e,i,n){throw"Physics-lite don't support CapsuleColliderShape. Use Physics-PhysX instead!"},e.createFixedJoint=function(t){throw"Physics-lite don't support CapsuleColliderShape. Use Physics-PhysX instead!"},e.createHingeJoint=function(t){throw"Physics-lite don't support CapsuleColliderShape. Use Physics-PhysX instead!"},e.createSpringJoint=function(t){throw"Physics-lite don't support CapsuleColliderShape. Use Physics-PhysX instead!"},t}();t.LitePhysics=S,Object.defineProperty(t,"__esModule",{value:!0})});
|
package/dist/main.js
CHANGED
|
@@ -90,6 +90,8 @@ function _instanceof(left, right) {
|
|
|
90
90
|
* Abstract class for collider shapes.
|
|
91
91
|
*/ var LiteColliderShape = /*#__PURE__*/ function() {
|
|
92
92
|
function LiteColliderShape() {
|
|
93
|
+
/** @internal */ this._position = new engine.Vector3();
|
|
94
|
+
/** @internal */ this._worldScale = new engine.Vector3(1, 1, 1);
|
|
93
95
|
/** @internal */ this._transform = new LiteTransform();
|
|
94
96
|
/** @internal */ this._invModelMatrix = new engine.Matrix();
|
|
95
97
|
this._transform.owner = this;
|
|
@@ -104,7 +106,18 @@ function _instanceof(left, right) {
|
|
|
104
106
|
/**
|
|
105
107
|
* {@inheritDoc IColliderShape.setPosition }
|
|
106
108
|
*/ _proto.setPosition = function setPosition(position) {
|
|
107
|
-
|
|
109
|
+
if (position !== this._position) {
|
|
110
|
+
this._position.copyFrom(position);
|
|
111
|
+
}
|
|
112
|
+
this._setLocalPose();
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* {@inheritDoc IColliderShape.setWorldScale }
|
|
116
|
+
*/ _proto.setWorldScale = function setWorldScale(scale) {
|
|
117
|
+
if (scale !== this._worldScale) {
|
|
118
|
+
this._worldScale.copyFrom(scale);
|
|
119
|
+
}
|
|
120
|
+
this._setLocalPose();
|
|
108
121
|
};
|
|
109
122
|
/**
|
|
110
123
|
* {@inheritDoc IColliderShape.setContactOffset }
|
|
@@ -158,6 +171,11 @@ function _instanceof(left, right) {
|
|
|
158
171
|
}
|
|
159
172
|
return this._invModelMatrix;
|
|
160
173
|
};
|
|
174
|
+
_proto._setLocalPose = function _setLocalPose() {
|
|
175
|
+
var shapePosition = LiteColliderShape._tempPoint;
|
|
176
|
+
engine.Vector3.multiply(this._position, this._worldScale, shapePosition);
|
|
177
|
+
this._transform.position = shapePosition;
|
|
178
|
+
};
|
|
161
179
|
return LiteColliderShape;
|
|
162
180
|
}();
|
|
163
181
|
(function() {
|
|
@@ -545,11 +563,11 @@ var /**
|
|
|
545
563
|
|
|
546
564
|
/**
|
|
547
565
|
* A dynamic collider can act with self-defined movement or physical force
|
|
548
|
-
*/ var LiteDynamicCollider = /*#__PURE__*/ function(
|
|
549
|
-
_inherits(LiteDynamicCollider,
|
|
566
|
+
*/ var LiteDynamicCollider = /*#__PURE__*/ function(LiteCollider1) {
|
|
567
|
+
_inherits(LiteDynamicCollider, LiteCollider1);
|
|
550
568
|
function LiteDynamicCollider(position, rotation) {
|
|
551
569
|
var _this;
|
|
552
|
-
_this =
|
|
570
|
+
_this = LiteCollider1.call(this) || this;
|
|
553
571
|
_this._transform.setPosition(position.x, position.y, position.z);
|
|
554
572
|
_this._transform.setRotationQuaternion(rotation.x, rotation.y, rotation.z, rotation.w);
|
|
555
573
|
return _this;
|
|
@@ -747,13 +765,12 @@ var /**
|
|
|
747
765
|
|
|
748
766
|
/**
|
|
749
767
|
* Box collider shape in Lite.
|
|
750
|
-
*/ var LiteBoxColliderShape = /*#__PURE__*/ function(
|
|
751
|
-
_inherits(LiteBoxColliderShape,
|
|
768
|
+
*/ var LiteBoxColliderShape = /*#__PURE__*/ function(LiteColliderShape1) {
|
|
769
|
+
_inherits(LiteBoxColliderShape, LiteColliderShape1);
|
|
752
770
|
function LiteBoxColliderShape(uniqueID, size, material) {
|
|
753
771
|
var _this;
|
|
754
|
-
_this =
|
|
772
|
+
_this = LiteColliderShape1.call(this) || this;
|
|
755
773
|
_this._halfSize = new engine.Vector3();
|
|
756
|
-
_this._scale = new engine.Vector3(1, 1, 1);
|
|
757
774
|
/** @internal */ _this._boxMin = new engine.Vector3(-0.5, -0.5, -0.5);
|
|
758
775
|
/** @internal */ _this._boxMax = new engine.Vector3(0.5, 0.5, 0.5);
|
|
759
776
|
_this._id = uniqueID;
|
|
@@ -765,14 +782,14 @@ var /**
|
|
|
765
782
|
/**
|
|
766
783
|
* {@inheritDoc IColliderShape.setPosition }
|
|
767
784
|
*/ _proto.setPosition = function setPosition(position) {
|
|
768
|
-
|
|
785
|
+
LiteColliderShape1.prototype.setPosition.call(this, position);
|
|
769
786
|
this._setBondingBox();
|
|
770
787
|
};
|
|
771
788
|
/**
|
|
772
789
|
* {@inheritDoc IColliderShape.setWorldScale }
|
|
773
790
|
*/ _proto.setWorldScale = function setWorldScale(scale) {
|
|
774
|
-
|
|
775
|
-
this.
|
|
791
|
+
LiteColliderShape1.prototype.setWorldScale.call(this, scale);
|
|
792
|
+
this._setBondingBox();
|
|
776
793
|
};
|
|
777
794
|
/**
|
|
778
795
|
* {@inheritDoc IBoxColliderShape.setSize }
|
|
@@ -785,8 +802,8 @@ var /**
|
|
|
785
802
|
*/ _proto._raycast = function _raycast(ray, hit) {
|
|
786
803
|
var localRay = this._getLocalRay(ray);
|
|
787
804
|
var boundingBox = LiteBoxColliderShape._tempBox;
|
|
788
|
-
boundingBox.min.set(-this._halfSize.x * this.
|
|
789
|
-
boundingBox.max.set(this._halfSize.x * this.
|
|
805
|
+
boundingBox.min.set(-this._halfSize.x * this._worldScale.x, -this._halfSize.y * this._worldScale.y, -this._halfSize.z * this._worldScale.z);
|
|
806
|
+
boundingBox.max.set(this._halfSize.x * this._worldScale.x, this._halfSize.y * this._worldScale.y, this._halfSize.z * this._worldScale.z);
|
|
790
807
|
var rayDistance = localRay.intersectBox(boundingBox);
|
|
791
808
|
if (rayDistance !== -1) {
|
|
792
809
|
this._updateHitResult(localRay, rayDistance, hit, ray.origin);
|
|
@@ -796,10 +813,11 @@ var /**
|
|
|
796
813
|
}
|
|
797
814
|
};
|
|
798
815
|
_proto._setBondingBox = function _setBondingBox() {
|
|
799
|
-
var
|
|
816
|
+
var position = this._transform.position;
|
|
817
|
+
var scale = this._worldScale;
|
|
800
818
|
var halfSize = this._halfSize;
|
|
801
|
-
|
|
802
|
-
|
|
819
|
+
this._boxMin.set(-halfSize.x * scale.x + position.x, -halfSize.y * scale.y + position.y, -halfSize.z * scale.z + position.z);
|
|
820
|
+
this._boxMax.set(halfSize.x * scale.x + position.x, halfSize.y * scale.y + position.y, halfSize.z * scale.z + position.z);
|
|
803
821
|
};
|
|
804
822
|
return LiteBoxColliderShape;
|
|
805
823
|
}(LiteColliderShape);
|
|
@@ -809,11 +827,11 @@ var /**
|
|
|
809
827
|
|
|
810
828
|
/**
|
|
811
829
|
* Sphere collider shape in Lite.
|
|
812
|
-
*/ var LiteSphereColliderShape = /*#__PURE__*/ function(
|
|
813
|
-
_inherits(LiteSphereColliderShape,
|
|
830
|
+
*/ var LiteSphereColliderShape = /*#__PURE__*/ function(LiteColliderShape1) {
|
|
831
|
+
_inherits(LiteSphereColliderShape, LiteColliderShape1);
|
|
814
832
|
function LiteSphereColliderShape(uniqueID, radius, material) {
|
|
815
833
|
var _this;
|
|
816
|
-
_this =
|
|
834
|
+
_this = LiteColliderShape1.call(this) || this;
|
|
817
835
|
_this._radius = 1;
|
|
818
836
|
_this._maxScale = 1;
|
|
819
837
|
_this._radius = radius;
|
|
@@ -829,6 +847,7 @@ var /**
|
|
|
829
847
|
/**
|
|
830
848
|
* {@inheritDoc IColliderShape.setWorldScale }
|
|
831
849
|
*/ _proto.setWorldScale = function setWorldScale(scale) {
|
|
850
|
+
LiteColliderShape1.prototype.setWorldScale.call(this, scale);
|
|
832
851
|
this._maxScale = Math.max(scale.x, scale.y, scale.z);
|
|
833
852
|
};
|
|
834
853
|
/**
|
|
@@ -1140,11 +1159,11 @@ var /**
|
|
|
1140
1159
|
/**
|
|
1141
1160
|
* A static collider component that will not move.
|
|
1142
1161
|
* @remarks Mostly used for object which always stays at the same place and never moves around.
|
|
1143
|
-
*/ var LiteStaticCollider = /*#__PURE__*/ function(
|
|
1144
|
-
_inherits(LiteStaticCollider,
|
|
1162
|
+
*/ var LiteStaticCollider = /*#__PURE__*/ function(LiteCollider1) {
|
|
1163
|
+
_inherits(LiteStaticCollider, LiteCollider1);
|
|
1145
1164
|
function LiteStaticCollider(position, rotation) {
|
|
1146
1165
|
var _this;
|
|
1147
|
-
_this =
|
|
1166
|
+
_this = LiteCollider1.call(this) || this;
|
|
1148
1167
|
_this._transform.setPosition(position.x, position.y, position.z);
|
|
1149
1168
|
_this._transform.setRotationQuaternion(rotation.x, rotation.y, rotation.z, rotation.w);
|
|
1150
1169
|
return _this;
|