@needle-tools/engine 4.8.8-next.e80f4d7 → 4.8.9-next.5967018

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 (92) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +50 -49
  3. package/dist/gltf-progressive-DWiyqrwB.umd.cjs +8 -0
  4. package/dist/gltf-progressive-DhE1A6hX.min.js +8 -0
  5. package/dist/{gltf-progressive-BcHT3Nyo.js → gltf-progressive-egsMzRdv.js} +384 -369
  6. package/dist/{needle-engine.bundle-IGziSts0.min.js → needle-engine.bundle-BO4qGXtR.min.js} +142 -142
  7. package/dist/{needle-engine.bundle-DfWoUjQM.js → needle-engine.bundle-Cw3iV8mu.js} +7880 -7643
  8. package/dist/{needle-engine.bundle-DK1r3WiC.umd.cjs → needle-engine.bundle-Dco5pIbB.umd.cjs} +138 -138
  9. package/dist/needle-engine.js +305 -301
  10. package/dist/needle-engine.min.js +1 -1
  11. package/dist/needle-engine.umd.cjs +1 -1
  12. package/dist/{postprocessing-Ywv5oKkX.min.js → postprocessing-B_FzkwDz.min.js} +1 -1
  13. package/dist/{postprocessing-ORx-0eCx.js → postprocessing-DP1U_BpT.js} +2 -2
  14. package/dist/{postprocessing-CVb_x9YY.umd.cjs → postprocessing-DTX5VXrj.umd.cjs} +1 -1
  15. package/dist/rapier-BJaux8TQ.js +5217 -0
  16. package/dist/rapier-Bd0qRV1r.umd.cjs +1 -0
  17. package/dist/rapier-CnHGx3sO.min.js +1 -0
  18. package/dist/{three-Dceyffus.umd.cjs → three-BK56xWDs.umd.cjs} +24 -24
  19. package/dist/{three-BRSLmpyi.js → three-CsHK73Zc.js} +1 -0
  20. package/dist/{three-CsmWHVn7.min.js → three-TNFQHSFa.min.js} +25 -25
  21. package/dist/{three-examples-BX_Sktc9.min.js → three-examples-Bph291U2.min.js} +1 -1
  22. package/dist/{three-examples-CNexix3E.js → three-examples-BvMpKSun.js} +1 -1
  23. package/dist/{three-examples-DWxXVnws.umd.cjs → three-examples-C9WfZu-X.umd.cjs} +1 -1
  24. package/dist/{three-mesh-ui-gqAXlGNB.js → three-mesh-ui-CN6aRT7i.js} +1 -1
  25. package/dist/{three-mesh-ui-Cdh2iW8b.umd.cjs → three-mesh-ui-DnxkZWNA.umd.cjs} +1 -1
  26. package/dist/{three-mesh-ui-Bwy12Qvg.min.js → three-mesh-ui-n_qS2BM-.min.js} +1 -1
  27. package/dist/{vendor-xfQ8tKF3.umd.cjs → vendor-8le8g4MS.umd.cjs} +1 -1
  28. package/dist/{vendor-Z4SPrTcP.js → vendor-Msb9AgYE.js} +1 -1
  29. package/dist/{vendor-C43vobGc.min.js → vendor-yDFiCnCw.min.js} +1 -1
  30. package/lib/engine/codegen/register_types.js +4 -0
  31. package/lib/engine/codegen/register_types.js.map +1 -1
  32. package/lib/engine/engine_physics_rapier.js +3 -2
  33. package/lib/engine/engine_physics_rapier.js.map +1 -1
  34. package/lib/engine/engine_three_utils.js +4 -2
  35. package/lib/engine/engine_three_utils.js.map +1 -1
  36. package/lib/engine/js-extensions/index.d.ts +2 -1
  37. package/lib/engine/js-extensions/index.js +1 -1
  38. package/lib/engine/js-extensions/index.js.map +1 -1
  39. package/lib/engine/xr/NeedleXRController.js +30 -9
  40. package/lib/engine/xr/NeedleXRController.js.map +1 -1
  41. package/lib/engine/xr/NeedleXRSession.js +18 -13
  42. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  43. package/lib/engine-components/Camera.d.ts +1 -1
  44. package/lib/engine-components/Camera.js.map +1 -1
  45. package/lib/engine-components/OrbitControls.js +2 -2
  46. package/lib/engine-components/OrbitControls.js.map +1 -1
  47. package/lib/engine-components/api.d.ts +2 -1
  48. package/lib/engine-components/api.js +1 -0
  49. package/lib/engine-components/api.js.map +1 -1
  50. package/lib/engine-components/codegen/components.d.ts +3 -0
  51. package/lib/engine-components/codegen/components.js +3 -0
  52. package/lib/engine-components/codegen/components.js.map +1 -1
  53. package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.d.ts +1 -1
  54. package/lib/engine-components/splines/Spline.d.ts +58 -0
  55. package/lib/engine-components/splines/Spline.js +270 -0
  56. package/lib/engine-components/splines/Spline.js.map +1 -0
  57. package/lib/engine-components/splines/SplineUtils.d.ts +12 -0
  58. package/lib/engine-components/splines/SplineUtils.js +33 -0
  59. package/lib/engine-components/splines/SplineUtils.js.map +1 -0
  60. package/lib/engine-components/splines/SplineWalker.d.ts +47 -0
  61. package/lib/engine-components/splines/SplineWalker.js +113 -0
  62. package/lib/engine-components/splines/SplineWalker.js.map +1 -0
  63. package/lib/engine-components/splines/index.d.ts +3 -0
  64. package/lib/engine-components/splines/index.js +4 -0
  65. package/lib/engine-components/splines/index.js.map +1 -0
  66. package/lib/engine-components/webxr/controllers/XRControllerModel.js +2 -2
  67. package/lib/engine-components/webxr/controllers/XRControllerModel.js.map +1 -1
  68. package/lib/engine-components/webxr/controllers/XRControllerMovement.js +4 -0
  69. package/lib/engine-components/webxr/controllers/XRControllerMovement.js.map +1 -1
  70. package/package.json +3 -3
  71. package/plugins/vite/alias.js +3 -2
  72. package/src/engine/codegen/register_types.ts +4 -0
  73. package/src/engine/engine_physics_rapier.ts +3 -2
  74. package/src/engine/engine_three_utils.ts +5 -2
  75. package/src/engine/js-extensions/index.ts +3 -2
  76. package/src/engine/xr/NeedleXRController.ts +39 -15
  77. package/src/engine/xr/NeedleXRSession.ts +18 -13
  78. package/src/engine-components/Camera.ts +1 -1
  79. package/src/engine-components/OrbitControls.ts +2 -5
  80. package/src/engine-components/api.ts +2 -1
  81. package/src/engine-components/codegen/components.ts +3 -0
  82. package/src/engine-components/splines/Spline.ts +284 -0
  83. package/src/engine-components/splines/SplineUtils.ts +32 -0
  84. package/src/engine-components/splines/SplineWalker.ts +106 -0
  85. package/src/engine-components/splines/index.ts +3 -0
  86. package/src/engine-components/webxr/controllers/XRControllerModel.ts +3 -2
  87. package/src/engine-components/webxr/controllers/XRControllerMovement.ts +5 -1
  88. package/dist/gltf-progressive-CH3Q4H06.umd.cjs +0 -8
  89. package/dist/gltf-progressive-DR6HqF_h.min.js +0 -8
  90. package/dist/rapier--oeYP_h7.umd.cjs +0 -1
  91. package/dist/rapier-B3xpyPtq.js +0 -5142
  92. package/dist/rapier-CyWhltHY.min.js +0 -1
@@ -20,7 +20,7 @@ export declare class BehaviorExtension implements IUSDExporterExtension {
20
20
  private audioClipsCopy;
21
21
  private targetUuids;
22
22
  getAllTargetUuids(): Set<string>;
23
- onBeforeBuildDocument(context: USDZExporterContext): Promise<any[]> | Promise<void>;
23
+ onBeforeBuildDocument(context: USDZExporterContext): Promise<void> | Promise<any[]>;
24
24
  onExportObject(_object: any, model: USDObject, context: any): void;
25
25
  onAfterBuildDocument(context: USDZExporterContext): void;
26
26
  onAfterHierarchy(context: USDZExporterContext, writer: USDWriter): void;
@@ -0,0 +1,58 @@
1
+ import { Curve, Quaternion, Vector3 } from "three";
2
+ import { Behaviour } from "../Component.js";
3
+ export declare class SplineData {
4
+ position: Vector3;
5
+ rotation: Quaternion;
6
+ tangentIn: Vector3;
7
+ tangentOut: Vector3;
8
+ }
9
+ /**
10
+ * Holds spline data and generates a spline curve. Use with SplineWalker to move objects along the spline or call getPointAt to sample points on the spline.
11
+ * The spline is defined by an array of knots (SplineData) which define position, rotation and tangents.
12
+ *
13
+ * You can create a SplineContainer from an array of points using the static method 'createFromPoints'.
14
+ */
15
+ export declare class SplineContainer extends Behaviour {
16
+ /**
17
+ * Adds a knot to the end of the spline.
18
+ */
19
+ addKnot(knot: SplineData | {
20
+ position: Vector3;
21
+ }): SplineContainer;
22
+ /**
23
+ * Removes a knot by index or by reference.
24
+ */
25
+ removeKnot(index: number | SplineData): SplineContainer;
26
+ /**
27
+ * Gets a point on the spline in world space.
28
+ */
29
+ getPointAt(t: number, target?: Vector3): Vector3;
30
+ /**
31
+ * Marks the spline as dirty, causing it to be rebuilt on the next update.
32
+ */
33
+ markDirty(): void;
34
+ /**
35
+ * Gets the tangent vector on the spline in world space.
36
+ */
37
+ getTangentAt(t: number, target?: Vector3): Vector3;
38
+ set closed(value: boolean);
39
+ get closed(): boolean;
40
+ private _closed;
41
+ /** Spline data. Call 'markDirty' if modified */
42
+ spline: SplineData[];
43
+ /** Enable to render the spline curve for debugging */
44
+ set debug(debug: boolean);
45
+ /** Gets the spline curve generated from the 'spline' data */
46
+ get curve(): Curve<Vector3> | null;
47
+ get isDirty(): boolean;
48
+ private _isDirty;
49
+ private _curve;
50
+ private _builtCurve;
51
+ private _debugLine;
52
+ /** @internal */
53
+ awake(): void;
54
+ /** @internal */
55
+ update(): void;
56
+ private buildCurve;
57
+ private buildDebugCurve;
58
+ }
@@ -0,0 +1,270 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { BufferGeometry, CatmullRomCurve3, Line, LineBasicMaterial, LineCurve3, Quaternion, Vector3 } from "three";
8
+ import { Mathf } from "../../engine/engine_math.js";
9
+ import { serializeable } from "../../engine/engine_serialization.js";
10
+ import { getParam } from "../../engine/engine_utils.js";
11
+ import { Behaviour } from "../Component.js";
12
+ const debug = getParam("debugsplines");
13
+ export class SplineData {
14
+ position = new Vector3();
15
+ rotation = new Quaternion();
16
+ tangentIn = new Vector3();
17
+ tangentOut = new Vector3();
18
+ }
19
+ __decorate([
20
+ serializeable(Vector3)
21
+ ], SplineData.prototype, "position", void 0);
22
+ __decorate([
23
+ serializeable(Quaternion)
24
+ ], SplineData.prototype, "rotation", void 0);
25
+ __decorate([
26
+ serializeable(Vector3)
27
+ ], SplineData.prototype, "tangentIn", void 0);
28
+ __decorate([
29
+ serializeable(Vector3)
30
+ ], SplineData.prototype, "tangentOut", void 0);
31
+ // enum SplineTypeEnum {
32
+ // CatmullRom = 0,
33
+ // Bezier = 1,
34
+ // Linear = 2
35
+ // }
36
+ // type SplineType = "CatmullRom" | "Bezier" | "Linear";
37
+ //@dont-generate-component
38
+ /**
39
+ * Holds spline data and generates a spline curve. Use with SplineWalker to move objects along the spline or call getPointAt to sample points on the spline.
40
+ * The spline is defined by an array of knots (SplineData) which define position, rotation and tangents.
41
+ *
42
+ * You can create a SplineContainer from an array of points using the static method 'createFromPoints'.
43
+ */
44
+ export class SplineContainer extends Behaviour {
45
+ /**
46
+ * Adds a knot to the end of the spline.
47
+ */
48
+ addKnot(knot) {
49
+ if (knot instanceof SplineData) {
50
+ this.spline.push(knot);
51
+ this._isDirty = true;
52
+ }
53
+ else {
54
+ const k = new SplineData();
55
+ k.position.copy(knot.position);
56
+ this.spline.push(k);
57
+ this._isDirty = true;
58
+ }
59
+ return this;
60
+ }
61
+ /**
62
+ * Removes a knot by index or by reference.
63
+ */
64
+ removeKnot(index) {
65
+ if (typeof index === "number") {
66
+ this.spline.splice(index, 1);
67
+ this._isDirty = true;
68
+ }
69
+ else {
70
+ const i = this.spline.indexOf(index);
71
+ if (i !== -1) {
72
+ this.spline.splice(i, 1);
73
+ this._isDirty = true;
74
+ }
75
+ }
76
+ return this;
77
+ }
78
+ /**
79
+ * Gets a point on the spline in world space.
80
+ */
81
+ getPointAt(t, target) {
82
+ if (!this.curve)
83
+ return new Vector3();
84
+ const pos = this.curve.getPointAt(Mathf.clamp01(t), target);
85
+ const worldMatrix = this.gameObject.matrixWorld ?? undefined;
86
+ if (worldMatrix) {
87
+ pos.applyMatrix4(worldMatrix);
88
+ }
89
+ return pos;
90
+ }
91
+ /**
92
+ * Marks the spline as dirty, causing it to be rebuilt on the next update.
93
+ */
94
+ markDirty() {
95
+ this._isDirty = true;
96
+ }
97
+ /**
98
+ * Gets the tangent vector on the spline in world space.
99
+ */
100
+ getTangentAt(t, target) {
101
+ if (!this.curve)
102
+ return target ?? new Vector3();
103
+ const wr = this.gameObject.worldQuaternion;
104
+ return this.curve.getTangentAt(Mathf.clamp01(t), target).applyQuaternion(wr);
105
+ }
106
+ set closed(value) {
107
+ this._closed = value;
108
+ this._isDirty = true;
109
+ }
110
+ get closed() { return this._closed; }
111
+ _closed = false;
112
+ /** Spline data. Call 'markDirty' if modified */
113
+ spline = [];
114
+ /** Enable to render the spline curve for debugging */
115
+ set debug(debug) {
116
+ if (debug && !this._builtCurve)
117
+ this.buildCurve();
118
+ if (!this._debugLine)
119
+ return;
120
+ this._debugLine.visible = debug;
121
+ }
122
+ /** Gets the spline curve generated from the 'spline' data */
123
+ get curve() {
124
+ return this._curve;
125
+ }
126
+ get isDirty() { return this._isDirty; }
127
+ _isDirty = false;
128
+ _curve = null;
129
+ _builtCurve = false;
130
+ _debugLine = null;
131
+ /** @internal */
132
+ awake() {
133
+ if (debug) {
134
+ console.log(`[Spline] ${this.name}`, this);
135
+ this.buildCurve();
136
+ }
137
+ }
138
+ /** @internal */
139
+ update() {
140
+ if (this._isDirty) {
141
+ this.buildCurve(true);
142
+ }
143
+ if (this._debugLine && this._debugLine.parent !== this.gameObject)
144
+ this.gameObject.add(this._debugLine);
145
+ }
146
+ buildCurve(force = false) {
147
+ if (this._builtCurve && !force)
148
+ return;
149
+ this._builtCurve = true;
150
+ if (!this.spline) {
151
+ console.error("[Spline] Can not build curve, no spline data", this.name);
152
+ return;
153
+ }
154
+ this._isDirty = false;
155
+ this._curve = createCatmullRomCurve(this.spline, this.closed);
156
+ this.buildDebugCurve();
157
+ // TODO: Unity supports spline interpolation type per knot which we don't support right now. Additionally EditType is deprecated. For simplicity we're just supporting CatmullRom for now.
158
+ // switch (this.editType) {
159
+ // case SplineType.CatmullRom:
160
+ // this.createCatmullRomCurve();
161
+ // break;
162
+ // case SplineType.Bezier:
163
+ // console.warn("Bezier spline not implemented yet", this.name);
164
+ // this.createCatmullRomCurve();
165
+ // // this.createBezierCurve();
166
+ // break;
167
+ // case SplineType.Linear:
168
+ // this.createLinearCurve();
169
+ // break;
170
+ // }
171
+ }
172
+ buildDebugCurve() {
173
+ if (debug && this.spline && this._curve) {
174
+ this._debugLine?.removeFromParent();
175
+ this._debugLine = null;
176
+ const material = new LineBasicMaterial({
177
+ color: 0x6600ff,
178
+ });
179
+ const res = this.spline.length * 10;
180
+ const splinePoints = this._curve.getPoints(res);
181
+ const geometry = new BufferGeometry().setFromPoints(splinePoints);
182
+ this._debugLine = new Line(geometry, material);
183
+ this.gameObject?.add(this._debugLine);
184
+ }
185
+ }
186
+ }
187
+ __decorate([
188
+ serializeable()
189
+ ], SplineContainer.prototype, "closed", null);
190
+ __decorate([
191
+ serializeable(SplineData)
192
+ ], SplineContainer.prototype, "spline", void 0);
193
+ function createCatmullRomCurve(data, closed) {
194
+ const points = data.map(knot => new Vector3(-knot.position.x, knot.position.y, knot.position.z));
195
+ if (points.length === 1)
196
+ points.push(points[0]);
197
+ const averageTension = data.reduce((acc, knot) => acc + Math.abs(knot.tangentOut.x) + Math.abs(knot.tangentOut.y) + Math.abs(knot.tangentOut.z), 0) / data.length;
198
+ const tension = Mathf.remap(averageTension, 0, 0.3, 0, .5);
199
+ return new CatmullRomCurve3(points, closed, "catmullrom", tension);
200
+ }
201
+ function createLinearCurve(data, closed) {
202
+ if (!data || data.length < 2)
203
+ return null;
204
+ const points = data.map(knot => new Vector3(-knot.position.x, knot.position.y, knot.position.z));
205
+ if (closed)
206
+ points.push(points[0]);
207
+ return new LineCurve3(points.at(0), points.at(1));
208
+ }
209
+ // function createBezierCurve(data: SplineData[], closed: boolean): CubicBezierCurve3 | null {
210
+ // if (!data || data.length < 2) return null;
211
+ // for (let k = 0; k < data.length; k++) {
212
+ // const k0 = data[k];
213
+ // let nextIndex = k + 1;
214
+ // if (nextIndex >= data.length) {
215
+ // if (!closed) break;
216
+ // nextIndex = 0;
217
+ // }
218
+ // const k1 = data[nextIndex];
219
+ // // points
220
+ // const p0 = new Vector3(-k0.position.x, k0.position.y, k0.position.z);
221
+ // const p1 = new Vector3(-k1.position.x, k1.position.y, k1.position.z);
222
+ // // tangents
223
+ // const t0 = new Vector3(-k0.tangentOut.x, k0.tangentOut.y, k0.tangentOut.z);
224
+ // const t1 = new Vector3(-k1.tangentIn.x, k1.tangentIn.y, k1.tangentIn.z);
225
+ // // rotations
226
+ // // const q0 = k0.rotation;// new Quaternion(k0.rotation.value.x, k0.rotation.value.y, k0.rotation.value.z, k0.rotation.value.w);
227
+ // // const q1 = k1.rotation;// new Quaternion(k1.rotation.value.x, k1.rotation.value.y, k1.rotation.value.z, k1.rotation.value.w);
228
+ // // const a = new Vector3(0,1,0);
229
+ // // const angle = Math.PI*.5;
230
+ // // t0.sub(p0).applyQuaternion(q0).add(p0);
231
+ // // t1.sub(p1).applyQuaternion(q1).add(p1);
232
+ // t0.add(p0);
233
+ // // t0.applyQuaternion(q0);
234
+ // t1.add(p1);
235
+ // const curve = new CubicBezierCurve3(p0, t0, t1, p1);
236
+ // return curve;
237
+ // }
238
+ // return null;
239
+ // }
240
+ // class SplineCurve {
241
+ // private spline: Spline;
242
+ // constructor(spline: Spline) {
243
+ // this.spline = spline;
244
+ // }
245
+ // getPoints(num: number): Vector3[] {
246
+ // const points: Vector3[] = [];
247
+ // const samplePerKnot = num / this.spline.length;
248
+ // for (let k = 1; k < this.spline.length; k++) {
249
+ // const cur = this.spline[k];
250
+ // const prev = this.spline[k - 1];
251
+ // for (let i = 0; i < samplePerKnot; i++) {
252
+ // const t = i / (samplePerKnot - 1);
253
+ // console.log(CurveUtils);
254
+ // const x = this.interpolate(-prev.Position.x, -cur.Position.x, -prev.tangentOut.x, -cur.TangentIn.x, t);
255
+ // const y = this.interpolate(prev.Position.y, cur.Position.y, prev.tangentOut.y, cur.TangentIn.y, t);
256
+ // const z = this.interpolate(prev.Position.z, cur.Position.z, prev.tangentOut.z, cur.TangentIn.z, t);
257
+ // points.push(new Vector3(x, y, z));
258
+ // }
259
+ // }
260
+ // return points;
261
+ // }
262
+ // interpolate(p0, p1, p2, p3, t) {
263
+ // var v0 = (p2 - p0) * 0.5;
264
+ // var v1 = (p3 - p1) * 0.5;
265
+ // var t2 = t * t;
266
+ // var t3 = t * t2;
267
+ // return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (- 3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;
268
+ // }
269
+ // }
270
+ //# sourceMappingURL=Spline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spline.js","sourceRoot":"","sources":["../../../src/engine-components/splines/Spline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Vector3 } from "three";
2
+ import { SplineContainer } from "./Spline.js";
3
+ export declare namespace SplineUtils {
4
+ /**
5
+ * Creates a SplineContainer from an array of points.
6
+ * @param positions The positions of the knots.
7
+ * @param closed Whether the spline is closed (the last knot connects to the first).
8
+ * @param tension The tension of the spline. 0 is no tension, 1 is high tension (straight lines between knots). Default is 0.75.
9
+ * @return The created SplineContainer component - add it to an Object3D to use it.
10
+ */
11
+ function createFromPoints(positions: Vector3[], closed?: boolean, tension?: number): SplineContainer;
12
+ }
@@ -0,0 +1,33 @@
1
+ import { Vector3 } from "three";
2
+ import { Mathf } from "../../engine/engine_math.js";
3
+ import { SplineContainer, SplineData } from "./Spline.js";
4
+ export var SplineUtils;
5
+ (function (SplineUtils) {
6
+ /**
7
+ * Creates a SplineContainer from an array of points.
8
+ * @param positions The positions of the knots.
9
+ * @param closed Whether the spline is closed (the last knot connects to the first).
10
+ * @param tension The tension of the spline. 0 is no tension, 1 is high tension (straight lines between knots). Default is 0.75.
11
+ * @return The created SplineContainer component - add it to an Object3D to use it.
12
+ */
13
+ function createFromPoints(positions, closed = false, tension = .75) {
14
+ const spline = new SplineContainer();
15
+ const tangentFactor = 1 - Mathf.clamp(tension, 0, 1);
16
+ positions.forEach((pos, index) => {
17
+ const tangent = new Vector3();
18
+ if (index < positions.length - 1)
19
+ tangent.subVectors(positions[index + 1], pos).normalize().multiplyScalar(tangentFactor);
20
+ else if (closed && positions.length > 1)
21
+ tangent.subVectors(positions[0], pos).normalize().multiplyScalar(tangentFactor);
22
+ const knot = new SplineData();
23
+ knot.position.copy(pos);
24
+ knot.tangentIn.copy(tangent);
25
+ knot.tangentOut.copy(tangent);
26
+ spline.addKnot(knot);
27
+ });
28
+ spline.closed = closed;
29
+ return spline;
30
+ }
31
+ SplineUtils.createFromPoints = createFromPoints;
32
+ })(SplineUtils || (SplineUtils = {}));
33
+ //# sourceMappingURL=SplineUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplineUtils.js","sourceRoot":"","sources":["../../../src/engine-components/splines/SplineUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG1D,MAAM,KAAW,WAAW,CAyB3B;AAzBD,WAAiB,WAAW;IAExB;;;;;;OAMG;IACH,SAAgB,gBAAgB,CAAC,SAAoB,EAAE,SAAkB,KAAK,EAAE,UAAkB,GAAG;QACjG,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;YAC9B,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;iBACrH,IAAI,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACzH,MAAM,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,OAAO,MAAM,CAAC;IAClB,CAAC;IAfe,4BAAgB,mBAe/B,CAAA;AACL,CAAC,EAzBgB,WAAW,KAAX,WAAW,QAyB3B"}
@@ -0,0 +1,47 @@
1
+ import { Object3D } from "three";
2
+ import { Behaviour } from "../Component.js";
3
+ import { SplineContainer } from "./Spline.js";
4
+ /**
5
+ * Moves an object along a spline. Use this with a SplineContainer component.
6
+ */
7
+ export declare class SplineWalker extends Behaviour {
8
+ /**
9
+ * The spline to use/walk along. Add a SplineContainer component to an object and assign it here.
10
+ */
11
+ spline: SplineContainer | null;
12
+ /** The object to move along the spline. If object is undefined then the spline walker will use the gameObject the component has been added to
13
+ * @default undefined
14
+ */
15
+ object?: Object3D | null;
16
+ /** The object to look at while moving along the spline
17
+ * @default null
18
+ */
19
+ lookAt: Object3D | null;
20
+ /**
21
+ * When clamp is set to true, the position01 value will be clamped between 0 and 1 and the object will not loop the spline.
22
+ * @default false
23
+ */
24
+ clamp: boolean;
25
+ /** The current position on the spline. The value ranges from 0 (start of the spline curve) to 1 (end of the spline curve)
26
+ * @default 0
27
+ */
28
+ get position01(): number;
29
+ set position01(v: number);
30
+ /** Resets the position to 0 */
31
+ reset(): void;
32
+ /**
33
+ * If true the SplineWalker will automatically move along the spline
34
+ * @default true
35
+ */
36
+ autoRun: boolean;
37
+ /**
38
+ * The duration in seconds it takes to complete the whole spline when autoWalk is enabled.
39
+ * @default 10
40
+ */
41
+ duration: number;
42
+ private _position01;
43
+ /** @internal */
44
+ start(): void;
45
+ update(): void;
46
+ private updateFromPosition;
47
+ }
@@ -0,0 +1,113 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Object3D } from "three";
8
+ import { Mathf } from "../../engine/engine_math.js";
9
+ import { serializeable } from "../../engine/engine_serialization_decorator.js";
10
+ import { Behaviour } from "../Component.js";
11
+ import { SplineContainer } from "./Spline.js";
12
+ /**
13
+ * Moves an object along a spline. Use this with a SplineContainer component.
14
+ */
15
+ export class SplineWalker extends Behaviour {
16
+ /**
17
+ * The spline to use/walk along. Add a SplineContainer component to an object and assign it here.
18
+ */
19
+ spline = null;
20
+ /** The object to move along the spline. If object is undefined then the spline walker will use the gameObject the component has been added to
21
+ * @default undefined
22
+ */
23
+ object = undefined;
24
+ /** The object to look at while moving along the spline
25
+ * @default null
26
+ */
27
+ lookAt = null;
28
+ /**
29
+ * When clamp is set to true, the position01 value will be clamped between 0 and 1 and the object will not loop the spline.
30
+ * @default false
31
+ */
32
+ clamp = false;
33
+ /** The current position on the spline. The value ranges from 0 (start of the spline curve) to 1 (end of the spline curve)
34
+ * @default 0
35
+ */
36
+ // @type float
37
+ get position01() {
38
+ return this._position01;
39
+ }
40
+ set position01(v) {
41
+ this._position01 = v;
42
+ this.updateFromPosition();
43
+ }
44
+ /** Resets the position to 0 */
45
+ reset() {
46
+ this._position01 = 0;
47
+ }
48
+ /**
49
+ * If true the SplineWalker will automatically move along the spline
50
+ * @default true
51
+ */
52
+ autoRun = true;
53
+ /**
54
+ * The duration in seconds it takes to complete the whole spline when autoWalk is enabled.
55
+ * @default 10
56
+ */
57
+ duration = 10;
58
+ // #region internal
59
+ _position01 = 0;
60
+ /** @internal */
61
+ start() {
62
+ if (this.object === undefined)
63
+ this.object = this.gameObject;
64
+ this.updateFromPosition();
65
+ }
66
+ update() {
67
+ if (this.autoRun) {
68
+ this._position01 += this.context.time.deltaTime / this.duration;
69
+ this.updateFromPosition();
70
+ }
71
+ }
72
+ updateFromPosition() {
73
+ if (!this.spline || !this.spline.curve)
74
+ return;
75
+ if (!this.object)
76
+ return;
77
+ if (this.clamp)
78
+ this._position01 = Mathf.clamp01(this._position01);
79
+ else
80
+ this._position01 = this._position01 % 1;
81
+ const t = this._position01 >= 1 ? 1 : this._position01 % 1;
82
+ const pt = this.spline.getPointAt(t);
83
+ this.object.worldPosition = pt;
84
+ if (!this.lookAt) {
85
+ const tan = this.spline.getTangentAt(t);
86
+ this.object.lookAt(pt.add(tan));
87
+ }
88
+ else
89
+ this.object.lookAt(this.lookAt.worldPosition);
90
+ }
91
+ }
92
+ __decorate([
93
+ serializeable(SplineContainer)
94
+ ], SplineWalker.prototype, "spline", void 0);
95
+ __decorate([
96
+ serializeable(Object3D)
97
+ ], SplineWalker.prototype, "object", void 0);
98
+ __decorate([
99
+ serializeable(Object3D)
100
+ ], SplineWalker.prototype, "lookAt", void 0);
101
+ __decorate([
102
+ serializeable()
103
+ ], SplineWalker.prototype, "clamp", void 0);
104
+ __decorate([
105
+ serializeable()
106
+ ], SplineWalker.prototype, "position01", null);
107
+ __decorate([
108
+ serializeable()
109
+ ], SplineWalker.prototype, "autoRun", void 0);
110
+ __decorate([
111
+ serializeable()
112
+ ], SplineWalker.prototype, "duration", void 0);
113
+ //# sourceMappingURL=SplineWalker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplineWalker.js","sourceRoot":"","sources":["../../../src/engine-components/splines/SplineWalker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { SplineContainer } from "./Spline.js";
2
+ export { SplineUtils } from "./SplineUtils.js";
3
+ export { SplineWalker } from "./SplineWalker.js";
@@ -0,0 +1,4 @@
1
+ export { SplineContainer } from "./Spline.js";
2
+ export { SplineUtils } from "./SplineUtils.js";
3
+ export { SplineWalker } from "./SplineWalker.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine-components/splines/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -51,9 +51,9 @@ export class XRControllerModel extends Behaviour {
51
51
  const isSupportedSession = args.xr.isVR || args.xr.isPassThrough;
52
52
  if (!isSupportedSession)
53
53
  return;
54
+ console.debug("XR Controller Added", args.controller.side, args.controller.index);
55
+ // return;
54
56
  const { controller } = args;
55
- if (debug)
56
- console.warn("Add Controller Model for", controller.side, controller.index);
57
57
  if (this.createControllerModel || this.createHandModel) {
58
58
  if (controller.hand) {
59
59
  if (this.createHandModel) {
@@ -1 +1 @@
1
- {"version":3,"file":"XRControllerModel.js","sourceRoot":"","sources":["../../../../src/engine-components/webxr/controllers/XRControllerModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XRControllerModel.js","sourceRoot":"","sources":["../../../../src/engine-components/webxr/controllers/XRControllerModel.ts"],"names":[],"mappings":"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"}