@galacean/engine-physics-lite 0.9.0 → 0.9.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.
@@ -26236,21 +26236,31 @@ var MeshParser = /*#__PURE__*/ function(Parser1) {
26236
26236
  var vertexCount;
26237
26237
  var bufferBindIndex = 0;
26238
26238
  var positions;
26239
- keepMeshData && (positions = new Array(vertexCount));
26239
+ var boneIndices;
26240
+ var boneWeights;
26241
+ if (keepMeshData) {
26242
+ positions = new Array(vertexCount);
26243
+ boneIndices = new Array(vertexCount);
26244
+ boneWeights = new Array(vertexCount);
26245
+ }
26240
26246
  for(var attribute in attributes){
26241
26247
  var accessor = accessors[attributes[attribute]];
26242
26248
  var accessorBuffer = GLTFUtil.getAccessorBuffer(context, gltf, accessor);
26243
- var dataElmentSize = GLTFUtil.getAccessorTypeSize(accessor.type);
26244
- var attributeCount = accessor.count;
26249
+ var dataElementSize = GLTFUtil.getAccessorTypeSize(accessor.type);
26250
+ var accessorCount = accessor.count;
26245
26251
  var vertices = accessorBuffer.data;
26246
26252
  var vertexElement = void 0;
26247
26253
  var meshId = mesh.instanceId;
26248
26254
  var vertexBindingInfos = accessorBuffer.vertexBindingInfos;
26249
- var elementFormat = GLTFUtil.getElementFormat(accessor.componentType, dataElmentSize, accessor.normalized);
26255
+ var elementNormalized = accessor.normalized;
26256
+ var elementFormat = GLTFUtil.getElementFormat(accessor.componentType, dataElementSize, elementNormalized);
26257
+ var scaleFactor = void 0;
26258
+ elementNormalized && (scaleFactor = GLTFUtil.getNormalizedComponentScale(accessor.componentType));
26259
+ var elementOffset = void 0;
26250
26260
  if (accessorBuffer.interleaved) {
26251
26261
  var byteOffset = accessor.byteOffset || 0;
26252
26262
  var stride = accessorBuffer.stride;
26253
- var elementOffset = byteOffset % stride;
26263
+ elementOffset = byteOffset % stride;
26254
26264
  if (vertexBindingInfos[meshId] === undefined) {
26255
26265
  vertexElement = new miniprogram$5.VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
26256
26266
  var vertexBuffer = accessorBuffer.vertexBuffer;
@@ -26265,7 +26275,8 @@ var MeshParser = /*#__PURE__*/ function(Parser1) {
26265
26275
  vertexElement = new miniprogram$5.VertexElement(attribute, elementOffset, elementFormat, vertexBindingInfos[meshId]);
26266
26276
  }
26267
26277
  } else {
26268
- vertexElement = new miniprogram$5.VertexElement(attribute, 0, elementFormat, bufferBindIndex);
26278
+ elementOffset = 0;
26279
+ vertexElement = new miniprogram$5.VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
26269
26280
  var vertexBuffer1 = new miniprogram$5.Buffer(engine, miniprogram$5.BufferBindFlag.VertexBuffer, vertices.byteLength, miniprogram$5.BufferUsage.Static);
26270
26281
  vertexBuffer1.setData(vertices);
26271
26282
  mesh.setVertexBufferBinding(vertexBuffer1, accessorBuffer.stride, bufferBindIndex);
@@ -26273,35 +26284,60 @@ var MeshParser = /*#__PURE__*/ function(Parser1) {
26273
26284
  }
26274
26285
  vertexElements.push(vertexElement);
26275
26286
  if (attribute === "POSITION") {
26276
- vertexCount = attributeCount;
26287
+ vertexCount = accessorCount;
26277
26288
  var _mesh_bounds = mesh.bounds, min = _mesh_bounds.min, max = _mesh_bounds.max;
26278
26289
  if (accessor.min && accessor.max) {
26279
26290
  min.copyFromArray(accessor.min);
26280
26291
  max.copyFromArray(accessor.max);
26281
26292
  if (keepMeshData) {
26282
- var stride1 = vertices.length / attributeCount;
26283
- for(var j = 0; j < attributeCount; j++){
26284
- var offset = j * stride1;
26285
- positions[j] = new miniprogram$1$2.Vector3(vertices[offset], vertices[offset + 1], vertices[offset + 2]);
26293
+ var baseOffset = elementOffset / vertices.BYTES_PER_ELEMENT;
26294
+ var stride1 = vertices.length / accessorCount;
26295
+ for(var j = 0; j < accessorCount; j++){
26296
+ var offset = baseOffset + j * stride1;
26297
+ var position = new miniprogram$1$2.Vector3(vertices[offset], vertices[offset + 1], vertices[offset + 2]);
26298
+ elementNormalized && position.scale(scaleFactor);
26299
+ positions[j] = position;
26286
26300
  }
26287
26301
  }
26288
26302
  } else {
26289
- var position = MeshParser._tempVector3;
26303
+ var position1 = MeshParser._tempVector3;
26290
26304
  min.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
26291
26305
  max.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
26292
- var stride2 = vertices.length / attributeCount;
26293
- for(var j1 = 0; j1 < attributeCount; j1++){
26294
- var offset1 = j1 * stride2;
26295
- position.copyFromArray(vertices, offset1);
26296
- miniprogram$1$2.Vector3.min(min, position, min);
26297
- miniprogram$1$2.Vector3.max(max, position, max);
26298
- keepMeshData && (positions[j1] = position.clone());
26306
+ var baseOffset1 = elementOffset / vertices.BYTES_PER_ELEMENT;
26307
+ var stride2 = vertices.length / accessorCount;
26308
+ for(var j1 = 0; j1 < accessorCount; j1++){
26309
+ var offset1 = baseOffset1 + j1 * stride2;
26310
+ position1.copyFromArray(vertices, offset1);
26311
+ miniprogram$1$2.Vector3.min(min, position1, min);
26312
+ miniprogram$1$2.Vector3.max(max, position1, max);
26313
+ if (keepMeshData) {
26314
+ var clonePosition = position1.clone();
26315
+ elementNormalized && clonePosition.scale(scaleFactor);
26316
+ positions[j1] = clonePosition;
26317
+ }
26299
26318
  }
26300
26319
  }
26301
- if (accessor.normalized) {
26302
- var sacleFactor = GLTFUtil.getNormalizedComponentScale(accessor.componentType);
26303
- min.scale(sacleFactor);
26304
- max.scale(sacleFactor);
26320
+ if (elementNormalized) {
26321
+ min.scale(scaleFactor);
26322
+ max.scale(scaleFactor);
26323
+ }
26324
+ } else if (attribute === "JOINTS_0" && keepMeshData) {
26325
+ var baseOffset2 = elementOffset / vertices.BYTES_PER_ELEMENT;
26326
+ var stride3 = vertices.length / accessorCount;
26327
+ for(var j2 = 0; j2 < accessorCount; j2++){
26328
+ var offset2 = baseOffset2 + j2 * stride3;
26329
+ var boneIndex = new miniprogram$1$2.Vector4(vertices[offset2], vertices[offset2 + 1], vertices[offset2 + 2], vertices[offset2 + 3]);
26330
+ elementNormalized && boneIndex.scale(scaleFactor);
26331
+ boneIndices[j2] = boneIndex;
26332
+ }
26333
+ } else if (attribute === "WEIGHTS_0" && keepMeshData) {
26334
+ var baseOffset3 = elementOffset / vertices.BYTES_PER_ELEMENT;
26335
+ var stride4 = vertices.length / accessorCount;
26336
+ for(var j3 = 0; j3 < accessorCount; j3++){
26337
+ var offset3 = baseOffset3 + j3 * stride4;
26338
+ var boneWeight = new miniprogram$1$2.Vector4(vertices[offset3], vertices[offset3 + 1], vertices[offset3 + 2], vertices[offset3 + 3]);
26339
+ elementNormalized && boneWeight.scale(scaleFactor);
26340
+ boneWeights[j3] = boneWeight;
26305
26341
  }
26306
26342
  }
26307
26343
  }
@@ -26320,6 +26356,10 @@ var MeshParser = /*#__PURE__*/ function(Parser1) {
26320
26356
  mesh.uploadData(!keepMeshData);
26321
26357
  //@ts-ignore
26322
26358
  mesh._positions = positions;
26359
+ //@ts-ignore
26360
+ mesh._boneIndices = boneIndices;
26361
+ //@ts-ignore
26362
+ mesh._boneWeights = boneWeights;
26323
26363
  return Promise.resolve(mesh);
26324
26364
  };
26325
26365
  _proto._createBlendShape = function _createBlendShape(mesh, glTFMesh, glTFTargets, getBlendShapeData) {
@@ -35611,7 +35651,7 @@ function _interopNamespace(e) {
35611
35651
  }
35612
35652
  var CoreObjects__namespace = /*#__PURE__*/ _interopNamespace(CoreObjects);
35613
35653
  //@ts-ignore
35614
- var version = "0.9.0";
35654
+ var version = "0.9.1";
35615
35655
  console.log("Galacean engine version: " + version);
35616
35656
  for(var key in CoreObjects__namespace){
35617
35657
  CoreObjects.Loader.registerClass(key, CoreObjects__namespace[key]);