@needle-tools/engine 4.8.2-next.f60a325 → 4.8.3-next.1a41273
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 +5 -0
- package/dist/{needle-engine.bundle-D8-9woI_.umd.cjs → needle-engine.bundle-CcYGQALb.umd.cjs} +18 -18
- package/dist/{needle-engine.bundle-BX9NZ5lg.min.js → needle-engine.bundle-CvDGadt9.min.js} +14 -14
- package/dist/{needle-engine.bundle-ClHmG8SZ.js → needle-engine.bundle-DbnDoLkt.js} +76 -67
- package/dist/needle-engine.d.ts +15 -15
- package/dist/needle-engine.js +2 -2
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/lib/engine/engine_context.d.ts +2 -0
- package/lib/engine/engine_context.js +8 -1
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_networking_streams.js +8 -2
- package/lib/engine/engine_networking_streams.js.map +1 -1
- package/package.json +2 -2
- package/src/engine/engine_context.ts +7 -1
- package/src/engine/engine_networking_streams.ts +13 -8
|
@@ -1785,11 +1785,11 @@ po('if(!globalThis["NEEDLE_ENGINE_VERSION"]) globalThis["NEEDLE_ENGINE_VERSION"]
|
|
|
1785
1785
|
po('if(!globalThis["NEEDLE_ENGINE_GENERATOR"]) globalThis["NEEDLE_ENGINE_GENERATOR"] = "unknown";');
|
|
1786
1786
|
po('if(!globalThis["NEEDLE_PROJECT_BUILD_TIME"]) globalThis["NEEDLE_PROJECT_BUILD_TIME"] = "unknown";');
|
|
1787
1787
|
po('if(!globalThis["NEEDLE_PUBLIC_KEY"]) globalThis["NEEDLE_PUBLIC_KEY"] = "unknown";');
|
|
1788
|
-
po('globalThis["__NEEDLE_ENGINE_VERSION__"] = "4.8.
|
|
1788
|
+
po('globalThis["__NEEDLE_ENGINE_VERSION__"] = "4.8.3";');
|
|
1789
1789
|
po('globalThis["__NEEDLE_ENGINE_GENERATOR__"] = "undefined";');
|
|
1790
|
-
po('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "
|
|
1790
|
+
po('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "Mon Aug 18 2025 11:25:17 GMT+0000 (Coordinated Universal Time)";');
|
|
1791
1791
|
po('globalThis["__NEEDLE_PUBLIC_KEY__"] = "' + NEEDLE_PUBLIC_KEY + '";');
|
|
1792
|
-
const Ln = "4.8.
|
|
1792
|
+
const Ln = "4.8.3", wm = "undefined", Qb = "Mon Aug 18 2025 11:25:17 GMT+0000 (Coordinated Universal Time)";
|
|
1793
1793
|
Xb && console.log(`Engine version: ${Ln} (generator: ${wm})
|
|
1794
1794
|
Project built at ${Qb}`);
|
|
1795
1795
|
const vl = NEEDLE_PUBLIC_KEY, ro = "needle_isActiveInHierarchy", jr = "builtin_components", Oh = "needle_editor_guid";
|
|
@@ -10983,9 +10983,13 @@ Start a coroutine from a component by calling "this.startCoroutine(myCoroutine()
|
|
|
10983
10983
|
get isVisibleToUser() {
|
|
10984
10984
|
if (this.isInXR) return !0;
|
|
10985
10985
|
if (!this._isVisible) return !1;
|
|
10986
|
+
if (this.time.frame === this._lastStyleComputedFrame) return this._lastStyleComputedResult;
|
|
10987
|
+
this._lastStyleComputedFrame = this.time.frame;
|
|
10986
10988
|
const e = getComputedStyle(this.domElement);
|
|
10987
|
-
return e.visibility !== "hidden" && e.display !== "none" && e.opacity !== "0";
|
|
10989
|
+
return this._lastStyleComputedResult = e.visibility !== "hidden" && e.display !== "none" && e.opacity !== "0", this._lastStyleComputedResult;
|
|
10988
10990
|
}
|
|
10991
|
+
_lastStyleComputedFrame = -1;
|
|
10992
|
+
_lastStyleComputedResult = !0;
|
|
10989
10993
|
_createId = 0;
|
|
10990
10994
|
async internalOnCreate(e) {
|
|
10991
10995
|
const t = ++this._createId;
|
|
@@ -17328,7 +17332,7 @@ class _k {
|
|
|
17328
17332
|
this.object = e, this.collider = t;
|
|
17329
17333
|
}
|
|
17330
17334
|
}
|
|
17331
|
-
const
|
|
17335
|
+
const ze = w("debugnetworkingstreams");
|
|
17332
17336
|
var ps = /* @__PURE__ */ ((s) => (s.Connected = "peer-user-connected", s.StreamReceived = "receive-stream", s.StreamEnded = "call-ended", s.Disconnected = "peer-user-disconnected", s.UserJoined = "user-joined", s))(ps || {});
|
|
17333
17337
|
class X0 {
|
|
17334
17338
|
type = "call-ended";
|
|
@@ -17382,7 +17386,7 @@ class xk extends dm {
|
|
|
17382
17386
|
}
|
|
17383
17387
|
constructor(e, t, i, n = null) {
|
|
17384
17388
|
super(), this.peerId = t.peer, this.userId = e, this.call = t, this.direction = i, this._stream = n, t.on("stream", (o) => {
|
|
17385
|
-
if (
|
|
17389
|
+
if (ze && console.log("Receive stream", `
|
|
17386
17390
|
Audio:`, o.getAudioTracks(), `
|
|
17387
17391
|
Video:`, o.getVideoTracks()), this._stream = o, i === "incoming") {
|
|
17388
17392
|
const r = new bk(e, o, this);
|
|
@@ -17416,7 +17420,7 @@ class to extends dm {
|
|
|
17416
17420
|
}
|
|
17417
17421
|
makeCall(e, t) {
|
|
17418
17422
|
if (!t?.id) {
|
|
17419
|
-
|
|
17423
|
+
ze ? console.warn("Can not make a call: mediastream has no id or is undefined") : console.debug("Can not make a call: mediastream has no id or is undefined");
|
|
17420
17424
|
return;
|
|
17421
17425
|
}
|
|
17422
17426
|
const i = {
|
|
@@ -17428,10 +17432,10 @@ class to extends dm {
|
|
|
17428
17432
|
}, n = this._peer?.call(e, t, i);
|
|
17429
17433
|
if (n) {
|
|
17430
17434
|
const o = this.registerCall(n, "outgoing", t);
|
|
17431
|
-
return
|
|
17435
|
+
return ze && console.warn(`📞 CALL ${e}`, `
|
|
17432
17436
|
Outgoing:`, this._outgoingCalls, `
|
|
17433
17437
|
Incoming:`, this._incomingCalls), o;
|
|
17434
|
-
} else
|
|
17438
|
+
} else ze && console.error("Failed to make call", e, t, this._peer);
|
|
17435
17439
|
}
|
|
17436
17440
|
closeAll() {
|
|
17437
17441
|
for (const e of this._incomingCalls)
|
|
@@ -17448,7 +17452,7 @@ Incoming:`, this._incomingCalls), o;
|
|
|
17448
17452
|
for (let e = this._outgoingCalls.length - 1; e >= 0; e--) {
|
|
17449
17453
|
const t = this._outgoingCalls[e];
|
|
17450
17454
|
let i = !1;
|
|
17451
|
-
t.isClosed && !t.isOpening && (t.stream?.active ?
|
|
17455
|
+
t.isClosed && !t.isOpening && (t.stream?.active ? ze && console.warn("!!! Stream is still active, don't remove call", t.userId, "Your id: " + this.context.connection.connectionId) : (ze && console.warn("!!! Remove closed call", t.userId), i = !0)), this.context.connection.userIsInRoom(t.userId) === !1 && (ze && console.warn("!!! User is not in room anymore, remove call", t.userId), i = !0), i && (t.close(), this._outgoingCalls.splice(e, 1));
|
|
17452
17456
|
}
|
|
17453
17457
|
};
|
|
17454
17458
|
get peer() {
|
|
@@ -17463,7 +17467,12 @@ Incoming:`, this._incomingCalls), o;
|
|
|
17463
17467
|
_outgoingCalls = [];
|
|
17464
17468
|
_peer;
|
|
17465
17469
|
constructor(e, t) {
|
|
17466
|
-
super(), this.context = e, this.id = t, this.setupPeer()
|
|
17470
|
+
super(), this.context = e, this.id = t, this.setupPeer();
|
|
17471
|
+
try {
|
|
17472
|
+
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
|
|
17473
|
+
} catch (i) {
|
|
17474
|
+
ze && console.error("[PeerJs] Error setting getUserMedia", i);
|
|
17475
|
+
}
|
|
17467
17476
|
}
|
|
17468
17477
|
_enabled = !1;
|
|
17469
17478
|
_enabledPeer = !1;
|
|
@@ -17503,7 +17512,7 @@ Incoming:`, this._incomingCalls), o;
|
|
|
17503
17512
|
* @param id ID of the peer
|
|
17504
17513
|
*/
|
|
17505
17514
|
onPeerConnect = (e) => {
|
|
17506
|
-
if (
|
|
17515
|
+
if (ze && console.log("PEER opened as", e), e === null) {
|
|
17507
17516
|
console.error("Peer connection failed", e);
|
|
17508
17517
|
return;
|
|
17509
17518
|
}
|
|
@@ -17511,17 +17520,17 @@ Incoming:`, this._incomingCalls), o;
|
|
|
17511
17520
|
};
|
|
17512
17521
|
/** Emitted when the peer is destroyed and can no longer accept or create any new connections. At this time, the peer's connections will all be closed. */
|
|
17513
17522
|
onPeerClose = () => {
|
|
17514
|
-
|
|
17523
|
+
ze && console.log("PEER closed"), this.updateCalls();
|
|
17515
17524
|
};
|
|
17516
17525
|
/** Emitted when the peer is disconnected from the signalling server, either manually or because the connection to the signalling server was lost. */
|
|
17517
17526
|
onPeerDisconnected = () => {
|
|
17518
|
-
|
|
17527
|
+
ze && console.log("PEER disconnected"), this.updateCalls();
|
|
17519
17528
|
};
|
|
17520
17529
|
/**
|
|
17521
17530
|
* Errors on the peer are almost always fatal and will destroy the peer. Errors from the underlying socket and PeerConnections are forwarded here.
|
|
17522
17531
|
*/
|
|
17523
17532
|
onPeerError = (e) => {
|
|
17524
|
-
|
|
17533
|
+
ze && console.error("PEER error", e);
|
|
17525
17534
|
};
|
|
17526
17535
|
onPeerReceivingCall = (e) => {
|
|
17527
17536
|
e.answer(void 0, {
|
|
@@ -17532,12 +17541,12 @@ Incoming:`, this._incomingCalls), o;
|
|
|
17532
17541
|
const n = e.metadata;
|
|
17533
17542
|
(!n || !n.userId) && console.error("Missing call metadata", e);
|
|
17534
17543
|
const o = n.userId;
|
|
17535
|
-
t === "incoming" &&
|
|
17544
|
+
t === "incoming" && ze ? console.warn("← Receive call from", e.metadata, e.connectionId) : ze && console.warn("→ Make call to", e.metadata);
|
|
17536
17545
|
const r = t === "incoming" ? this._incomingCalls : this._outgoingCalls, a = new xk(o, e, t, i);
|
|
17537
17546
|
return r.push(a), e.on("error", (l) => {
|
|
17538
17547
|
console.error("Call error", l);
|
|
17539
17548
|
}), e.on("close", () => {
|
|
17540
|
-
|
|
17549
|
+
ze && console.log("Call ended", e.metadata);
|
|
17541
17550
|
const l = r.indexOf(a);
|
|
17542
17551
|
l !== -1 && r.splice(l, 1), a.close(), this.dispatchEvent(new X0(o, t));
|
|
17543
17552
|
}), a.addEventListener("call-ended", (l) => {
|
|
@@ -17545,11 +17554,11 @@ Incoming:`, this._incomingCalls), o;
|
|
|
17545
17554
|
}), t === "incoming" && (a.addEventListener("receive-stream", (l) => {
|
|
17546
17555
|
this.dispatchEvent(l);
|
|
17547
17556
|
}), e.on("stream", () => {
|
|
17548
|
-
|
|
17557
|
+
ze && console.log("Received stream for call", e.metadata);
|
|
17549
17558
|
let l = 0;
|
|
17550
17559
|
const c = setInterval(() => {
|
|
17551
17560
|
const h = l === 0;
|
|
17552
|
-
!a.isOpen && h && (
|
|
17561
|
+
!a.isOpen && h && (ze && console.warn("Close call because stream is not active", e.metadata), l += 1, clearInterval(c), a.close());
|
|
17553
17562
|
}, 2e3);
|
|
17554
17563
|
})), a;
|
|
17555
17564
|
}
|
|
@@ -17582,7 +17591,7 @@ class Jd extends dm {
|
|
|
17582
17591
|
if (!(e instanceof N)) throw new Error("Failed to create NetworkedStreams because context is not an instance of Context");
|
|
17583
17592
|
} else throw new Error("Failed to create NetworkedStreams because context is undefined");
|
|
17584
17593
|
if (!t) throw new Error("Failed to create NetworkedStreams because peer is undefined");
|
|
17585
|
-
this.context = e, this.peer = t,
|
|
17594
|
+
this.context = e, this.peer = t, ze && (this.debug = !0);
|
|
17586
17595
|
}
|
|
17587
17596
|
startSendingStream(e) {
|
|
17588
17597
|
this._sendingStreams.has(e) ? console.warn("Received start sending stream with stream that is already being sent") : (this._sendingStreams.set(e, []), this.updateSendingCalls());
|
|
@@ -17644,7 +17653,7 @@ class Jd extends dm {
|
|
|
17644
17653
|
const t = this._sendingStreams.keys().next().value;
|
|
17645
17654
|
this.peer.makeCall(e.peerId, t);
|
|
17646
17655
|
} else
|
|
17647
|
-
|
|
17656
|
+
ze && console.log("Unknown user connected", e.guid, e.peerId);
|
|
17648
17657
|
};
|
|
17649
17658
|
onUserLeft = (e) => {
|
|
17650
17659
|
this.debug && console.log("User left room: " + e.userId), this.stopCallsToUsersThatAreNotInTheRoomAnymore();
|
|
@@ -17657,7 +17666,7 @@ class Jd extends dm {
|
|
|
17657
17666
|
if (n === e) continue;
|
|
17658
17667
|
const o = this.peer.getPeerIdFromUserId(n);
|
|
17659
17668
|
if (i.find((a) => a.peerId === o && a.direction === "outgoing" && !a.isClosed && a.stream?.active))
|
|
17660
|
-
|
|
17669
|
+
ze && console.debug("Already have a call with user " + n + " / peer " + o);
|
|
17661
17670
|
else {
|
|
17662
17671
|
const a = this.peer.makeCall(o, t);
|
|
17663
17672
|
a && i.push(a);
|
|
@@ -17688,7 +17697,7 @@ class Jd extends dm {
|
|
|
17688
17697
|
if (t)
|
|
17689
17698
|
for (let i = t.length - 1; i >= 0; i--) {
|
|
17690
17699
|
const n = t[i];
|
|
17691
|
-
this.context.connection.userIsInRoom(n.userId) ?
|
|
17700
|
+
this.context.connection.userIsInRoom(n.userId) ? ze && (this.context.connection.connectionId === n.userId ? console.warn(`You are still in the room [${i}] ${n.userId}`) : console.log(`User is still in room [${i}] ${n.userId}`)) : (ze && console.log(`Remove call ${[i]} to user that is not in room anymore ${n.userId}`), n.close(), t.splice(i, 1));
|
|
17692
17701
|
}
|
|
17693
17702
|
}
|
|
17694
17703
|
this.peer.updateCalls(), this.debug && this.debugLogCurrentState();
|
|
@@ -23950,7 +23959,7 @@ class Go {
|
|
|
23950
23959
|
return this._start === void 0 && (this._start = this.ext.getStartTimeByClip(this.clip)), this._start;
|
|
23951
23960
|
}
|
|
23952
23961
|
get duration() {
|
|
23953
|
-
return this.clip?.duration ??
|
|
23962
|
+
return this.clip?.duration ?? Ue.restPoseClipDuration;
|
|
23954
23963
|
}
|
|
23955
23964
|
get nearestAnimatedRoot() {
|
|
23956
23965
|
return this._nearestAnimatedRoot;
|
|
@@ -24002,7 +24011,7 @@ class Go {
|
|
|
24002
24011
|
return e;
|
|
24003
24012
|
}
|
|
24004
24013
|
}
|
|
24005
|
-
class
|
|
24014
|
+
class Ue {
|
|
24006
24015
|
clip;
|
|
24007
24016
|
pos;
|
|
24008
24017
|
rot;
|
|
@@ -24018,7 +24027,7 @@ class ze {
|
|
|
24018
24027
|
static animationDurationPadding = 6 / 60;
|
|
24019
24028
|
static restPoseClipDuration = 6 / 60;
|
|
24020
24029
|
constructor(e, t, i) {
|
|
24021
|
-
if (this.root = e, this.target = t, this.clip = i, i ? this.duration = i.duration : this.duration =
|
|
24030
|
+
if (this.root = e, this.target = t, this.clip = i, i ? this.duration = i.duration : this.duration = Ue.restPoseClipDuration, i && i.tracks) {
|
|
24022
24031
|
const o = Math.max(...i.tracks.map((r) => r.times[r.times.length - 1]));
|
|
24023
24032
|
o !== this.duration && (console.warn("USDZExporter: Animation clip duration does not match the maximum time value in the tracks.", i, o, this.duration), this.duration = o);
|
|
24024
24033
|
}
|
|
@@ -24061,7 +24070,7 @@ class ze {
|
|
|
24061
24070
|
const f = 0;
|
|
24062
24071
|
for (let p = 0 - f; p < e.length + f; p++) {
|
|
24063
24072
|
let g = 0, _ = 0;
|
|
24064
|
-
if (p < 0 ? (g = e[0], _ = g -
|
|
24073
|
+
if (p < 0 ? (g = e[0], _ = g - Ue.animationDurationPadding / 2 + 1 / 60) : p >= e.length ? (g = e[e.length - 1], _ = g + Ue.animationDurationPadding / 2 - 1 / 60) : (g = e[p], _ = g), c) {
|
|
24065
24074
|
const m = c.evaluate(g);
|
|
24066
24075
|
o.set(m[0], m[1], m[2]);
|
|
24067
24076
|
}
|
|
@@ -24121,7 +24130,7 @@ class ag {
|
|
|
24121
24130
|
this.injectRestPoses = e, this.injectImplicitBehaviours = e;
|
|
24122
24131
|
}
|
|
24123
24132
|
getStartTimeCode() {
|
|
24124
|
-
return !this.injectRestPoses || this.rootAndClipToRegisteredAnimationMap.size === 0 ? 0 : (
|
|
24133
|
+
return !this.injectRestPoses || this.rootAndClipToRegisteredAnimationMap.size === 0 ? 0 : (Ue.restPoseClipDuration + Ue.animationDurationPadding) * 60;
|
|
24125
24134
|
}
|
|
24126
24135
|
/** Returns the end time code, based on 60 frames per second, for all registered animations.
|
|
24127
24136
|
* This matches the highest time value in the USDZ file. */
|
|
@@ -24209,9 +24218,9 @@ class ag {
|
|
|
24209
24218
|
console.warn("no transform data found for target ", d, "at slot " + o + ", this is likely a bug");
|
|
24210
24219
|
continue;
|
|
24211
24220
|
}
|
|
24212
|
-
a.delete(d), this.injectRestPoses && !f[0] && (console.log("Injecting rest pose", d, t, "at slot", o), f[0] = new
|
|
24221
|
+
a.delete(d), this.injectRestPoses && !f[0] && (console.log("Injecting rest pose", d, t, "at slot", o), f[0] = new Ue(null, d, null));
|
|
24213
24222
|
let p = f[o];
|
|
24214
|
-
p || (p = new
|
|
24223
|
+
p || (p = new Ue(e, d, t), f[o] = p), p.addTrack(c), r?.includes(d) || r?.push(d);
|
|
24215
24224
|
}
|
|
24216
24225
|
Pn && console.log("Unregistered nodes for this clip", a, "clip", t, "at slot", o, "for root", e, "targets", r);
|
|
24217
24226
|
for (const c of a) {
|
|
@@ -24219,18 +24228,18 @@ class ag {
|
|
|
24219
24228
|
if (!h) continue;
|
|
24220
24229
|
if (this.injectRestPoses && !h[0]) {
|
|
24221
24230
|
console.warn("Adding rest pose for ", c, t, "at slot", o, "This is likely a bug, should have been added earlier.");
|
|
24222
|
-
const f = new
|
|
24231
|
+
const f = new Ue(null, c, null);
|
|
24223
24232
|
h[0] = f;
|
|
24224
24233
|
}
|
|
24225
24234
|
let d = h[o];
|
|
24226
|
-
d || (Pn && console.log("Adding padding clip for ", c, t, "at slot", o), d = new
|
|
24235
|
+
d || (Pn && console.log("Adding padding clip for ", c, t, "at slot", o), d = new Ue(e, c, t), h[o] = d);
|
|
24227
24236
|
}
|
|
24228
24237
|
const l = new Go(this, e, t);
|
|
24229
24238
|
if (this.rootAndClipToRegisteredAnimationMap.set(i, l), Pn && console.log({ root: e, clip: t, info: l }), t) {
|
|
24230
24239
|
const c = this.rootToRegisteredClip.get(e);
|
|
24231
24240
|
if (c ? c.push(t) : this.rootToRegisteredClip.set(e, [t]), !this.clipToStartTime.get(t)) {
|
|
24232
|
-
this.lastClipEndTime == null && (this.lastClipEndTime =
|
|
24233
|
-
let d = this.lastClipEndTime +
|
|
24241
|
+
this.lastClipEndTime == null && (this.lastClipEndTime = Ue.restPoseClipDuration);
|
|
24242
|
+
let d = this.lastClipEndTime + Ue.animationDurationPadding, f = d + t.duration;
|
|
24234
24243
|
const p = Math.round(d * 60) / 60, g = Math.round(f * 60) / 60;
|
|
24235
24244
|
Math.abs(p - d) < 0.01 && (d = p), Math.abs(g - f) < 0.01 && (f = g), d = Math.ceil(d), f = d + t.duration, this.clipToStartTime.set(t, d), this.lastClipEndTime = f;
|
|
24236
24245
|
}
|
|
@@ -24258,7 +24267,7 @@ class ag {
|
|
|
24258
24267
|
let c = a[l];
|
|
24259
24268
|
if (!c) {
|
|
24260
24269
|
const d = l - (this.injectRestPoses ? 1 : 0);
|
|
24261
|
-
a[l] = new
|
|
24270
|
+
a[l] = new Ue(null, r, this.rootToRegisteredClip.get(t)[d]), c = a[l];
|
|
24262
24271
|
}
|
|
24263
24272
|
const h = c.getDuration();
|
|
24264
24273
|
if (o[l] === void 0) o[l] = h;
|
|
@@ -24344,7 +24353,7 @@ class KM {
|
|
|
24344
24353
|
for (const Je of W) {
|
|
24345
24354
|
const Ri = A.get(Je);
|
|
24346
24355
|
let Vc;
|
|
24347
|
-
Ri ? console.assert(Ri.length === Se, "We should have the same number of TransformData entries for each bone", Ri, U) : Vc = new
|
|
24356
|
+
Ri ? console.assert(Ri.length === Se, "We should have the same number of TransformData entries for each bone", Ri, U) : Vc = new Ue(null, Je, null);
|
|
24348
24357
|
for (let js = 0; js < Se; js++) {
|
|
24349
24358
|
const Uu = Ri ? Ri[js] : Vc, Or = U[js];
|
|
24350
24359
|
for (const { time: Ya, translation: Ka } of Uu.getValues(Or.pos, !0, !1, !1)) {
|
|
@@ -24464,7 +24473,7 @@ class KM {
|
|
|
24464
24473
|
const i = this.animationData.get(this.object);
|
|
24465
24474
|
if (i)
|
|
24466
24475
|
for (let h = 0; h < i.length; h++)
|
|
24467
|
-
i[h] === void 0 && (i[h] = new
|
|
24476
|
+
i[h] === void 0 && (i[h] = new Ue(null, this.object, null));
|
|
24468
24477
|
const n = this.ext;
|
|
24469
24478
|
this.skinnedMeshExport(e, t, n);
|
|
24470
24479
|
const o = this.object, r = this.model, a = this.animationData.get(o);
|
|
@@ -24503,21 +24512,21 @@ class KM {
|
|
|
24503
24512
|
const v = !g.clip, y = d === "position" && (g.pos || v), S = d === "rotation" && (g.rot || v), I = d === "scale" && (g.scale || v);
|
|
24504
24513
|
if (y || S || I) {
|
|
24505
24514
|
const O = g.clip?.name ?? "rest", k = g.getDuration();
|
|
24506
|
-
Pn && console.log("Write .timeSamples:", O, _, k, h), e.appendLine("# " + O + ": start=" + l.format(_ *
|
|
24515
|
+
Pn && console.log("Write .timeSamples:", O, _, k, h), e.appendLine("# " + O + ": start=" + l.format(_ * Ue.frameRate) + ", length=" + l.format(k * Ue.frameRate) + ", frames=" + g.getFrames());
|
|
24507
24516
|
}
|
|
24508
24517
|
if (y)
|
|
24509
24518
|
for (const { time: O, translation: k } of g.getValues(m, !0, !1, !1)) {
|
|
24510
|
-
const z = `${l.format((_ + O) *
|
|
24519
|
+
const z = `${l.format((_ + O) * Ue.frameRate)}: (${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
|
|
24511
24520
|
e.appendLine(z);
|
|
24512
24521
|
}
|
|
24513
24522
|
if (S)
|
|
24514
24523
|
for (const { time: O, rotation: k } of g.getValues(m, !1, !0, !1)) {
|
|
24515
|
-
const z = `${l.format((_ + O) *
|
|
24524
|
+
const z = `${l.format((_ + O) * Ue.frameRate)}: (${ae(k.w)}, ${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
|
|
24516
24525
|
e.appendLine(z);
|
|
24517
24526
|
}
|
|
24518
24527
|
if (I)
|
|
24519
24528
|
for (const { time: O, scale: k } of g.getValues(m, !1, !1, !0)) {
|
|
24520
|
-
const z = `${l.format((_ + O) *
|
|
24529
|
+
const z = `${l.format((_ + O) * Ue.frameRate)}: (${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
|
|
24521
24530
|
e.appendLine(z);
|
|
24522
24531
|
}
|
|
24523
24532
|
}
|
|
@@ -30878,7 +30887,7 @@ C([
|
|
|
30878
30887
|
C([
|
|
30879
30888
|
u()
|
|
30880
30889
|
], ve.prototype, "strengthZMultiplier");
|
|
30881
|
-
class
|
|
30890
|
+
class Ne {
|
|
30882
30891
|
enabled;
|
|
30883
30892
|
attachRibbonToTransform = !1;
|
|
30884
30893
|
colorOverLifetime;
|
|
@@ -30910,64 +30919,64 @@ class Ue {
|
|
|
30910
30919
|
}
|
|
30911
30920
|
C([
|
|
30912
30921
|
u()
|
|
30913
|
-
],
|
|
30922
|
+
], Ne.prototype, "enabled");
|
|
30914
30923
|
C([
|
|
30915
30924
|
u()
|
|
30916
|
-
],
|
|
30925
|
+
], Ne.prototype, "attachRibbonToTransform");
|
|
30917
30926
|
C([
|
|
30918
30927
|
u(Wa)
|
|
30919
|
-
],
|
|
30928
|
+
], Ne.prototype, "colorOverLifetime");
|
|
30920
30929
|
C([
|
|
30921
30930
|
u(Wa)
|
|
30922
|
-
],
|
|
30931
|
+
], Ne.prototype, "colorOverTrail");
|
|
30923
30932
|
C([
|
|
30924
30933
|
u()
|
|
30925
|
-
],
|
|
30934
|
+
], Ne.prototype, "dieWithParticles");
|
|
30926
30935
|
C([
|
|
30927
30936
|
u()
|
|
30928
|
-
],
|
|
30937
|
+
], Ne.prototype, "inheritParticleColor");
|
|
30929
30938
|
C([
|
|
30930
30939
|
u(Y)
|
|
30931
|
-
],
|
|
30940
|
+
], Ne.prototype, "lifetime");
|
|
30932
30941
|
C([
|
|
30933
30942
|
u()
|
|
30934
|
-
],
|
|
30943
|
+
], Ne.prototype, "lifetimeMultiplier");
|
|
30935
30944
|
C([
|
|
30936
30945
|
u()
|
|
30937
|
-
],
|
|
30946
|
+
], Ne.prototype, "minVertexDistance");
|
|
30938
30947
|
C([
|
|
30939
30948
|
u()
|
|
30940
|
-
],
|
|
30949
|
+
], Ne.prototype, "mode");
|
|
30941
30950
|
C([
|
|
30942
30951
|
u()
|
|
30943
|
-
],
|
|
30952
|
+
], Ne.prototype, "ratio");
|
|
30944
30953
|
C([
|
|
30945
30954
|
u()
|
|
30946
|
-
],
|
|
30955
|
+
], Ne.prototype, "ribbonCount");
|
|
30947
30956
|
C([
|
|
30948
30957
|
u()
|
|
30949
|
-
],
|
|
30958
|
+
], Ne.prototype, "shadowBias");
|
|
30950
30959
|
C([
|
|
30951
30960
|
u()
|
|
30952
|
-
],
|
|
30961
|
+
], Ne.prototype, "sizeAffectsLifetime");
|
|
30953
30962
|
C([
|
|
30954
30963
|
u()
|
|
30955
|
-
],
|
|
30964
|
+
], Ne.prototype, "sizeAffectsWidth");
|
|
30956
30965
|
C([
|
|
30957
30966
|
u()
|
|
30958
|
-
],
|
|
30967
|
+
], Ne.prototype, "splitSubEmitterRibbons");
|
|
30959
30968
|
C([
|
|
30960
30969
|
u()
|
|
30961
|
-
],
|
|
30970
|
+
], Ne.prototype, "textureMode");
|
|
30962
30971
|
C([
|
|
30963
30972
|
u(Y)
|
|
30964
|
-
],
|
|
30973
|
+
], Ne.prototype, "widthOverTrail");
|
|
30965
30974
|
C([
|
|
30966
30975
|
u()
|
|
30967
|
-
],
|
|
30976
|
+
], Ne.prototype, "widthOverTrailMultiplier");
|
|
30968
30977
|
C([
|
|
30969
30978
|
u()
|
|
30970
|
-
],
|
|
30979
|
+
], Ne.prototype, "worldSpace");
|
|
30971
30980
|
class Ve {
|
|
30972
30981
|
enabled;
|
|
30973
30982
|
space = 0;
|
|
@@ -32227,7 +32236,7 @@ Fe([
|
|
|
32227
32236
|
u(ve)
|
|
32228
32237
|
], jt.prototype, "noise");
|
|
32229
32238
|
Fe([
|
|
32230
|
-
u(
|
|
32239
|
+
u(Ne)
|
|
32231
32240
|
], jt.prototype, "trails");
|
|
32232
32241
|
Fe([
|
|
32233
32242
|
u(Ve)
|
|
@@ -41895,8 +41904,8 @@ const pL = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
41895
41904
|
TextureSheetAnimationModule: Yt,
|
|
41896
41905
|
TiltShiftEffect: Ds,
|
|
41897
41906
|
ToneMappingEffect: cr,
|
|
41898
|
-
TrailModule:
|
|
41899
|
-
TransformData:
|
|
41907
|
+
TrailModule: Ne,
|
|
41908
|
+
TransformData: Ue,
|
|
41900
41909
|
TransformGizmo: qa,
|
|
41901
41910
|
TriggerBuilder: Gt,
|
|
41902
41911
|
TriggerModel: er,
|
|
@@ -42352,8 +42361,8 @@ export {
|
|
|
42352
42361
|
cr as ToneMappingEffect,
|
|
42353
42362
|
Iu as TrackHandler,
|
|
42354
42363
|
Bi as TrackType,
|
|
42355
|
-
|
|
42356
|
-
|
|
42364
|
+
Ne as TrailModule,
|
|
42365
|
+
Ue as TransformData,
|
|
42357
42366
|
qa as TransformGizmo,
|
|
42358
42367
|
Gt as TriggerBuilder,
|
|
42359
42368
|
er as TriggerModel,
|
package/dist/needle-engine.d.ts
CHANGED
|
@@ -1,21 +1,6 @@
|
|
|
1
1
|
export { }
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
declare module 'three/examples/jsm/controls/OrbitControls.js' {
|
|
5
|
-
interface OrbitControls {
|
|
6
|
-
_sphericalDelta: import("three").Spherical;
|
|
7
|
-
_rotateLeft: (angleInRadians: number) => void;
|
|
8
|
-
_rotateUp: (angleInRadians: number) => void;
|
|
9
|
-
_pan: (dx: number, dy: number) => void;
|
|
10
|
-
_dollyIn: (dollyScale: number) => void;
|
|
11
|
-
_dollyOut: (dollyScale: number) => void;
|
|
12
|
-
}
|
|
13
|
-
interface OrbitControlsEventMap {
|
|
14
|
-
endMovement: Event;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
4
|
declare module 'three' {
|
|
20
5
|
interface SkinnedMesh {
|
|
21
6
|
staticGenerator?: StaticGeometryGenerator;
|
|
@@ -38,6 +23,21 @@ declare module 'three' {
|
|
|
38
23
|
}
|
|
39
24
|
|
|
40
25
|
|
|
26
|
+
declare module 'three/examples/jsm/controls/OrbitControls.js' {
|
|
27
|
+
interface OrbitControls {
|
|
28
|
+
_sphericalDelta: import("three").Spherical;
|
|
29
|
+
_rotateLeft: (angleInRadians: number) => void;
|
|
30
|
+
_rotateUp: (angleInRadians: number) => void;
|
|
31
|
+
_pan: (dx: number, dy: number) => void;
|
|
32
|
+
_dollyIn: (dollyScale: number) => void;
|
|
33
|
+
_dollyOut: (dollyScale: number) => void;
|
|
34
|
+
}
|
|
35
|
+
interface OrbitControlsEventMap {
|
|
36
|
+
endMovement: Event;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
|
|
41
41
|
declare module 'three' {
|
|
42
42
|
interface Object3D {
|
|
43
43
|
get guid(): string | undefined;
|
package/dist/needle-engine.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { GameObject as r, onClear as i, onDestroy as a, onInitialized as s, onAfterRender as l, onBeforeRender as d, onUpdate as c, onStart as m, loadAsset as g, NeedleXRSession as p, Context as u, VERSION as S, Component as C, Components as y } from "./needle-engine.bundle-
|
|
2
|
-
import { $physicsKey as P, ActionBuilder as T, ActionCollection as b, ActionModel as A, Addressables as M, AlignmentConstraint as I, AmbientMode as O, Animation as D, AnimationCurve as x, AnimationExtension as k, AnimationTrackHandler as L, AnimationUtils as N, Animator as B, AnimatorConditionMode as F, AnimatorController as U, AnimatorControllerParameterType as w, AnimatorStateInfo as G, Antialiasing as W, Application as H, AssetDatabase as X, AssetReference as z, AudioExtension as V, AudioListener as _, AudioSource as j, AudioTrackHandler as K, Avatar as Z, AvatarBlink_Simple as Q, AvatarEyeLook_Rotation as Y, AvatarLoader as $, AvatarMarker as J, AvatarModel as q, Avatar_Brain_LookAt as ee, Avatar_MouthShapes as te, Avatar_MustacheShake as oe, Avatar_POI as re, Axes as ne, AxesHelper as ie, BUILD_TIME as ae, BaseUIComponent as se, BasicIKConstraint as le, BehaviorExtension as de, BehaviorModel as ce, Component$1 as me, BlobStorage as ge, BloomEffect as pe, BoxCollider as ue, BoxGizmo as Se, BoxHelperComponent as Ce, Button as ye, ButtonsFactory as Ee, CallDirection as Re, CallInfo as he, Camera as fe, CameraTargetReachedEvent as ve, Canvas as Pe, CanvasGroup as Te, CapsuleCollider as be, ChangeMaterialOnClick as Ae, ChangeTransformOnClick as Me, CharacterController as Ie, CharacterControllerInput as Oe, ChromaticAberration as De, CircularBuffer as xe, ClearFlags as ke, ClipExtrapolation as Le, Collider as Ne, Collision as Be, CollisionDetectionMode as Fe, ColorAdjustments as Ue, ColorBySpeedModule as we, ColorOverLifetimeModule as Ge, Component$1 as We, ComponentLifecycleEvents as He, ConnectionEvents as Xe, ContactPoint as ze, ContactShadows as Ve, ContextArgs as _e, ContextEvent as je, ContextRegistry as Ke, ControlTrackHandler as Ze, CustomBranding as Qe, CustomShader as Ye, DefaultReflectionMode as $e, Deletable as Je, DeleteBox as qe, DepthOfField as et, DeviceFlag as tt, DeviceUtilities as ot, DocumentExtension as rt, DragControls as nt, DragMode as it, DropListener as at, Duplicatable as st, EffectWrapper as lt, EmissionModule as dt, EmphasizeOnClick as ct, EngineLoadingView as mt, EnvironmentScene as gt, EventList as pt, EventListEvent as ut, EventSystem as St, EventTrigger as Ct, FieldWithDefault as yt, FileReference as Et, FileReferenceSerializer as Rt, FileSpawnModel as ht, File_Event as ft, FixedJoint as vt, Fog as Pt, FrameEvent as Tt, GENERATOR as bt, Gizmos as At, GltfExport as Mt, GltfExportBox as It, Gradient as Ot, Graphic as Dt, GraphicRaycaster as xt, Graphics as kt, GridHelper as Lt, GridLayoutGroup as Nt, GroundProjectedEnv as Bt, GroupActionModel as Ft, HideFlags as Ut, HideOnStart as wt, HingeJoint as Gt, HorizontalLayoutGroup as Wt, HostData as Ht, Image as Xt, ImageReference as zt, ImageReferenceSerializer as Vt, InheritVelocityModule as _t, Input as jt, InputEventQueue as Kt, InputEvents as Zt, InputField as Qt, InstanceHandle as Yt, InstancingHandler as $t, InstancingUtil as Jt, InstantiateEvent as qt, InstantiateIdProvider as eo, InstantiateOptions as to, Interactable as oo, InternalScreenshotUtils as ro, JoinedRoomResponse as no, KeyEventArgs as io, Keyframe as ao, LODGroup as so, LODModel as lo, LeftRoomResponse as co, Light as mo, LightData as go, LimitVelocityOverLifetimeModule as po, LoadingElementOptions as uo, LogStats as So, LogType as Co, LookAt as yo, LookAtConstraint as Eo, MainModule as Ro, MarkerType as ho, MaskableGraphic as fo, Mathf as vo, MeshCollider as Po, MeshRenderer as To, MinMaxCurve as bo, MinMaxGradient as Ao, MODULES as Mo, NEKeyboardEvent as Io, NEPointerEvent as Oo, NeedleButtonElement as Do, ContextRegistry as xo, NeedleEngineModelLoader as ko, NeedleEngineWebComponent as Lo, NeedleMenu as No, NeedlePatchesKey as Bo, USDZExporter$1 as Fo, NeedleXRController as Uo, NeedleXRSync as wo, NeedleXRUtils as Go, NestedGltf as Wo, NetworkConnection as Ho, NetworkedStreamEvents as Xo, NetworkedStreams as zo, Networking as Vo, NewInstanceModel as _o, NoiseModule as jo, ObjectRaycaster as Ko, ObjectUtils as Zo, OffsetConstraint as Qo, OneEuroFilter as Yo, OneEuroFilterXYZ as $o, OpenURL as Jo, OrbitControls as qo, Outline as er, OwnershipEvent as tr, OwnershipModel as or, PUBLIC_KEY as rr, Padding as nr, ParticleBurst as ir, ParticleSubEmitter as ar, ParticleSystem as sr, ParticleSystemBaseBehaviour as lr, ParticleSystemRenderer as dr, ParticleSystemShapeType as cr, PeerHandle as mr, PeerNetworking as gr, Physics as pr, PhysicsExtension as ur, PhysicsMaterialCombine as Sr, PixelationEffect as Cr, PlayAnimationOnClick as yr, PlayAudioOnClick as Er, PlayableDirector as Rr, PlayerColor as hr, PlayerState as fr, PlayerStateEvent as vr, PlayerSync as Pr, PlayerView as Tr, PlayerViewManager as br, PointerEventData as Ar, PointerType as Mr, PostProcessingEffect as Ir, PostProcessingEffectOrder as Or, PostProcessingHandler as Dr, Volume as xr, PreliminaryAction as kr, PreliminaryTrigger as Lr, PreviewHelper as Nr, PrimitiveType as Br, Progress as Fr, PromiseAllWithErrors as Ur, PromiseErrorResult as wr, RGBAColor as Gr, RapierPhysics as Wr, RawImage as Hr, RaycastOptions as Xr, Rect as zr, RectTransform as Vr, ReflectionProbe as _r, RegisteredAnimationInfo as jr, RemoteSkybox as Kr, RenderTexture as Zr, RenderTextureSerializer as Qr, Renderer as Yr, RendererData as $r, RendererLightmap as Jr, Rigidbody as qr, RigidbodyConstraints as en, RoomEvents as tn, RotationBySpeedModule as on, RotationOverLifetimeModule as rn, SceneLightSettings as nn, SceneSwitcher as an, ScreenCapture as sn, ScreenSpaceAmbientOcclusion as ln, ScreenSpaceAmbientOcclusionN8 as dn, SendQueue as cn, SerializationContext as mn, SetActiveOnClick as gn, ShadowCatcher as pn, ShapeModule as un, ShapeOverlapResult as Sn, SharpeningEffect as Cn, SignalAsset as yn, SignalReceiver as En, SignalReceiverEvent as Rn, SignalTrackHandler as hn, Size as fn, SizeBySpeedModule as vn, SizeOverLifetimeModule as Pn, SkinnedMeshRenderer as Tn, SmoothFollow as bn, SpatialGrabRaycaster as An, SpatialHtml as Mn, SpatialTrigger as In, SpatialTriggerReceiver as On, SpectatorCamera as Dn, SphereCollider as xn, SphereIntersection as kn, Sprite as Ln, SpriteData as Nn, SpriteRenderer as Bn, SpriteSheet as Fn, StateMachineBehaviour as Un, StreamEndedEvent as wn, StreamReceivedEvent as Gn, SubEmitterSystem as Wn, SyncedCamera as Hn, SyncedRoom as Xn, SyncedTransform as zn, TapGestureTrigger as Vn, TeleportTarget as _n, TestRunner as jn, TestSceneUtils as Kn, TestSimulateUserData as Zn, Text as Qn, TextBuilder as Yn, TextExtension as $n, TextureSheetAnimationModule as Jn, TiltShiftEffect as qn, Time as ei, ToneMappingEffect as ti, TrackHandler as oi, TrackType as ri, TrailModule as ni, TransformData as ii, TransformGizmo as ai, TriggerBuilder as si, TriggerModel as li, TypeStore as di, UIRaycastUtils as ci, UIRootComponent as mi, USDDocument as gi, USDObject as pi, USDWriter as ui, USDZExporter as Si, USDZText as Ci, USDZUIExtension as yi, UriSerializer as Ei, UsageMarker as Ri, UserJoinedOrLeftRoomModel as hi, VariantAction as fi, VelocityOverLifetimeModule as vi, VerticalLayoutGroup as Pi, VideoPlayer as Ti, ViewDevice as bi, Vignette as Ai, VisibilityAction as Mi, Voip as Ii, Volume as Oi, VolumeParameter as Di, VolumeProfile as xi, WaitForFrames as ki, WaitForPromise as Li, WaitForSeconds as Ni, Watch as Bi, WebARCameraBackground as Fi, WebARSessionRoot as Ui, WebXR as wi, WebXRButtonFactory as Gi, WebXRImageTracking as Wi, WebXRImageTrackingModel as Hi, WebXRPlaneTracking as Xi, WebXRTrackedImage as zi, XRControllerFollow as Vi, XRControllerModel as _i, XRControllerMovement as ji, XRFlag as Ki, XRRig as Zi, XRState as Qi, XRStateFlag as Yi, __Ignore as $i, __internalNotifyObjectDestroyed as Ji, activeInHierarchyFieldName as qi, addAttributeChangeCallback as ea, addComponent as ta, addCustomExtensionPlugin as oa, addNewComponent as ra, addPatch as na, apply as ia, applyHMRChanges as aa, applyPrototypeExtensions as sa, beginListenDestroy as la, beginListenInstantiate as da, binaryIdentifierCasts as ca, build_scene_functions as ma, builtinComponentKeyName as ga, calculateProgress01 as pa, clearMessages as ua, clearMessages as Sa, colorSerializer as Ca, compareAssociation as ya, componentSerializer as Ea, copyTexture as Ra, createMotion as ha, debugNet as fa, debugOwner as va, decompressGpuTexture as Pa, deepClone as Ta, delay as ba, delayForFrames as Aa, deserializeObject as Ma, destroy as Ia, destroyComponentInstance as Oa, determineMimeTypeFromExtension as Da, disposeObjectResources as xa, disposeStream as ka, editorGuidKeyName as La, enableSpatialConsole as Na, euler as Ba, eventListSerializer as Fa, exportAsGLTF as Ua, findByGuid as wa, findObjectOfType as Ga, findObjectsOfType as Wa, findResourceUsers as Ha, fitObjectIntoVolume as Xa, foreachComponent as za, foreachComponentEnumerator as Va, forward as _a, generateQRCode as ja, generateSeed as Ka, getBoundingBox as Za, getCameraController as Qa, getComponent as Ya, getComponentInChildren as $a, getComponentInParent as Ja, getComponents as qa, getComponentsInChildren as es, getComponentsInParent as ts, getFormattedDate as os, getIconElement as rs, getIconTexture as ns, getLoader as is, getOrAddComponent as as, getParam as ss, getParentHierarchyPath as ls, getPath as ds, getPeerOptions as cs, getPeerjsInstance as ms, getResourceUserCount as gs, getTempColor as ps, getTempQuaternion as us, getTempVector as Ss, getUrlParams as Cs, getVisibleInCustomShadowRendering as ys, getWorldDirection as Es, getWorldEuler as Rs, getWorldPosition as hs, getWorldQuaternion as fs, getWorldRotation as vs, getWorldScale as Ps, hasCommercialLicense as Ts, hasIndieLicense as bs, hasPointerEventComponent as As, hasProLicense as Ms, hideDebugConsole as Is, imageToCanvas as Os, instantiate as Ds, invokeLoadedImportPluginHooks as xs, invokeXRSessionEnd as ks, invokeXRSessionStart as Ls, isActiveInHierarchy as Ns, isActiveSelf as Bs, isAndroidDevice as Fs, isAnimationAction as Us, isComponent as ws, isDebugMode as Gs, isDesktop as Ws, isDestroyed as Hs, isDevEnvironment as Xs, isDisposed as zs, isExporting as Vs, isGLTFModel as _s, isHostedOnGlitch as js, isHotReloadEnabled as Ks, isHotReloading as Zs, isIPad as Qs, isIconElement as Ys, isLocalNetwork as $s, isMacOS as Js, isMobileDevice as qs, isMozillaXR as el, isQuest as tl, isResourceTrackingEnabled as ol, isSafari as rl, isUsingInstancing as nl, isiOS as il, isiPad as al, loadSync as sl, logHierarchy as ll, lookAtInverse as dl, lookAtObject as cl, lookAtScreenPoint as ml, makeId as gl, makeIdFromRandomWords as pl, makeNameSafe as ul, markAsInstancedRendered as Sl, microphonePermissionsGranted as Cl, nameof as yl, nameofFactory as El, objectSerializer as Rl, offXRSessionEnd as hl, offXRSessionStart as fl, onXRSessionEnd as vl, onXRSessionStart as Pl, parseSync as Tl, placeOnSurface as bl, postprocessFBXMaterials as Al, prefix as Ml, pushState as Il, randomNumber as Ol, registerBinaryType as Dl, registerComponent as xl, registerComponentExtension as kl, registerCustomEffectType as Ll, registerExportExtensions as Nl, registerExtensions as Bl, registerHotReloadType as Fl, registerLoader as Ul, registerPrefabProvider as wl, registerPrototypeExtensions as Gl, registerType as Wl, relativePathPrefix as Hl, removeAttributeChangeCallback as Xl, removeComponent as zl, removeCustomImportExtensionType as Vl, removePatch as _l, resolveUrl as jl, sanitizeString as Kl, saveImage as Zl, screenshot as Ql, screenshot2 as Yl, sendDestroyed as $l, serializable as Jl, serializeObject as ql, serializeable as ed, setActive as td, setAllowBalloonMessages as od, setAllowOverlayMessages as rd, setAutoFitEnabled as nd, setCameraController as id, setDestroyed as ad, setDevEnvironment as sd, setDisposable as ld, setDontDestroy as dd, setOrAddParamsToUrl as cd, setParam as md, setParamWithoutReload as gd, setPeerOptions as pd, setResourceTrackingEnabled as ud, setState as Sd, setVisibleInCustomShadowRendering as Cd, setWorldEuler as yd, setWorldPosition as Ed, setWorldPositionXYZ as Rd, setWorldQuaternion as hd, setWorldQuaternionXYZW as fd, setWorldRotation as vd, setWorldRotationXYZ as Pd, setWorldScale as Td, showBalloonError as bd, showBalloonMessage as Ad, showBalloonWarning as Md, showDebugConsole as Id, slerp as Od, syncDestroy as Dd, syncField as xd, syncInstantiate as kd, textureToCanvas as Ld, tryCastBinary as Nd, tryDetermineMimetypeFromBinary as Bd, tryDetermineMimetypeFromURL as Fd, tryFindObject as Ud, tryGetGuid as wd, unregisterHotReloadType as Gd, unwatchWrite as Wd, useForAutoFit as Hd, validate as Xd, watchWrite as zd } from "./needle-engine.bundle-ClHmG8SZ.js";
|
|
1
|
+
import { GameObject as r, onClear as i, onDestroy as a, onInitialized as s, onAfterRender as l, onBeforeRender as d, onUpdate as c, onStart as m, loadAsset as g, NeedleXRSession as p, Context as u, VERSION as S, Component as C, Components as y } from "./needle-engine.bundle-DbnDoLkt.js";
|
|
2
|
+
import { $physicsKey as P, ActionBuilder as T, ActionCollection as b, ActionModel as A, Addressables as M, AlignmentConstraint as I, AmbientMode as O, Animation as D, AnimationCurve as x, AnimationExtension as k, AnimationTrackHandler as L, AnimationUtils as N, Animator as B, AnimatorConditionMode as F, AnimatorController as U, AnimatorControllerParameterType as w, AnimatorStateInfo as G, Antialiasing as W, Application as H, AssetDatabase as X, AssetReference as z, AudioExtension as V, AudioListener as _, AudioSource as j, AudioTrackHandler as K, Avatar as Z, AvatarBlink_Simple as Q, AvatarEyeLook_Rotation as Y, AvatarLoader as $, AvatarMarker as J, AvatarModel as q, Avatar_Brain_LookAt as ee, Avatar_MouthShapes as te, Avatar_MustacheShake as oe, Avatar_POI as re, Axes as ne, AxesHelper as ie, BUILD_TIME as ae, BaseUIComponent as se, BasicIKConstraint as le, BehaviorExtension as de, BehaviorModel as ce, Component$1 as me, BlobStorage as ge, BloomEffect as pe, BoxCollider as ue, BoxGizmo as Se, BoxHelperComponent as Ce, Button as ye, ButtonsFactory as Ee, CallDirection as Re, CallInfo as he, Camera as fe, CameraTargetReachedEvent as ve, Canvas as Pe, CanvasGroup as Te, CapsuleCollider as be, ChangeMaterialOnClick as Ae, ChangeTransformOnClick as Me, CharacterController as Ie, CharacterControllerInput as Oe, ChromaticAberration as De, CircularBuffer as xe, ClearFlags as ke, ClipExtrapolation as Le, Collider as Ne, Collision as Be, CollisionDetectionMode as Fe, ColorAdjustments as Ue, ColorBySpeedModule as we, ColorOverLifetimeModule as Ge, Component$1 as We, ComponentLifecycleEvents as He, ConnectionEvents as Xe, ContactPoint as ze, ContactShadows as Ve, ContextArgs as _e, ContextEvent as je, ContextRegistry as Ke, ControlTrackHandler as Ze, CustomBranding as Qe, CustomShader as Ye, DefaultReflectionMode as $e, Deletable as Je, DeleteBox as qe, DepthOfField as et, DeviceFlag as tt, DeviceUtilities as ot, DocumentExtension as rt, DragControls as nt, DragMode as it, DropListener as at, Duplicatable as st, EffectWrapper as lt, EmissionModule as dt, EmphasizeOnClick as ct, EngineLoadingView as mt, EnvironmentScene as gt, EventList as pt, EventListEvent as ut, EventSystem as St, EventTrigger as Ct, FieldWithDefault as yt, FileReference as Et, FileReferenceSerializer as Rt, FileSpawnModel as ht, File_Event as ft, FixedJoint as vt, Fog as Pt, FrameEvent as Tt, GENERATOR as bt, Gizmos as At, GltfExport as Mt, GltfExportBox as It, Gradient as Ot, Graphic as Dt, GraphicRaycaster as xt, Graphics as kt, GridHelper as Lt, GridLayoutGroup as Nt, GroundProjectedEnv as Bt, GroupActionModel as Ft, HideFlags as Ut, HideOnStart as wt, HingeJoint as Gt, HorizontalLayoutGroup as Wt, HostData as Ht, Image as Xt, ImageReference as zt, ImageReferenceSerializer as Vt, InheritVelocityModule as _t, Input as jt, InputEventQueue as Kt, InputEvents as Zt, InputField as Qt, InstanceHandle as Yt, InstancingHandler as $t, InstancingUtil as Jt, InstantiateEvent as qt, InstantiateIdProvider as eo, InstantiateOptions as to, Interactable as oo, InternalScreenshotUtils as ro, JoinedRoomResponse as no, KeyEventArgs as io, Keyframe as ao, LODGroup as so, LODModel as lo, LeftRoomResponse as co, Light as mo, LightData as go, LimitVelocityOverLifetimeModule as po, LoadingElementOptions as uo, LogStats as So, LogType as Co, LookAt as yo, LookAtConstraint as Eo, MainModule as Ro, MarkerType as ho, MaskableGraphic as fo, Mathf as vo, MeshCollider as Po, MeshRenderer as To, MinMaxCurve as bo, MinMaxGradient as Ao, MODULES as Mo, NEKeyboardEvent as Io, NEPointerEvent as Oo, NeedleButtonElement as Do, ContextRegistry as xo, NeedleEngineModelLoader as ko, NeedleEngineWebComponent as Lo, NeedleMenu as No, NeedlePatchesKey as Bo, USDZExporter$1 as Fo, NeedleXRController as Uo, NeedleXRSync as wo, NeedleXRUtils as Go, NestedGltf as Wo, NetworkConnection as Ho, NetworkedStreamEvents as Xo, NetworkedStreams as zo, Networking as Vo, NewInstanceModel as _o, NoiseModule as jo, ObjectRaycaster as Ko, ObjectUtils as Zo, OffsetConstraint as Qo, OneEuroFilter as Yo, OneEuroFilterXYZ as $o, OpenURL as Jo, OrbitControls as qo, Outline as er, OwnershipEvent as tr, OwnershipModel as or, PUBLIC_KEY as rr, Padding as nr, ParticleBurst as ir, ParticleSubEmitter as ar, ParticleSystem as sr, ParticleSystemBaseBehaviour as lr, ParticleSystemRenderer as dr, ParticleSystemShapeType as cr, PeerHandle as mr, PeerNetworking as gr, Physics as pr, PhysicsExtension as ur, PhysicsMaterialCombine as Sr, PixelationEffect as Cr, PlayAnimationOnClick as yr, PlayAudioOnClick as Er, PlayableDirector as Rr, PlayerColor as hr, PlayerState as fr, PlayerStateEvent as vr, PlayerSync as Pr, PlayerView as Tr, PlayerViewManager as br, PointerEventData as Ar, PointerType as Mr, PostProcessingEffect as Ir, PostProcessingEffectOrder as Or, PostProcessingHandler as Dr, Volume as xr, PreliminaryAction as kr, PreliminaryTrigger as Lr, PreviewHelper as Nr, PrimitiveType as Br, Progress as Fr, PromiseAllWithErrors as Ur, PromiseErrorResult as wr, RGBAColor as Gr, RapierPhysics as Wr, RawImage as Hr, RaycastOptions as Xr, Rect as zr, RectTransform as Vr, ReflectionProbe as _r, RegisteredAnimationInfo as jr, RemoteSkybox as Kr, RenderTexture as Zr, RenderTextureSerializer as Qr, Renderer as Yr, RendererData as $r, RendererLightmap as Jr, Rigidbody as qr, RigidbodyConstraints as en, RoomEvents as tn, RotationBySpeedModule as on, RotationOverLifetimeModule as rn, SceneLightSettings as nn, SceneSwitcher as an, ScreenCapture as sn, ScreenSpaceAmbientOcclusion as ln, ScreenSpaceAmbientOcclusionN8 as dn, SendQueue as cn, SerializationContext as mn, SetActiveOnClick as gn, ShadowCatcher as pn, ShapeModule as un, ShapeOverlapResult as Sn, SharpeningEffect as Cn, SignalAsset as yn, SignalReceiver as En, SignalReceiverEvent as Rn, SignalTrackHandler as hn, Size as fn, SizeBySpeedModule as vn, SizeOverLifetimeModule as Pn, SkinnedMeshRenderer as Tn, SmoothFollow as bn, SpatialGrabRaycaster as An, SpatialHtml as Mn, SpatialTrigger as In, SpatialTriggerReceiver as On, SpectatorCamera as Dn, SphereCollider as xn, SphereIntersection as kn, Sprite as Ln, SpriteData as Nn, SpriteRenderer as Bn, SpriteSheet as Fn, StateMachineBehaviour as Un, StreamEndedEvent as wn, StreamReceivedEvent as Gn, SubEmitterSystem as Wn, SyncedCamera as Hn, SyncedRoom as Xn, SyncedTransform as zn, TapGestureTrigger as Vn, TeleportTarget as _n, TestRunner as jn, TestSceneUtils as Kn, TestSimulateUserData as Zn, Text as Qn, TextBuilder as Yn, TextExtension as $n, TextureSheetAnimationModule as Jn, TiltShiftEffect as qn, Time as ei, ToneMappingEffect as ti, TrackHandler as oi, TrackType as ri, TrailModule as ni, TransformData as ii, TransformGizmo as ai, TriggerBuilder as si, TriggerModel as li, TypeStore as di, UIRaycastUtils as ci, UIRootComponent as mi, USDDocument as gi, USDObject as pi, USDWriter as ui, USDZExporter as Si, USDZText as Ci, USDZUIExtension as yi, UriSerializer as Ei, UsageMarker as Ri, UserJoinedOrLeftRoomModel as hi, VariantAction as fi, VelocityOverLifetimeModule as vi, VerticalLayoutGroup as Pi, VideoPlayer as Ti, ViewDevice as bi, Vignette as Ai, VisibilityAction as Mi, Voip as Ii, Volume as Oi, VolumeParameter as Di, VolumeProfile as xi, WaitForFrames as ki, WaitForPromise as Li, WaitForSeconds as Ni, Watch as Bi, WebARCameraBackground as Fi, WebARSessionRoot as Ui, WebXR as wi, WebXRButtonFactory as Gi, WebXRImageTracking as Wi, WebXRImageTrackingModel as Hi, WebXRPlaneTracking as Xi, WebXRTrackedImage as zi, XRControllerFollow as Vi, XRControllerModel as _i, XRControllerMovement as ji, XRFlag as Ki, XRRig as Zi, XRState as Qi, XRStateFlag as Yi, __Ignore as $i, __internalNotifyObjectDestroyed as Ji, activeInHierarchyFieldName as qi, addAttributeChangeCallback as ea, addComponent as ta, addCustomExtensionPlugin as oa, addNewComponent as ra, addPatch as na, apply as ia, applyHMRChanges as aa, applyPrototypeExtensions as sa, beginListenDestroy as la, beginListenInstantiate as da, binaryIdentifierCasts as ca, build_scene_functions as ma, builtinComponentKeyName as ga, calculateProgress01 as pa, clearMessages as ua, clearMessages as Sa, colorSerializer as Ca, compareAssociation as ya, componentSerializer as Ea, copyTexture as Ra, createMotion as ha, debugNet as fa, debugOwner as va, decompressGpuTexture as Pa, deepClone as Ta, delay as ba, delayForFrames as Aa, deserializeObject as Ma, destroy as Ia, destroyComponentInstance as Oa, determineMimeTypeFromExtension as Da, disposeObjectResources as xa, disposeStream as ka, editorGuidKeyName as La, enableSpatialConsole as Na, euler as Ba, eventListSerializer as Fa, exportAsGLTF as Ua, findByGuid as wa, findObjectOfType as Ga, findObjectsOfType as Wa, findResourceUsers as Ha, fitObjectIntoVolume as Xa, foreachComponent as za, foreachComponentEnumerator as Va, forward as _a, generateQRCode as ja, generateSeed as Ka, getBoundingBox as Za, getCameraController as Qa, getComponent as Ya, getComponentInChildren as $a, getComponentInParent as Ja, getComponents as qa, getComponentsInChildren as es, getComponentsInParent as ts, getFormattedDate as os, getIconElement as rs, getIconTexture as ns, getLoader as is, getOrAddComponent as as, getParam as ss, getParentHierarchyPath as ls, getPath as ds, getPeerOptions as cs, getPeerjsInstance as ms, getResourceUserCount as gs, getTempColor as ps, getTempQuaternion as us, getTempVector as Ss, getUrlParams as Cs, getVisibleInCustomShadowRendering as ys, getWorldDirection as Es, getWorldEuler as Rs, getWorldPosition as hs, getWorldQuaternion as fs, getWorldRotation as vs, getWorldScale as Ps, hasCommercialLicense as Ts, hasIndieLicense as bs, hasPointerEventComponent as As, hasProLicense as Ms, hideDebugConsole as Is, imageToCanvas as Os, instantiate as Ds, invokeLoadedImportPluginHooks as xs, invokeXRSessionEnd as ks, invokeXRSessionStart as Ls, isActiveInHierarchy as Ns, isActiveSelf as Bs, isAndroidDevice as Fs, isAnimationAction as Us, isComponent as ws, isDebugMode as Gs, isDesktop as Ws, isDestroyed as Hs, isDevEnvironment as Xs, isDisposed as zs, isExporting as Vs, isGLTFModel as _s, isHostedOnGlitch as js, isHotReloadEnabled as Ks, isHotReloading as Zs, isIPad as Qs, isIconElement as Ys, isLocalNetwork as $s, isMacOS as Js, isMobileDevice as qs, isMozillaXR as el, isQuest as tl, isResourceTrackingEnabled as ol, isSafari as rl, isUsingInstancing as nl, isiOS as il, isiPad as al, loadSync as sl, logHierarchy as ll, lookAtInverse as dl, lookAtObject as cl, lookAtScreenPoint as ml, makeId as gl, makeIdFromRandomWords as pl, makeNameSafe as ul, markAsInstancedRendered as Sl, microphonePermissionsGranted as Cl, nameof as yl, nameofFactory as El, objectSerializer as Rl, offXRSessionEnd as hl, offXRSessionStart as fl, onXRSessionEnd as vl, onXRSessionStart as Pl, parseSync as Tl, placeOnSurface as bl, postprocessFBXMaterials as Al, prefix as Ml, pushState as Il, randomNumber as Ol, registerBinaryType as Dl, registerComponent as xl, registerComponentExtension as kl, registerCustomEffectType as Ll, registerExportExtensions as Nl, registerExtensions as Bl, registerHotReloadType as Fl, registerLoader as Ul, registerPrefabProvider as wl, registerPrototypeExtensions as Gl, registerType as Wl, relativePathPrefix as Hl, removeAttributeChangeCallback as Xl, removeComponent as zl, removeCustomImportExtensionType as Vl, removePatch as _l, resolveUrl as jl, sanitizeString as Kl, saveImage as Zl, screenshot as Ql, screenshot2 as Yl, sendDestroyed as $l, serializable as Jl, serializeObject as ql, serializeable as ed, setActive as td, setAllowBalloonMessages as od, setAllowOverlayMessages as rd, setAutoFitEnabled as nd, setCameraController as id, setDestroyed as ad, setDevEnvironment as sd, setDisposable as ld, setDontDestroy as dd, setOrAddParamsToUrl as cd, setParam as md, setParamWithoutReload as gd, setPeerOptions as pd, setResourceTrackingEnabled as ud, setState as Sd, setVisibleInCustomShadowRendering as Cd, setWorldEuler as yd, setWorldPosition as Ed, setWorldPositionXYZ as Rd, setWorldQuaternion as hd, setWorldQuaternionXYZW as fd, setWorldRotation as vd, setWorldRotationXYZ as Pd, setWorldScale as Td, showBalloonError as bd, showBalloonMessage as Ad, showBalloonWarning as Md, showDebugConsole as Id, slerp as Od, syncDestroy as Dd, syncField as xd, syncInstantiate as kd, textureToCanvas as Ld, tryCastBinary as Nd, tryDetermineMimetypeFromBinary as Bd, tryDetermineMimetypeFromURL as Fd, tryFindObject as Ud, tryGetGuid as wd, unregisterHotReloadType as Gd, unwatchWrite as Wd, useForAutoFit as Hd, validate as Xd, watchWrite as zd } from "./needle-engine.bundle-DbnDoLkt.js";
|
|
3
3
|
import { NEEDLE_progressive as _d } from "./gltf-progressive-Do1XJNMG.js";
|
|
4
4
|
import { THREE as E } from "./three-DrqIzZTH.js";
|
|
5
5
|
const t = {
|