@galacean/engine-physics-lite 2.0.0-alpha.2 → 2.0.0-alpha.21
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 +49 -45
- package/dist/browser.js.map +1 -1
- package/dist/browser.min.js +1 -1
- package/dist/browser.min.js.map +1 -1
- package/dist/main.js +49 -45
- package/dist/main.js.map +1 -1
- package/dist/module.js +49 -45
- package/dist/module.js.map +1 -1
- package/package.json +4 -4
- package/types/LitePhysics.d.ts +3 -3
- package/types/LitePhysicsScene.d.ts +14 -11
package/dist/browser.js
CHANGED
|
@@ -916,21 +916,21 @@
|
|
|
916
916
|
/**
|
|
917
917
|
* A manager is a collection of colliders and constraints which can interact.
|
|
918
918
|
*/ var LitePhysicsScene = /*#__PURE__*/ function() {
|
|
919
|
-
function LitePhysicsScene(physics
|
|
919
|
+
function LitePhysicsScene(physics) {
|
|
920
920
|
this._staticColliders = [];
|
|
921
921
|
this._dynamicColliders = [];
|
|
922
922
|
this._sphere = new engine.BoundingSphere();
|
|
923
923
|
this._box = new engine.BoundingBox();
|
|
924
|
-
this.
|
|
924
|
+
this._activeTriggers = new engine.DisorderedArray();
|
|
925
925
|
this._eventMap = {};
|
|
926
|
-
this.
|
|
926
|
+
this._triggerEventPool = [];
|
|
927
|
+
this._triggerEvents = [];
|
|
928
|
+
this._physicsEvents = {
|
|
929
|
+
contactEvents: [],
|
|
930
|
+
contactEventCount: 0,
|
|
931
|
+
triggerEvents: []
|
|
932
|
+
};
|
|
927
933
|
this._physics = physics;
|
|
928
|
-
this._onContactEnter = onContactEnter;
|
|
929
|
-
this._onContactExit = onContactExit;
|
|
930
|
-
this._onContactStay = onContactStay;
|
|
931
|
-
this._onTriggerEnter = onTriggerEnter;
|
|
932
|
-
this._onTriggerExit = onTriggerExit;
|
|
933
|
-
this._onTriggerStay = onTriggerStay;
|
|
934
934
|
}
|
|
935
935
|
var _proto = LitePhysicsScene.prototype;
|
|
936
936
|
_proto.overlapBox = function overlapBox(center, orientation, halfExtents, onOverlap, outHitResult) {
|
|
@@ -979,7 +979,29 @@
|
|
|
979
979
|
this._collisionDetection(collider, this._staticColliders);
|
|
980
980
|
this._collisionDetection(collider, dynamicColliders);
|
|
981
981
|
}
|
|
982
|
-
|
|
982
|
+
};
|
|
983
|
+
/**
|
|
984
|
+
* {@inheritDoc IPhysicsScene.updateEvents }
|
|
985
|
+
*/ _proto.updateEvents = function updateEvents() {
|
|
986
|
+
var _this = this;
|
|
987
|
+
var _this1 = this, triggerEventPool = _this1._triggerEventPool, activeTriggers = _this1._activeTriggers, triggerEvents = _this1._triggerEvents, physicsEvents = _this1._physicsEvents;
|
|
988
|
+
triggerEvents.length = 0;
|
|
989
|
+
activeTriggers.forEach(function(event, i) {
|
|
990
|
+
if (!event.alreadyInvoked) {
|
|
991
|
+
event.dispatchState = event.state;
|
|
992
|
+
triggerEvents.push(event);
|
|
993
|
+
event.alreadyInvoked = true;
|
|
994
|
+
} else {
|
|
995
|
+
event.state = 2;
|
|
996
|
+
event.dispatchState = 2;
|
|
997
|
+
_this._eventMap[event.index1][event.index2] = undefined;
|
|
998
|
+
activeTriggers.deleteByIndex(i);
|
|
999
|
+
triggerEvents.push(event);
|
|
1000
|
+
triggerEventPool.push(event);
|
|
1001
|
+
}
|
|
1002
|
+
});
|
|
1003
|
+
physicsEvents.triggerEvents = triggerEvents;
|
|
1004
|
+
return physicsEvents;
|
|
983
1005
|
};
|
|
984
1006
|
/**
|
|
985
1007
|
* {@inheritDoc IPhysicsScene.raycast }
|
|
@@ -1046,6 +1068,9 @@
|
|
|
1046
1068
|
throw new Error("Physics-lite doesn't support overlapCapsuleAll. Use Physics-PhysX instead!");
|
|
1047
1069
|
};
|
|
1048
1070
|
/**
|
|
1071
|
+
* {@inheritDoc IPhysicsScene.gc }
|
|
1072
|
+
*/ _proto.gc = function gc() {};
|
|
1073
|
+
/**
|
|
1049
1074
|
* {@inheritDoc IPhysicsScene.destroy }
|
|
1050
1075
|
*/ _proto.destroy = function destroy() {};
|
|
1051
1076
|
/**
|
|
@@ -1056,15 +1081,15 @@
|
|
|
1056
1081
|
/**
|
|
1057
1082
|
* @internal
|
|
1058
1083
|
*/ _proto._removeColliderShape = function _removeColliderShape(colliderShape) {
|
|
1059
|
-
var _this = this,
|
|
1084
|
+
var _this = this, triggerEventPool = _this._triggerEventPool, activeTriggers = _this._activeTriggers, eventMap = _this._eventMap;
|
|
1060
1085
|
var id = colliderShape._id;
|
|
1061
|
-
|
|
1086
|
+
activeTriggers.forEach(function(event, i) {
|
|
1062
1087
|
if (event.index1 == id) {
|
|
1063
|
-
|
|
1064
|
-
|
|
1088
|
+
activeTriggers.deleteByIndex(i);
|
|
1089
|
+
triggerEventPool.push(event);
|
|
1065
1090
|
} else if (event.index2 == id) {
|
|
1066
|
-
|
|
1067
|
-
|
|
1091
|
+
activeTriggers.deleteByIndex(i);
|
|
1092
|
+
triggerEventPool.push(event);
|
|
1068
1093
|
// If the shape is big index, should clear from the small index shape subMap
|
|
1069
1094
|
eventMap[event.index1][id] = undefined;
|
|
1070
1095
|
}
|
|
@@ -1073,8 +1098,8 @@
|
|
|
1073
1098
|
};
|
|
1074
1099
|
_proto._getTrigger = function _getTrigger(index1, index2) {
|
|
1075
1100
|
var event;
|
|
1076
|
-
if (this.
|
|
1077
|
-
event = this.
|
|
1101
|
+
if (this._triggerEventPool.length) {
|
|
1102
|
+
event = this._triggerEventPool.pop();
|
|
1078
1103
|
event.index1 = index1;
|
|
1079
1104
|
event.index2 = index2;
|
|
1080
1105
|
} else {
|
|
@@ -1109,7 +1134,7 @@
|
|
|
1109
1134
|
var event1 = index1 < index2 ? this._getTrigger(index1, index2) : this._getTrigger(index2, index1);
|
|
1110
1135
|
event1.state = 0;
|
|
1111
1136
|
event1.alreadyInvoked = false;
|
|
1112
|
-
this.
|
|
1137
|
+
this._activeTriggers.add(event1);
|
|
1113
1138
|
} else if (event.state === 0) {
|
|
1114
1139
|
event.state = 1;
|
|
1115
1140
|
event.alreadyInvoked = false;
|
|
@@ -1141,7 +1166,7 @@
|
|
|
1141
1166
|
var event3 = index11 < index21 ? this._getTrigger(index11, index21) : this._getTrigger(index21, index11);
|
|
1142
1167
|
event3.state = 0;
|
|
1143
1168
|
event3.alreadyInvoked = false;
|
|
1144
|
-
this.
|
|
1169
|
+
this._activeTriggers.add(event3);
|
|
1145
1170
|
} else if (event2.state === 0) {
|
|
1146
1171
|
event2.state = 1;
|
|
1147
1172
|
event2.alreadyInvoked = false;
|
|
@@ -1154,27 +1179,6 @@
|
|
|
1154
1179
|
}
|
|
1155
1180
|
}
|
|
1156
1181
|
};
|
|
1157
|
-
_proto._fireEvent = function _fireEvent() {
|
|
1158
|
-
var _this = this;
|
|
1159
|
-
var _this1 = this, eventPool = _this1._eventPool, currentEvents = _this1._currentEvents;
|
|
1160
|
-
currentEvents.forEach(function(event, i) {
|
|
1161
|
-
if (!event.alreadyInvoked) {
|
|
1162
|
-
if (event.state == 0) {
|
|
1163
|
-
_this._onTriggerEnter(event.index1, event.index2);
|
|
1164
|
-
event.alreadyInvoked = true;
|
|
1165
|
-
} else if (event.state == 1) {
|
|
1166
|
-
_this._onTriggerStay(event.index1, event.index2);
|
|
1167
|
-
event.alreadyInvoked = true;
|
|
1168
|
-
}
|
|
1169
|
-
} else {
|
|
1170
|
-
event.state = 2;
|
|
1171
|
-
_this._eventMap[event.index1][event.index2] = undefined;
|
|
1172
|
-
currentEvents.deleteByIndex(i);
|
|
1173
|
-
_this._onTriggerExit(event.index1, event.index2);
|
|
1174
|
-
eventPool.push(event);
|
|
1175
|
-
}
|
|
1176
|
-
});
|
|
1177
|
-
};
|
|
1178
1182
|
_proto._boxCollision = function _boxCollision(other) {
|
|
1179
1183
|
if (_instanceof(other, LiteBoxColliderShape)) {
|
|
1180
1184
|
var box = LitePhysicsScene._tempBox;
|
|
@@ -1290,8 +1294,8 @@
|
|
|
1290
1294
|
};
|
|
1291
1295
|
/**
|
|
1292
1296
|
* {@inheritDoc IPhysics.createPhysicsScene }
|
|
1293
|
-
*/ _proto.createPhysicsScene = function createPhysicsScene(physicsManager
|
|
1294
|
-
return new LitePhysicsScene(this
|
|
1297
|
+
*/ _proto.createPhysicsScene = function createPhysicsScene(physicsManager) {
|
|
1298
|
+
return new LitePhysicsScene(this);
|
|
1295
1299
|
};
|
|
1296
1300
|
/**
|
|
1297
1301
|
* {@inheritDoc IPhysics.createStaticCollider }
|
|
@@ -1335,7 +1339,7 @@
|
|
|
1335
1339
|
};
|
|
1336
1340
|
/**
|
|
1337
1341
|
* {@inheritDoc IPhysics.createMeshColliderShape }
|
|
1338
|
-
*/ _proto.createMeshColliderShape = function createMeshColliderShape(uniqueID,
|
|
1342
|
+
*/ _proto.createMeshColliderShape = function createMeshColliderShape(uniqueID, positions, indices, isConvex, material, cookingFlags) {
|
|
1339
1343
|
throw new Error("Physics-lite doesn't support MeshColliderShape. Use Physics-PhysX instead!");
|
|
1340
1344
|
};
|
|
1341
1345
|
/**
|
|
@@ -1394,7 +1398,7 @@
|
|
|
1394
1398
|
}();
|
|
1395
1399
|
|
|
1396
1400
|
//@ts-ignore
|
|
1397
|
-
var version = "2.0.0-alpha.
|
|
1401
|
+
var version = "2.0.0-alpha.21";
|
|
1398
1402
|
console.log("Galacean Engine Physics Lite Version: " + version);
|
|
1399
1403
|
|
|
1400
1404
|
exports.LitePhysics = LitePhysics;
|