@needle-tools/engine 4.8.0-next.4eaf70a → 4.8.0-next.58ab763

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.
Files changed (52) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/{generateMeshBVH.worker-BaNp_Xtp.js → generateMeshBVH.worker-2qGLkQjg.js} +1 -1
  3. package/dist/{gltf-progressive-CeuEsYpY.min.js → gltf-progressive-C0OrHmZf.min.js} +4 -4
  4. package/dist/{gltf-progressive-DY5t1MFv.js → gltf-progressive-CqwFE7bV.js} +78 -63
  5. package/dist/{gltf-progressive--2HtE1d8.umd.cjs → gltf-progressive-VK6wRj74.umd.cjs} +3 -3
  6. package/dist/loader.worker-CrU5fNbR.js +27 -0
  7. package/dist/{needle-engine.bundle-1687n4dK.js → needle-engine.bundle-C-obl9GH.js} +1799 -1781
  8. package/dist/{needle-engine.bundle-CooE_ge1.umd.cjs → needle-engine.bundle-D2j8atLK.umd.cjs} +87 -87
  9. package/dist/{needle-engine.bundle-BayRUkg4.min.js → needle-engine.bundle-DYYKGkWL.min.js} +101 -101
  10. package/dist/needle-engine.js +21 -21
  11. package/dist/needle-engine.min.js +1 -1
  12. package/dist/needle-engine.umd.cjs +1 -1
  13. package/dist/{postprocessing-DtxaELce.umd.cjs → postprocessing-BgC7XZwK.umd.cjs} +1 -1
  14. package/dist/{postprocessing-DElbMQgB.js → postprocessing-DddlM3CK.js} +1 -1
  15. package/dist/rapier--oeYP_h7.umd.cjs +1 -0
  16. package/dist/{rapier-CU5cp-KB.js → rapier-B3xpyPtq.js} +88 -88
  17. package/dist/{three-examples-CM6Iip03.js → three-examples-BIuXQPSf.js} +6 -6
  18. package/dist/{three-examples-BhQvv1B9.umd.cjs → three-examples-CNRuT27G.umd.cjs} +2 -2
  19. package/dist/{vendor-ClB-U1Hn.js → vendor-CGONwIc0.js} +73 -73
  20. package/dist/vendor-Cty8Dnri.umd.cjs +1121 -0
  21. package/lib/engine/engine_gizmos.d.ts +3 -2
  22. package/lib/engine/engine_gizmos.js +6 -1
  23. package/lib/engine/engine_gizmos.js.map +1 -1
  24. package/lib/engine/engine_lightdata.js +2 -0
  25. package/lib/engine/engine_lightdata.js.map +1 -1
  26. package/lib/engine/engine_physics.d.ts +1 -1
  27. package/lib/engine/engine_physics_rapier.d.ts +12 -3
  28. package/lib/engine/engine_physics_rapier.js +28 -7
  29. package/lib/engine/engine_physics_rapier.js.map +1 -1
  30. package/lib/engine/engine_serialization_builtin_serializer.js +1 -1
  31. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  32. package/lib/engine/engine_types.d.ts +12 -5
  33. package/lib/engine/engine_types.js +1 -1
  34. package/lib/engine/engine_types.js.map +1 -1
  35. package/lib/engine/engine_utils_format.js +8 -2
  36. package/lib/engine/engine_utils_format.js.map +1 -1
  37. package/lib/engine/extensions/extensions.js +1 -1
  38. package/lib/engine/extensions/extensions.js.map +1 -1
  39. package/package.json +2 -2
  40. package/plugins/vite/asap.js +1 -1
  41. package/plugins/vite/dependencies.js +28 -19
  42. package/plugins/vite/dependency-watcher.js +6 -1
  43. package/src/engine/engine_gizmos.ts +4 -1
  44. package/src/engine/engine_lightdata.ts +2 -0
  45. package/src/engine/engine_physics_rapier.ts +31 -10
  46. package/src/engine/engine_serialization_builtin_serializer.ts +1 -1
  47. package/src/engine/engine_types.ts +14 -5
  48. package/src/engine/engine_utils_format.ts +9 -2
  49. package/src/engine/extensions/extensions.ts +1 -1
  50. package/dist/loader.worker-8olmVOL4.js +0 -1
  51. package/dist/rapier-CUe6_xwE.umd.cjs +0 -1
  52. package/dist/vendor-bOWOWClg.umd.cjs +0 -1121
@@ -1,6 +1,6 @@
1
1
  /// <reference types="webxr" />
2
2
  import type { QueryFilterFlags, World } from "@dimforge/rapier3d-compat";
3
- import { AnimationClip, Color, Material, Mesh, Object3D, Quaternion } from "three";
3
+ import { AnimationClip, Color, Material, Mesh, Object3D, Quaternion, Vector4Like } from "three";
4
4
  import { Vector3 } from "three";
5
5
  import { type GLTF as THREE_GLTF } from "three/examples/jsm/loaders/GLTFLoader.js";
6
6
  import type { Camera as CameraComponent } from "../engine-components/api.js";
@@ -335,9 +335,9 @@ export type RaycastResult = null | {
335
335
  collider: ICollider;
336
336
  normal?: Vector3;
337
337
  };
338
- export declare class SphereOverlapResult {
339
- object: Object3D;
340
- collider: ICollider;
338
+ export declare class ShapeOverlapResult {
339
+ readonly object: Object3D;
340
+ readonly collider: ICollider;
341
341
  constructor(object: Object3D, collider: ICollider);
342
342
  }
343
343
  export interface IPhysicsEngine {
@@ -432,7 +432,14 @@ export interface IPhysicsEngine {
432
432
  * @param radius The radius of the sphere
433
433
  * @returns Array of objects that overlap with the sphere
434
434
  */
435
- sphereOverlap(point: Vector3, radius: number): Array<SphereOverlapResult>;
435
+ sphereOverlap(point: Vector3, radius: number): Array<ShapeOverlapResult>;
436
+ /** box overlap detection using rapier against colliders
437
+ * @param point center of the box in worldspace
438
+ * @param size size of the box
439
+ * @param rotation quaternion representation of the rotation in world space
440
+ * @returns array of colliders that overlap with the box. Note: they currently only contain the collider and the gameobject
441
+ */
442
+ boxOverlap(point: Vector3, size: Vector3, rotation: Vector4Like | null): Array<ShapeOverlapResult>;
436
443
  /**
437
444
  * Adds a sphere collider to the physics world
438
445
  * @param collider The collider component to add
@@ -85,7 +85,7 @@ export class Collision {
85
85
  return this.collider?.attachedRigidbody;
86
86
  }
87
87
  }
88
- export class SphereOverlapResult {
88
+ export class ShapeOverlapResult {
89
89
  object;
90
90
  collider;
91
91
  constructor(object, collider) {
@@ -1 +1 @@
1
- {"version":3,"file":"engine_types.js","sourceRoot":"","sources":["../../src/engine/engine_types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAOhC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAuCnD,MAAM,UAAU,WAAW,CAAC,KAAY;IACpC,MAAM,IAAI,GAAG,KAAa,CAAC;IAC3B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QACjC,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAsDD,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,yCAAQ,CAAA;IACR,gGAAgG;IAChG,qDAAmB,CAAA;AACvB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AA4HD,MAAM,UAAU,WAAW,CAAC,GAAQ;IAChC,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC;AAClC,CAAC;AAoGD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AA0B5C,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;AAEzE;;GAEG;AACH,MAAM,OAAO,YAAY;IAEJ,MAAM,CAAO;IACb,OAAO,CAAO;IACd,gBAAgB,CAAO;IAExC,0CAA0C;IACjC,QAAQ,CAAS;IAC1B,2BAA2B;IAClB,OAAO,CAAS;IAChB,QAAQ,CAAS;IAE1B,uBAAuB;IACvB,IAAI,KAAK;QACL,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,wBAAwB;IACxB,IAAI,MAAM;QACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,yBAAyB;IACzB,IAAI,eAAe;QACf,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACjG,CAAC;IAED,gBAAgB;IAChB,YAAY,KAAW,EAAE,IAAY,EAAE,MAAY,EAAE,OAAe,EAAE,QAAgB,EAAE,eAAqB;QACzG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAC5C,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,SAAS;IAElB,0HAA0H;IACjH,QAAQ,CAAiB;IAElC,gBAAgB;IAChB,YAAY,GAAgB,EAAE,aAAwB,EAAE,QAAwB;QAC5E,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,qIAAqI;IAC5H,EAAE,CAAc;IAEjB,SAAS,CAAY;IAC7B,qDAAqD;IACrD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEO,WAAW,CAAc;IACjC,mDAAmD;IACnD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,wDAAwD;IACxD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAC5C,CAAC;CACJ;AAID,MAAM,OAAO,mBAAmB;IAC5B,MAAM,CAAW;IACjB,QAAQ,CAAY;IACpB,YAAY,MAAgB,EAAE,QAAmB;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CACJ"}
1
+ {"version":3,"file":"engine_types.js","sourceRoot":"","sources":["../../src/engine/engine_types.ts"],"names":[],"mappings":"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"}
@@ -117,12 +117,18 @@ export function tryDetermineMimetypeFromBinary(url, data, response) {
117
117
  if (debug) {
118
118
  console.warn("[Needle Engine] Trying to determine file type from binary data\n", "\"" + new TextDecoder().decode(data) + "\"\n", bytes);
119
119
  }
120
+ // Text with all whitespace stripped
121
+ const bytesAsText = new TextDecoder().decode(data).replace(/\s/g, "");
120
122
  // GLTF
121
- if (bytes[0] == 103 && bytes[1] == 108 && bytes[2] == 84 && bytes[3] == 70 && (bytes[4] == 10 || bytes[4] === 2)) {
122
- // GLTF
123
+ if (bytesAsText[0] === "{" && bytesAsText[1] === "\"") {
123
124
  console.debug("GLTF detected");
124
125
  return "model/gltf+json";
125
126
  }
127
+ else if (bytes[0] == 103 && bytes[1] == 108 && bytes[2] == 84 && bytes[3] == 70 && (bytes[4] == 10 || bytes[4] === 2)) {
128
+ // GLTF Binary
129
+ console.debug("GLTF .bin detected");
130
+ return "model/gltf+json"; // actually application/octet-stream
131
+ }
126
132
  // GLB
127
133
  else if (bytes[0] == 103 && bytes[1] == 108 && bytes[2] == 84 && bytes[3] == 70 && bytes[4] == 98) {
128
134
  // GLB
@@ -1 +1 @@
1
- {"version":3,"file":"engine_utils_format.js","sourceRoot":"","sources":["../../src/engine/engine_utils_format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_utils_format.js","sourceRoot":"","sources":["../../src/engine/engine_utils_format.ts"],"names":[],"mappings":"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"}
@@ -69,7 +69,7 @@ export async function registerExtensions(loader, context, url) {
69
69
  loader.register(p => new NEEDLE_lighting_settings(p, url, context));
70
70
  loader.register(p => new NEEDLE_techniques_webgl(p, url));
71
71
  loader.register(p => new NEEDLE_render_objects(p, url));
72
- loader.register(p => new NEEDLE_progressive(p, url));
72
+ loader.register(p => new NEEDLE_progressive(p));
73
73
  loader.register(p => new EXT_texture_exr(p));
74
74
  if (isResourceTrackingEnabled())
75
75
  loader.register(p => new InternalUsageTrackerPlugin(p));
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../src/engine/extensions/extensions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../src/engine/extensions/extensions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "4.8.0-next.4eaf70a",
3
+ "version": "4.8.0-next.58ab763",
4
4
  "description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.",
5
5
  "main": "dist/needle-engine.min.js",
6
6
  "exports": {
@@ -93,7 +93,7 @@
93
93
  ],
94
94
  "dependencies": {
95
95
  "@dimforge/rapier3d-compat": "^0.14.0",
96
- "@needle-tools/gltf-progressive": "3.1.1-next.1039397",
96
+ "@needle-tools/gltf-progressive": "3.2.0",
97
97
  "@webxr-input-profiles/motion-controllers": "^1.0.0",
98
98
  "flatbuffers": "2.0.4",
99
99
  "md5": "^2.3.0",
@@ -161,7 +161,7 @@ const codegenRegex = /\"(?<gltf>.+(.glb|.gltf)(\?.*)?)\"/gm;
161
161
 
162
162
  // https://regex101.com/r/SVhzzD/1
163
163
  // @ts-ignore
164
- const needleEngineRegex = /<needle-engine.*?src=["'](?<src>.+)["']>/gm;
164
+ const needleEngineRegex = /<needle-engine.*?src=["'](?<src>[\w\d]+?)["']>/gm;
165
165
 
166
166
  /**
167
167
  * @param {import('../types').needleConfig} config
@@ -27,32 +27,41 @@ export const needleDependencies = (command, config, userSettings) => {
27
27
  }
28
28
  }
29
29
 
30
+ const excludeDependencies = [
31
+ "three-mesh-bvh",
32
+ "@needle-tools/gltf-progressive"
33
+ ]
34
+
30
35
  /**
31
36
  * @param {import('vite').UserConfig} config
32
37
  */
33
38
  function handleOptimizeDeps(config) {
34
- if (config.optimizeDeps?.include?.includes("three-mesh-bvh")) {
35
- console.log("[needle-dependencies] three-mesh-bvh is included in the optimizeDeps.include array. This may cause issues with the worker import.");
36
- }
37
- else {
38
- if (!config.optimizeDeps) {
39
- config.optimizeDeps = {};
39
+ excludeDependencies.forEach(dep => {
40
+ if (config.optimizeDeps?.include?.includes(dep)) {
41
+ console.log(`[needle-dependencies] ${dep} is included in the optimizeDeps.include array. This may cause issues with the worker import.`);
40
42
  }
41
- if (!config.optimizeDeps.exclude) {
42
- config.optimizeDeps.exclude = [];
43
- }
44
- console.log("[needle-dependencies] Adding three-mesh-bvh to the optimizeDeps.exclude array.");
45
- // This needs to be excluded from optimization because otherwise the worker import fails
46
- // three-mesh-bvh/src/workers/generateMeshBVH.worker.js?worker
47
- config.optimizeDeps.exclude.push("three-mesh-bvh");
43
+ else {
44
+ if (!config.optimizeDeps) {
45
+ config.optimizeDeps = {};
46
+ }
47
+ if (!config.optimizeDeps.exclude) {
48
+ config.optimizeDeps.exclude = [];
49
+ }
48
50
 
49
- if (!config.server) config.server = {};
50
- if (!config.server.fs) config.server.fs = {};
51
- if (config.server.fs.strict === undefined) {
52
- // we need to disable strictness to allow importing the worker from three-mesh-bvh node_modules in our GenerateMeshBVHWorker.js file
53
- config.server.fs.strict = false;
51
+ // This needs to be excluded from optimization because otherwise the worker import fails
52
+ // three-mesh-bvh/src/workers/generateMeshBVH.worker.js?worker
53
+ // same for gltf-progressive
54
+ console.log(`[needle-dependencies] Adding ${dep} to the optimizeDeps.exclude array to support workers.`);
55
+ config.optimizeDeps.exclude.push(dep);
56
+
57
+ if (!config.server) config.server = {};
58
+ if (!config.server.fs) config.server.fs = {};
59
+ if (config.server.fs.strict === undefined) {
60
+ // we need to disable strictness to allow importing the worker from three-mesh-bvh node_modules in our GenerateMeshBVHWorker.js file
61
+ config.server.fs.strict = false;
62
+ }
54
63
  }
55
- }
64
+ });
56
65
  }
57
66
 
58
67
  /**
@@ -169,12 +169,17 @@ function testIfInstallIsRequired(projectDir, packageJson) {
169
169
  expectedVersion === "alpha" ||
170
170
  expectedVersion === "canary" ||
171
171
  expectedVersion === "experimental";
172
+ // We can not automatically install dependencies with "4" or "4.6" as a version
173
+ // const isFullSemver = expectedVersion.match(/^\d+\.\d+\.\d+(-\w+)?(\.\d+)?$/);
172
174
  if (!isRange && !isTagName) {
173
175
  const packageJsonPath = path.join(depPath, "package.json");
174
176
  /** @type {String} */
175
177
  const installedVersion = JSON.parse(readFileSync(packageJsonPath, "utf8")).version;
178
+ let versionToCompare = expectedVersion.split("@").pop();
179
+ while (versionToCompare?.startsWith("^")) versionToCompare = versionToCompare.substring(1);
176
180
  // fix check for cases where the version contains a alias e.g. npm:three@0.160.3
177
- if (expectedVersion.trimEnd().endsWith(installedVersion.trim()) == false) {
181
+ const actualVersion = installedVersion.split("@").pop();
182
+ if (actualVersion && versionToCompare && versionToCompare.trimEnd().startsWith(actualVersion.trim()) == false) {
178
183
  log(`Dependency ${key} is installed but version is not the right one. Expected \"${expectedVersion}/" but got \"${installedVersion}\"`)
179
184
  return true;
180
185
  }
@@ -207,15 +207,18 @@ export class Gizmos {
207
207
  * Draw a 3D wiremesh box gizmo in the scene
208
208
  * @param center the center of the box in world space
209
209
  * @param size the size of the box in world space
210
+ * @param rotation the rotation of the box in world space
210
211
  * @param color the color of the box
211
212
  * @param duration the duration in seconds the box will be rendered. If 0 it will be rendered for one frame
212
213
  * @param depthTest if true the box will be rendered with depth test
213
214
  */
214
- static DrawWireBox(center: Vec3, size: Vec3, color: ColorRepresentation = defaultColor, duration: number = 0, depthTest: boolean = true) {
215
+ static DrawWireBox(center: Vec3, size: Vec3, color: ColorRepresentation = defaultColor, duration: number = 0, depthTest: boolean = true, rotation: Quaternion|undefined = undefined) {
215
216
  if (!Gizmos.enabled) return;
216
217
  const obj = Internal.getBox(duration);
217
218
  obj.position.set(center.x, center.y, center.z);
218
219
  obj.scale.set(size.x, size.y, size.z);
220
+ if(rotation) obj.quaternion.copy(rotation);
221
+ else obj.quaternion.identity();
219
222
  obj.material["color"].set(color);
220
223
  obj.material["depthTest"] = depthTest;
221
224
  obj.material["wireframe"] = true;
@@ -1,4 +1,5 @@
1
1
  import { ShaderChunk, Texture, UniformsLib, Vector4 } from "three";
2
+ import { setDisposable } from "./engine_assetdatabase.js";
2
3
 
3
4
  import { Context } from "./engine_setup.js";
4
5
  import type { SourceIdentifier } from "./engine_types.js";
@@ -44,6 +45,7 @@ export class LightDataRegistry implements ILightDataRegistry {
44
45
  const map = this._lightmaps.get(sourceId);
45
46
  const arr = map?.get(type) ?? [];
46
47
  if (arr.length < index) arr.length = index + 1;
48
+ setDisposable(tex, false);
47
49
  arr[index] = tex;
48
50
  map?.set(type, arr);
49
51
  }
@@ -1,5 +1,5 @@
1
1
  import type { Ball, Collider, ColliderDesc, Cuboid, EventQueue, QueryFilterFlags, Ray, RigidBody, RigidBodyDesc, World } from '@dimforge/rapier3d-compat';
2
- import { BufferAttribute, BufferGeometry, InterleavedBufferAttribute, LineBasicMaterial, LineSegments, Matrix4, Mesh, Object3D, Quaternion, Vector3 } from 'three'
2
+ import { BufferAttribute, BufferGeometry, InterleavedBufferAttribute, LineBasicMaterial, LineSegments, Matrix4, Mesh, Object3D, Quaternion, Vector3, Vector4Like } from 'three'
3
3
  import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js'
4
4
 
5
5
  import { CollisionDetectionMode, PhysicsMaterialCombine } from '../engine/engine_physics.types.js';
@@ -24,7 +24,7 @@ import type {
24
24
  Vec3,
25
25
  } from './engine_types.js';
26
26
  import { Collision, ContactPoint } from './engine_types.js';
27
- import { SphereOverlapResult } from './engine_types.js';
27
+ import { ShapeOverlapResult } from './engine_types.js';
28
28
  import { CircularBuffer, getParam } from "./engine_utils.js"
29
29
 
30
30
  const debugPhysics = getParam("debugphysics");
@@ -458,7 +458,8 @@ export class RapierPhysics implements IPhysicsEngine {
458
458
 
459
459
 
460
460
  private rapierSphere: Ball | null = null;
461
- private readonly rapierColliderArray: Array<SphereOverlapResult> = [];
461
+ private rapierBox: Cuboid | null = null;
462
+ private readonly rapierColliderArray: Array<ShapeOverlapResult> = [];
462
463
  private readonly rapierIdentityRotation = { x: 0, y: 0, z: 0, w: 1 };
463
464
  private readonly rapierForwardVector = { x: 0, y: 0, z: 1 };
464
465
  /** Precice sphere overlap detection using rapier against colliders
@@ -466,23 +467,43 @@ export class RapierPhysics implements IPhysicsEngine {
466
467
  * @param radius radius of the sphere
467
468
  * @returns array of colliders that overlap with the sphere. Note: they currently only contain the collider and the gameobject
468
469
  */
469
- public sphereOverlap(point: Vector3, radius: number): Array<SphereOverlapResult> {
470
+ public sphereOverlap(point: Vector3, radius: number): Array<ShapeOverlapResult> {
471
+ this.rapierSphere ??= new MODULES.RAPIER_PHYSICS.MODULE.Ball(radius);
472
+ this.rapierSphere.radius = radius;
473
+ if (this.debugRenderRaycasts || showPhysicsRaycasts) Gizmos.DrawWireSphere(point, radius, 0x3344ff, 1);
474
+ return this.shapeOverlap(point, this.rapierIdentityRotation, this.rapierSphere);
475
+ }
476
+
477
+ /** box overlap detection using rapier against colliders
478
+ * @param point center of the box in worldspace
479
+ * @param size size of the box
480
+ * @param rotation quaternion representation of the rotation in world space
481
+ * @returns array of colliders that overlap with the box. Note: they currently only contain the collider and the gameobject
482
+ */
483
+ public boxOverlap(point: Vector3, size: Vector3, rotation: Vector4Like | null = null): Array<ShapeOverlapResult> {
484
+ if (rotation === null) rotation = this.rapierIdentityRotation;
485
+ this.rapierBox ??= new MODULES.RAPIER_PHYSICS.MODULE.Cuboid(1, 1, 1);
486
+ this.rapierBox.halfExtents.x = size.x * 0.5;
487
+ this.rapierBox.halfExtents.y = size.y * 0.5;
488
+ this.rapierBox.halfExtents.z = size.z * 0.5;
489
+ if (this.debugRenderRaycasts || showPhysicsRaycasts) Gizmos.DrawWireBox(point, size, 0x3344ff, 1, true, rotation as Quaternion);
490
+ return this.shapeOverlap(point, rotation!, this.rapierBox);
491
+ }
492
+
493
+ private shapeOverlap(point: Vector3, rotation: Vector4Like, shape: Ball | Cuboid): Array<ShapeOverlapResult> {
470
494
  this.rapierColliderArray.length = 0;
471
495
  if (!this._isInitialized) {
472
496
  return this.rapierColliderArray;
473
497
  }
474
498
  if (!this.world) return this.rapierColliderArray;
475
- this.rapierSphere ??= new MODULES.RAPIER_PHYSICS.MODULE.Ball(radius);
476
- this.rapierSphere.radius = radius;
477
499
 
478
- if (this.debugRenderRaycasts || showPhysicsRaycasts) Gizmos.DrawWireSphere(point, radius, 0x3344ff, 1);
479
500
  this.world.intersectionsWithShape(point,
480
- this.rapierIdentityRotation,
481
- this.rapierSphere,
501
+ rotation,
502
+ shape,
482
503
  col => {
483
504
  const collider = col[$componentKey] as ICollider
484
505
  // if (collider.gameObject.layers.isEnabled(2)) return true;
485
- const intersection = new SphereOverlapResult(collider.gameObject, collider);
506
+ const intersection = new ShapeOverlapResult(collider.gameObject, collider);
486
507
  this.rapierColliderArray.push(intersection);
487
508
  return true; // Return `false` instead if we want to stop searching for other colliders that contain this point.
488
509
  },
@@ -351,7 +351,7 @@ class EventListSerializer extends TypeSerializer {
351
351
  }
352
352
  }
353
353
  else if (isDevEnvironment()) {
354
- console.warn("[Debug] EventList: Could not find event listener in scene", call, context.object, data);
354
+ console.warn(`[Dev] EventList: Could not find event listener in scene (${context.object?.name})`, call);
355
355
  }
356
356
  }
357
357
  }
@@ -1,5 +1,5 @@
1
1
  import type { QueryFilterFlags, World } from "@dimforge/rapier3d-compat";
2
- import { AnimationClip, Color, Loader, Material, Mesh, Object3D, Quaternion } from "three";
2
+ import { AnimationClip, Color, Loader, Material, Mesh, Object3D, Quaternion, Vector4Like } from "three";
3
3
  import { Vector3 } from "three";
4
4
  import { type GLTF as THREE_GLTF } from "three/examples/jsm/loaders/GLTFLoader.js";
5
5
 
@@ -447,9 +447,10 @@ export class Collision {
447
447
 
448
448
  export type RaycastResult = null | { point: Vector3, collider: ICollider, normal?: Vector3 };
449
449
 
450
- export class SphereOverlapResult {
451
- object: Object3D;
452
- collider: ICollider;
450
+ export class ShapeOverlapResult {
451
+ readonly object: Object3D;
452
+ readonly collider: ICollider;
453
+
453
454
  constructor(object: Object3D, collider: ICollider) {
454
455
  this.object = object;
455
456
  this.collider = collider;
@@ -555,7 +556,15 @@ export interface IPhysicsEngine {
555
556
  * @param radius The radius of the sphere
556
557
  * @returns Array of objects that overlap with the sphere
557
558
  */
558
- sphereOverlap(point: Vector3, radius: number): Array<SphereOverlapResult>;
559
+ sphereOverlap(point: Vector3, radius: number): Array<ShapeOverlapResult>;
560
+
561
+ /** box overlap detection using rapier against colliders
562
+ * @param point center of the box in worldspace
563
+ * @param size size of the box
564
+ * @param rotation quaternion representation of the rotation in world space
565
+ * @returns array of colliders that overlap with the box. Note: they currently only contain the collider and the gameobject
566
+ */
567
+ boxOverlap(point: Vector3, size: Vector3, rotation: Vector4Like | null): Array<ShapeOverlapResult>;
559
568
 
560
569
  // Collider methods
561
570
  /**
@@ -148,12 +148,19 @@ export function tryDetermineMimetypeFromBinary(url: string, data: ArrayBuffer, r
148
148
  console.warn("[Needle Engine] Trying to determine file type from binary data\n", "\"" + new TextDecoder().decode(data) + "\"\n", bytes);
149
149
  }
150
150
 
151
+ // Text with all whitespace stripped
152
+ const bytesAsText = new TextDecoder().decode(data).replace(/\s/g, "");
153
+
151
154
  // GLTF
152
- if (bytes[0] == 103 && bytes[1] == 108 && bytes[2] == 84 && bytes[3] == 70 && (bytes[4] == 10 || bytes[4] === 2)) {
153
- // GLTF
155
+ if (bytesAsText[0] === "{" && bytesAsText[1] === "\"") {
154
156
  console.debug("GLTF detected");
155
157
  return "model/gltf+json";
156
158
  }
159
+ else if (bytes[0] == 103 && bytes[1] == 108 && bytes[2] == 84 && bytes[3] == 70 && (bytes[4] == 10 || bytes[4] === 2)) {
160
+ // GLTF Binary
161
+ console.debug("GLTF .bin detected");
162
+ return "model/gltf+json"; // actually application/octet-stream
163
+ }
157
164
  // GLB
158
165
  else if (bytes[0] == 103 && bytes[1] == 108 && bytes[2] == 84 && bytes[3] == 70 && bytes[4] == 98) {
159
166
  // GLB
@@ -104,7 +104,7 @@ export async function registerExtensions(loader: GLTFLoader, context: Context, u
104
104
  loader.register(p => new NEEDLE_lighting_settings(p, url, context));
105
105
  loader.register(p => new NEEDLE_techniques_webgl(p, url));
106
106
  loader.register(p => new NEEDLE_render_objects(p, url));
107
- loader.register(p => new NEEDLE_progressive(p, url));
107
+ loader.register(p => new NEEDLE_progressive(p));
108
108
  loader.register(p => new EXT_texture_exr(p));
109
109
  if (isResourceTrackingEnabled()) loader.register(p => new InternalUsageTrackerPlugin(p))
110
110
 
@@ -1 +0,0 @@
1
- (function(l,u,x,h){"use strict";self.onmessage=e=>{const t=e.data;switch(t.type){case"init":break;case"load":f(t);break;default:console.error("[Worker] Unknown message type:",t.type);break}},self.onerror=e=>{console.error("[Worker] Error:",e)};function p(e){self.postMessage(e)}let o=null,a=null,i=null;async function f(e){o??=new l.GLTFLoader,o.setMeshoptDecoder(u.MeshoptDecoder),a??=new x.DRACOLoader,a.setDecoderConfig({type:"js"}),a.setDecoderPath(e.dracoDecoderPath),o.setDRACOLoader(a),i??=new h.KTX2Loader,i.workerConfig=e.ktx2LoaderConfig,i.setTranscoderPath(e.ktx2TranscoderPath),o.setKTX2Loader(i),o.load(e.url,t=>{const r={type:"loaded-gltf",result:{url:e.url,geometries:[],textures:[]}};m(t,r),p(r)})}function m(e,t){const{result:r}=t;for(const s of e.parser.associations.keys()){const n=e.parser.associations.get(s);if(n)if("isTexture"in s&&s.isTexture){const d=s,c=e.parser.json.textures[n.textures??-1];r.textures.push({texture:d,textureIndex:n.textures??-1,extensions:c?.extensions??{}})}else if("isMesh"in s&&s.isMesh){const d=s,c=n.meshes??-1,L=n.primitives??-1,g=e.parser.json.meshes[c];r.geometries.push({geometry:d.geometry,meshIndex:c,primitiveIndex:L,extensions:g?.extensions??{}})}else"isMaterial"in s&&s.isMaterial}}})(GLTFLoader_js,meshopt_decoder_module_js,DRACOLoader_js,KTX2Loader_js);