@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.
- package/CHANGELOG.md +7 -0
- package/dist/{generateMeshBVH.worker-BaNp_Xtp.js → generateMeshBVH.worker-2qGLkQjg.js} +1 -1
- package/dist/{gltf-progressive-CeuEsYpY.min.js → gltf-progressive-C0OrHmZf.min.js} +4 -4
- package/dist/{gltf-progressive-DY5t1MFv.js → gltf-progressive-CqwFE7bV.js} +78 -63
- package/dist/{gltf-progressive--2HtE1d8.umd.cjs → gltf-progressive-VK6wRj74.umd.cjs} +3 -3
- package/dist/loader.worker-CrU5fNbR.js +27 -0
- package/dist/{needle-engine.bundle-1687n4dK.js → needle-engine.bundle-C-obl9GH.js} +1799 -1781
- package/dist/{needle-engine.bundle-CooE_ge1.umd.cjs → needle-engine.bundle-D2j8atLK.umd.cjs} +87 -87
- package/dist/{needle-engine.bundle-BayRUkg4.min.js → needle-engine.bundle-DYYKGkWL.min.js} +101 -101
- package/dist/needle-engine.js +21 -21
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/{postprocessing-DtxaELce.umd.cjs → postprocessing-BgC7XZwK.umd.cjs} +1 -1
- package/dist/{postprocessing-DElbMQgB.js → postprocessing-DddlM3CK.js} +1 -1
- package/dist/rapier--oeYP_h7.umd.cjs +1 -0
- package/dist/{rapier-CU5cp-KB.js → rapier-B3xpyPtq.js} +88 -88
- package/dist/{three-examples-CM6Iip03.js → three-examples-BIuXQPSf.js} +6 -6
- package/dist/{three-examples-BhQvv1B9.umd.cjs → three-examples-CNRuT27G.umd.cjs} +2 -2
- package/dist/{vendor-ClB-U1Hn.js → vendor-CGONwIc0.js} +73 -73
- package/dist/vendor-Cty8Dnri.umd.cjs +1121 -0
- package/lib/engine/engine_gizmos.d.ts +3 -2
- package/lib/engine/engine_gizmos.js +6 -1
- package/lib/engine/engine_gizmos.js.map +1 -1
- package/lib/engine/engine_lightdata.js +2 -0
- package/lib/engine/engine_lightdata.js.map +1 -1
- package/lib/engine/engine_physics.d.ts +1 -1
- package/lib/engine/engine_physics_rapier.d.ts +12 -3
- package/lib/engine/engine_physics_rapier.js +28 -7
- package/lib/engine/engine_physics_rapier.js.map +1 -1
- package/lib/engine/engine_serialization_builtin_serializer.js +1 -1
- package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
- package/lib/engine/engine_types.d.ts +12 -5
- package/lib/engine/engine_types.js +1 -1
- package/lib/engine/engine_types.js.map +1 -1
- package/lib/engine/engine_utils_format.js +8 -2
- package/lib/engine/engine_utils_format.js.map +1 -1
- package/lib/engine/extensions/extensions.js +1 -1
- package/lib/engine/extensions/extensions.js.map +1 -1
- package/package.json +2 -2
- package/plugins/vite/asap.js +1 -1
- package/plugins/vite/dependencies.js +28 -19
- package/plugins/vite/dependency-watcher.js +6 -1
- package/src/engine/engine_gizmos.ts +4 -1
- package/src/engine/engine_lightdata.ts +2 -0
- package/src/engine/engine_physics_rapier.ts +31 -10
- package/src/engine/engine_serialization_builtin_serializer.ts +1 -1
- package/src/engine/engine_types.ts +14 -5
- package/src/engine/engine_utils_format.ts +9 -2
- package/src/engine/extensions/extensions.ts +1 -1
- package/dist/loader.worker-8olmVOL4.js +0 -1
- package/dist/rapier-CUe6_xwE.umd.cjs +0 -1
- 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
|
|
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<
|
|
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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_types.js","sourceRoot":"","sources":["../../src/engine/engine_types.ts"],"names":[],"mappings":"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
|
|
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 (
|
|
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
|
|
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.
|
|
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.
|
|
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",
|
package/plugins/vite/asap.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
35
|
-
|
|
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
|
-
|
|
42
|
-
config.optimizeDeps
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
else {
|
|
44
|
+
if (!config.optimizeDeps) {
|
|
45
|
+
config.optimizeDeps = {};
|
|
46
|
+
}
|
|
47
|
+
if (!config.optimizeDeps.exclude) {
|
|
48
|
+
config.optimizeDeps.exclude = [];
|
|
49
|
+
}
|
|
48
50
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
config.
|
|
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
|
-
|
|
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 {
|
|
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
|
|
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<
|
|
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
|
-
|
|
481
|
-
|
|
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
|
|
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(
|
|
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
|
|
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<
|
|
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 (
|
|
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
|
|
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);
|