Transaction 3c32abc7d6fd1cfeccbe6d70f436756f783d99ebbb02a8f09f4249b266da6985
1 Input
-
efb78b8ef7a6b9a33a08baaa08b3699845f899dcd1ce2a6f59b66ac487b3d65d:0
OP_DATA_32(32) 117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423eOP_CHECKSIG(172)OP_DATA_6(6) R,OP_DROP(117)OP_0(0)OP_IF(99)OP_DATA_3(3) ordOP_DATA_1(1)OP_DATA_15(15) text/javascriptOP_0(0)OP_PUSHDATA2(77) var CollisionPatch = pc.createScript('collisionPatch'); CollisionPatch.prototype.initialize = function() { const entity = new pc.Entity(); entity.addComponent('collision', { type: 'mesh', asset: new pc.Mesh() }); this.app.systems.collision.implementations.mesh.createAmmoMesh = function(mesh, node, shape) { let triMesh; const vb = mesh.vertexBuffer; const format = vb.getFormat(); let stride; let positions; for (let i = 0; i < formatOP_PUSHDATA2(77) .elements.length; i++) { const element = format.elements[i]; if (element.name === pc.SEMANTIC_POSITION) { positions = new Float32Array(vb.lock(), element.offset); stride = element.stride / 4; break; } } const indices = []; mesh.getIndices(indices); const numTriangles = mesh.primitive[0].count / 3; const v1 = new Ammo.btVector3(); const v2 = new Ammo.btVector3(); const v3 = neOP_PUSHDATA2(77) w Ammo.btVector3(); let i1, i2, i3; const base = mesh.primitive[0].base; triMesh = new Ammo.btTriangleMesh(); for (let i = 0; i < numTriangles; i++) { i1 = indices[base + i * 3] * stride; i2 = indices[base + i * 3 + 1] * stride; i3 = indices[base + i * 3 + 2] * stride; v1.setValue(positions[i1], positions[i1 + 1], positions[i1 + 2]); v2.setValue(positions[i2], positions[i2 + 1], positions[i2 + 2]); v3.setValue(OP_PUSHDATA2(77) positions[i3], positions[i3 + 1], positions[i3 + 2]); triMesh.addTriangle(v1, v2, v3, true); } Ammo.destroy(v1); Ammo.destroy(v2); Ammo.destroy(v3); const useQuantizedAabbCompression = true; const triMeshShape = new Ammo.btBvhTriangleMeshShape(triMesh, useQuantizedAabbCompression); const scaling = this.system._getNodeScaling(node); triMeshShape.setLocalScaling(scaling); Ammo.destroy(scaling); const transform = this.systOP_PUSHDATA1(76) em._getNodeTransform(node); shape.addChildShape(transform, triMeshShape); Ammo.destroy(transform); } };OP_ENDIF(104)
2 Outputs
- 3c32abc7d6fd1cfeccbe6d70f436756f783d99ebbb02a8f09f4249b266da6985:0
- 3c32abc7d6fd1cfeccbe6d70f436756f783d99ebbb02a8f09f4249b266da6985:1
value 546
address bc1pvlhrdze7vltj7q04ml2crnx7l3lh2w7gldxnch09vptten36mupswcsmm4
value 1947
address bc1qar3jzhlfj9v0uz4umtm2evk4t7yx7gc3uvdmdh