@needle-tools/engine 4.14.0-next.31f837e → 4.14.0-next.52fdb13
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 +9 -0
- package/components.needle.json +1 -1
- package/dist/{generateMeshBVH.worker-DFcS3P04.js → generateMeshBVH.worker-DiCnZlf3.js} +1 -1
- package/dist/{gltf-progressive-8voIgNp_.js → gltf-progressive-Bm_6aEi4.js} +4 -4
- package/dist/{gltf-progressive-BRRBj-nY.umd.cjs → gltf-progressive-BttGBXw6.umd.cjs} +3 -3
- package/dist/{gltf-progressive-Dkh3tG4-.min.js → gltf-progressive-T5WKTux5.min.js} +1 -1
- package/dist/{loader.worker-C6cXDgR1.js → loader.worker-BqODMeeW.js} +1 -1
- package/dist/{materialx-Dx8st96L.min.js → materialx-CJyQZtjt.min.js} +1 -1
- package/dist/{materialx-D66rYPqe.js → materialx-DMs1E08Z.js} +2 -2
- package/dist/{materialx-CxlgposR.umd.cjs → materialx-DaKKOoVk.umd.cjs} +1 -1
- package/dist/{needle-engine.bundle-D7w0XD7M.min.js → needle-engine.bundle-BwfaInTa.min.js} +156 -148
- package/dist/{needle-engine.bundle-BQXG5qbQ.umd.cjs → needle-engine.bundle-DJE-Bjpa.umd.cjs} +141 -133
- package/dist/{needle-engine.bundle-Byl5i6zJ.js → needle-engine.bundle-TmE5-_na.js} +6741 -6449
- package/dist/needle-engine.d.ts +896 -51
- package/dist/needle-engine.js +571 -570
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/{postprocessing-Ce5-UWiA.min.js → postprocessing-06AXuvdv.min.js} +2 -2
- package/dist/{postprocessing-BkSpxpYB.js → postprocessing-CI2x8Cln.js} +4 -4
- package/dist/{postprocessing-DFVElmAh.umd.cjs → postprocessing-CPDcA21P.umd.cjs} +2 -2
- package/dist/{three-Bad8p1pf.umd.cjs → three-BjYim-vL.umd.cjs} +47 -47
- package/dist/{three-DFV1-P9z.js → three-Bvk2VKbF.js} +2 -2
- package/dist/{three-CWn13_u1.min.js → three-IG2qPafA.min.js} +2 -2
- package/dist/{three-examples-CO-tx3Sp.umd.cjs → three-examples-BMmNgNCN.umd.cjs} +1 -1
- package/dist/{three-examples-43yqn3mL.js → three-examples-CMYCd5nH.js} +1 -1
- package/dist/{three-examples-DKuJVGT4.min.js → three-examples-CQl1fFZp.min.js} +1 -1
- package/dist/{three-mesh-ui-DyEA5HQF.min.js → three-mesh-ui-5HVE2RV-.min.js} +1 -1
- package/dist/{three-mesh-ui-fSAQJxdI.js → three-mesh-ui-BlakAItG.js} +1 -1
- package/dist/{three-mesh-ui-ChzVOraf.umd.cjs → three-mesh-ui-D828VbQp.umd.cjs} +1 -1
- package/dist/{vendor-pe19S9r5.min.js → vendor-BxK0WKmT.min.js} +1 -1
- package/dist/{vendor-B51YffMU.umd.cjs → vendor-CIDkyBaO.umd.cjs} +1 -1
- package/dist/{vendor-CgpZ5ivC.js → vendor-ixwD-vv2.js} +1 -1
- package/lib/engine/api.d.ts +203 -18
- package/lib/engine/api.js +271 -18
- package/lib/engine/api.js.map +1 -1
- package/lib/engine/engine_accessibility.d.ts +58 -0
- package/lib/engine/engine_accessibility.js +143 -0
- package/lib/engine/engine_accessibility.js.map +1 -0
- package/lib/engine/engine_context.d.ts +2 -0
- package/lib/engine/engine_context.js +7 -0
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_materialpropertyblock.d.ts +309 -11
- package/lib/engine/engine_materialpropertyblock.js +396 -36
- package/lib/engine/engine_materialpropertyblock.js.map +1 -1
- package/lib/engine/engine_math.d.ts +34 -1
- package/lib/engine/engine_math.js +34 -1
- package/lib/engine/engine_math.js.map +1 -1
- package/lib/engine/engine_networking.js +1 -1
- package/lib/engine/engine_networking.js.map +1 -1
- package/lib/engine/engine_types.d.ts +2 -0
- package/lib/engine/engine_types.js +2 -0
- package/lib/engine/engine_types.js.map +1 -1
- package/lib/engine/webcomponents/icons.js +3 -0
- package/lib/engine/webcomponents/icons.js.map +1 -1
- package/lib/engine/webcomponents/logo-element.d.ts +1 -0
- package/lib/engine/webcomponents/logo-element.js +3 -1
- package/lib/engine/webcomponents/logo-element.js.map +1 -1
- package/lib/engine/webcomponents/needle-button.d.ts +37 -11
- package/lib/engine/webcomponents/needle-button.js +42 -11
- package/lib/engine/webcomponents/needle-button.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.d.ts +10 -2
- package/lib/engine/webcomponents/needle-engine.js +13 -3
- package/lib/engine/webcomponents/needle-engine.js.map +1 -1
- package/lib/engine-components/Camera.js.map +1 -1
- package/lib/engine-components/Component.d.ts +1 -2
- package/lib/engine-components/Component.js +1 -2
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/DragControls.d.ts +1 -0
- package/lib/engine-components/DragControls.js +21 -0
- package/lib/engine-components/DragControls.js.map +1 -1
- package/lib/engine-components/DropListener.js.map +1 -1
- package/lib/engine-components/Duplicatable.js.map +1 -1
- package/lib/engine-components/GroundProjection.js.map +1 -1
- package/lib/engine-components/NeedleMenu.d.ts +2 -0
- package/lib/engine-components/NeedleMenu.js +2 -0
- package/lib/engine-components/NeedleMenu.js.map +1 -1
- package/lib/engine-components/NestedGltf.js.map +1 -1
- package/lib/engine-components/Networking.d.ts +28 -3
- package/lib/engine-components/Networking.js +28 -3
- package/lib/engine-components/Networking.js.map +1 -1
- package/lib/engine-components/ReflectionProbe.d.ts +33 -3
- package/lib/engine-components/ReflectionProbe.js +76 -27
- package/lib/engine-components/ReflectionProbe.js.map +1 -1
- package/lib/engine-components/Renderer.d.ts +2 -0
- package/lib/engine-components/Renderer.js +30 -6
- package/lib/engine-components/Renderer.js.map +1 -1
- package/lib/engine-components/RendererLightmap.js +2 -3
- package/lib/engine-components/RendererLightmap.js.map +1 -1
- package/lib/engine-components/SeeThrough.d.ts +0 -2
- package/lib/engine-components/SeeThrough.js +114 -88
- package/lib/engine-components/SeeThrough.js.map +1 -1
- package/lib/engine-components/SmoothFollow.js.map +1 -1
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +107 -13
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +167 -30
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -1
- package/lib/engine-components/ui/Button.d.ts +1 -0
- package/lib/engine-components/ui/Button.js +11 -0
- package/lib/engine-components/ui/Button.js.map +1 -1
- package/lib/engine-components/ui/Raycaster.js.map +1 -1
- package/lib/engine-components/ui/Text.d.ts +1 -0
- package/lib/engine-components/ui/Text.js +11 -0
- package/lib/engine-components/ui/Text.js.map +1 -1
- package/lib/engine-components/web/ViewBox.d.ts +2 -2
- package/lib/engine-components/web/ViewBox.js +2 -2
- package/lib/engine-components/web/ViewBox.js.map +1 -1
- package/lib/engine-components/webxr/WebXRPlaneTracking.js.map +1 -1
- package/lib/engine-components/webxr/controllers/XRControllerFollow.js.map +1 -1
- package/lib/engine-components/webxr/controllers/XRControllerMovement.js.map +1 -1
- package/package.json +4 -4
- package/src/engine/api.ts +371 -19
- package/src/engine/engine_accessibility.ts +178 -0
- package/src/engine/engine_context.ts +9 -0
- package/src/engine/engine_materialpropertyblock.ts +499 -42
- package/src/engine/engine_math.ts +34 -1
- package/src/engine/engine_networking.ts +1 -1
- package/src/engine/engine_types.ts +5 -0
- package/src/engine/webcomponents/icons.ts +3 -0
- package/src/engine/webcomponents/logo-element.ts +4 -1
- package/src/engine/webcomponents/needle-button.ts +44 -13
- package/src/engine/webcomponents/needle-engine.ts +18 -7
- package/src/engine-components/Camera.ts +2 -2
- package/src/engine-components/Component.ts +1 -3
- package/src/engine-components/DragControls.ts +29 -4
- package/src/engine-components/DropListener.ts +1 -1
- package/src/engine-components/Duplicatable.ts +1 -1
- package/src/engine-components/GroundProjection.ts +3 -0
- package/src/engine-components/NeedleMenu.ts +8 -3
- package/src/engine-components/NestedGltf.ts +1 -1
- package/src/engine-components/Networking.ts +29 -4
- package/src/engine-components/ReflectionProbe.ts +81 -31
- package/src/engine-components/Renderer.ts +34 -6
- package/src/engine-components/RendererLightmap.ts +2 -3
- package/src/engine-components/SeeThrough.ts +122 -107
- package/src/engine-components/SmoothFollow.ts +2 -2
- package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +198 -65
- package/src/engine-components/ui/Button.ts +13 -1
- package/src/engine-components/ui/Raycaster.ts +1 -1
- package/src/engine-components/ui/Text.ts +13 -0
- package/src/engine-components/web/ViewBox.ts +9 -2
- package/src/engine-components/webxr/WebXRPlaneTracking.ts +3 -3
- package/src/engine-components/webxr/controllers/XRControllerFollow.ts +1 -1
- package/src/engine-components/webxr/controllers/XRControllerMovement.ts +4 -4
|
@@ -6,14 +6,27 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { Object3D, Vector3 } from "three";
|
|
8
8
|
import { Gizmos } from "../engine/engine_gizmos.js";
|
|
9
|
+
import { MaterialPropertyBlock } from "../engine/engine_materialpropertyblock.js";
|
|
9
10
|
import { Mathf } from "../engine/engine_math.js";
|
|
10
11
|
import { serializable } from "../engine/engine_serialization_decorator.js";
|
|
11
12
|
import { getTempVector } from "../engine/engine_three_utils.js";
|
|
12
13
|
import { getParam } from "../engine/engine_utils.js";
|
|
13
14
|
import { Behaviour } from "./Component.js";
|
|
14
|
-
import { USDZExporter } from "./export/usdz/USDZExporter.js";
|
|
15
15
|
import { Renderer } from "./Renderer.js";
|
|
16
16
|
const debugSeeThrough = getParam("debugseethrough");
|
|
17
|
+
// type MaterialState = {
|
|
18
|
+
// opacity: number,
|
|
19
|
+
// transparent: boolean,
|
|
20
|
+
// alphaHash: boolean
|
|
21
|
+
// }
|
|
22
|
+
// type MaterialWithState = Material & {
|
|
23
|
+
// /** Original values */
|
|
24
|
+
// userData: {
|
|
25
|
+
// seeThrough: {
|
|
26
|
+
// initial: MaterialState,
|
|
27
|
+
// }
|
|
28
|
+
// }
|
|
29
|
+
// };
|
|
17
30
|
let i = 0;
|
|
18
31
|
/**
|
|
19
32
|
* Automatically fades objects to transparent when they obscure a reference point from the camera's view.
|
|
@@ -142,26 +155,24 @@ export class SeeThrough extends Behaviour {
|
|
|
142
155
|
onEnable() {
|
|
143
156
|
this._needsUpdate = true;
|
|
144
157
|
this._renderer = null;
|
|
145
|
-
SeeThroughUsdzExporterPlugin.components.push(this);
|
|
158
|
+
// SeeThroughUsdzExporterPlugin.components.push(this);
|
|
146
159
|
}
|
|
147
160
|
/** @internal */
|
|
148
161
|
onDisable() {
|
|
149
|
-
this._renderer?.forEach(r => {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (index !== -1)
|
|
164
|
-
SeeThroughUsdzExporterPlugin.components.splice(index, 1);
|
|
162
|
+
// this._renderer?.forEach(r => {
|
|
163
|
+
// const original = this.rendererMaterialsOriginal.get(r);
|
|
164
|
+
// for (let i = 0; i < r.sharedMaterials.length; i++) {
|
|
165
|
+
// const mat = r.sharedMaterials[i];
|
|
166
|
+
// if (!mat) continue;
|
|
167
|
+
// if (original && original[i]) {
|
|
168
|
+
// r.sharedMaterials[i] = original[i];
|
|
169
|
+
// }
|
|
170
|
+
// }
|
|
171
|
+
// this.rendererMaterials.delete(r);
|
|
172
|
+
// this.rendererMaterialsOriginal.delete(r);
|
|
173
|
+
// });
|
|
174
|
+
// const index = SeeThroughUsdzExporterPlugin.components.indexOf(this);
|
|
175
|
+
// if (index !== -1) SeeThroughUsdzExporterPlugin.components.splice(index, 1);
|
|
165
176
|
}
|
|
166
177
|
/**
|
|
167
178
|
* @internal
|
|
@@ -195,8 +206,8 @@ export class SeeThrough extends Behaviour {
|
|
|
195
206
|
this.updateAlpha(1, this.fadeDuration);
|
|
196
207
|
}
|
|
197
208
|
}
|
|
198
|
-
rendererMaterials = new WeakMap();
|
|
199
|
-
rendererMaterialsOriginal = new WeakMap();
|
|
209
|
+
// private readonly rendererMaterials = new WeakMap<Renderer, Array<MaterialWithState>>();
|
|
210
|
+
// private readonly rendererMaterialsOriginal = new WeakMap<Renderer, Array<Material>>();
|
|
200
211
|
updateDirection() {
|
|
201
212
|
this.referencePoint ??= this.context.scene;
|
|
202
213
|
this._referencePointVector.copy(this.gameObject.worldPosition.sub(this.referencePoint.worldPosition));
|
|
@@ -221,62 +232,69 @@ export class SeeThrough extends Behaviour {
|
|
|
221
232
|
else {
|
|
222
233
|
renderer.gameObject.raycastAllowed = true;
|
|
223
234
|
}
|
|
224
|
-
if (!this.rendererMaterials.has(renderer)) {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
const materials = renderer.hasLightmap ? renderer.sharedMaterials : this.rendererMaterials.get(renderer);
|
|
235
|
+
// if (!this.rendererMaterials.has(renderer)) {
|
|
236
|
+
// const originalMaterials = new Array<Material>();
|
|
237
|
+
// const clonedMaterials = new Array<MaterialWithState>();
|
|
238
|
+
// // We clone the materials once and store them, so we can modify the opacity without affecting other objects using the same material. This could potentially be optimized further to re-use materials between renderers if multiple renderers use the same material.
|
|
239
|
+
// for (let i = 0; i < renderer.sharedMaterials.length; i++) {
|
|
240
|
+
// const mat = renderer.sharedMaterials[i];
|
|
241
|
+
// if (!mat) continue;
|
|
242
|
+
// originalMaterials.push(mat);
|
|
243
|
+
// const matClone = mat.clone() as MaterialWithState;
|
|
244
|
+
// // @ts-ignore
|
|
245
|
+
// matClone.userData = mat.userData || {};
|
|
246
|
+
// matClone.userData.seeThrough = {
|
|
247
|
+
// initial: {
|
|
248
|
+
// opacity: matClone.opacity,
|
|
249
|
+
// transparent: matClone.transparent,
|
|
250
|
+
// alphaHash: matClone.alphaHash
|
|
251
|
+
// }
|
|
252
|
+
// }
|
|
253
|
+
// clonedMaterials.push(matClone);
|
|
254
|
+
// // renderer.sharedMaterials[i] = matClone;
|
|
255
|
+
// }
|
|
256
|
+
// this.rendererMaterials.set(renderer, clonedMaterials);
|
|
257
|
+
// this.rendererMaterialsOriginal.set(renderer, originalMaterials);
|
|
258
|
+
// }
|
|
259
|
+
const materials = renderer.sharedMaterials; // : this.rendererMaterials.get(renderer);
|
|
250
260
|
if (!materials)
|
|
251
261
|
return;
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
262
|
+
const block = MaterialPropertyBlock.get(renderer.gameObject);
|
|
263
|
+
const currentOpacity = (block.getOverride("opacity")?.value ?? materials[0].opacity ?? 1);
|
|
264
|
+
let newAlpha = Mathf.lerp(currentOpacity, targetAlpha, duration <= 0 ? 1 : this.context.time.deltaTime / duration);
|
|
265
|
+
;
|
|
266
|
+
if (newAlpha >= 0.99)
|
|
267
|
+
newAlpha = 1;
|
|
268
|
+
else if (newAlpha <= 0.01)
|
|
269
|
+
newAlpha = 0;
|
|
270
|
+
// const currentTransparent = (block.getOverride("transparent")?.value ?? materials[0].transparent ?? false) as boolean;
|
|
271
|
+
block.setOverride("alphaHash", this.useAlphaHash);
|
|
272
|
+
block.setOverride("opacity", newAlpha);
|
|
273
|
+
block.setOverride("transparent", newAlpha >= 0.99999 ? false : !this.useAlphaHash);
|
|
274
|
+
// for (const mat of materials) {
|
|
275
|
+
// if (!mat) continue;
|
|
276
|
+
// let newAlpha = Mathf.lerp(mat.opacity, targetAlpha, duration <= 0 ? 1 : this.context.time.deltaTime / duration);;
|
|
277
|
+
// if (newAlpha >= 0.99) newAlpha = 1;
|
|
278
|
+
// else if (newAlpha <= 0.01) newAlpha = 0;
|
|
279
|
+
// const wasTransparent = mat.transparent;
|
|
280
|
+
// const wasAlphaHash = mat.alphaHash;
|
|
281
|
+
// const previousOpacity = mat.opacity;
|
|
282
|
+
// mat.alphaHash = this.useAlphaHash;
|
|
283
|
+
// if (mat.userData && "seeThrough" in mat.userData) {
|
|
284
|
+
// const initial = mat.userData.seeThrough.initial as MaterialState;
|
|
285
|
+
// mat.opacity = initial.opacity * newAlpha;
|
|
286
|
+
// mat.transparent = mat.opacity >= 1 ? initial.transparent : !this.useAlphaHash;
|
|
287
|
+
// }
|
|
288
|
+
// else {
|
|
289
|
+
// mat.transparent = mat.opacity >= 1 ? false : !this.useAlphaHash;
|
|
290
|
+
// }
|
|
291
|
+
// if (wasTransparent !== mat.transparent
|
|
292
|
+
// || wasAlphaHash !== mat.alphaHash
|
|
293
|
+
// || mat.opacity !== previousOpacity // MeshPhysicsMaterial needs that and maybe other materials too...
|
|
294
|
+
// ) {
|
|
295
|
+
// mat.needsUpdate = true;
|
|
296
|
+
// }
|
|
297
|
+
// }
|
|
280
298
|
});
|
|
281
299
|
}
|
|
282
300
|
}
|
|
@@ -299,18 +317,26 @@ __decorate([
|
|
|
299
317
|
serializable()
|
|
300
318
|
], SeeThrough.prototype, "autoUpdate", void 0);
|
|
301
319
|
;
|
|
302
|
-
class SeeThroughUsdzExporterPlugin {
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
const
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
}
|
|
320
|
+
// class SeeThroughUsdzExporterPlugin implements IUSDExporterExtension {
|
|
321
|
+
// static readonly components: SeeThrough[] = [];
|
|
322
|
+
// get extensionName() {
|
|
323
|
+
// return "SeeThrough";
|
|
324
|
+
// }
|
|
325
|
+
// // onExportObject(object: Object3D<Object3DEventMap>, model: USDObject, context: USDZExporterContext) {
|
|
326
|
+
// // const component = SeeThroughUsdzExporterPlugin.components.find(c => c.gameObject === object);
|
|
327
|
+
// // if(!component) return;
|
|
328
|
+
// // console.log("OH MY GOD SEE THROUGH USDZ EXPORTER", component, model);
|
|
329
|
+
// // model.materialName = "AlphaHashMaterialInstance"; // we could make this unique per object if needed
|
|
330
|
+
// // model.addEventListener("serialize", (writer, context) => {
|
|
331
|
+
// // writer.appendLine(`# SeeThrough component on ${object.name}`);
|
|
332
|
+
// // });
|
|
333
|
+
// // }
|
|
334
|
+
// }
|
|
335
|
+
// const seeThroughUsdzExporterPlugin = new SeeThroughUsdzExporterPlugin();
|
|
336
|
+
// USDZExporter.beforeExport.addEventListener(args => {
|
|
337
|
+
// if (SeeThroughUsdzExporterPlugin.components.length === 0) return;
|
|
338
|
+
// if (args.exporter.extensions.includes(seeThroughUsdzExporterPlugin) === false) {
|
|
339
|
+
// args.exporter.extensions.push(seeThroughUsdzExporterPlugin);
|
|
340
|
+
// }
|
|
341
|
+
// });
|
|
316
342
|
//# sourceMappingURL=SeeThrough.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SeeThrough.js","sourceRoot":"","sources":["../../src/engine-components/SeeThrough.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAY,QAAQ,EAAoB,OAAO,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"SeeThrough.js","sourceRoot":"","sources":["../../src/engine-components/SeeThrough.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmoothFollow.js","sourceRoot":"","sources":["../../src/engine-components/SmoothFollow.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAEvF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,OAAO,YAAa,SAAQ,SAAS;IAEvC;;OAEG;IAEH,MAAM,GAAoB,IAAI,CAAC;IAE/B;;;;;;OAMG;IAEH,YAAY,
|
|
1
|
+
{"version":3,"file":"SmoothFollow.js","sourceRoot":"","sources":["../../src/engine-components/SmoothFollow.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,21 +9,32 @@ import { AnimationExtension, RegisteredAnimationInfo, type UsdzAnimation } from
|
|
|
9
9
|
import type { BehaviorExtension, UsdzBehaviour } from "./Behaviour.js";
|
|
10
10
|
import { EmphasizeActionMotionType, GroupActionModel, Target } from "./BehavioursBuilder.js";
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* Moves an object to the target object's transform when clicked.
|
|
13
|
+
* Works in the browser and in USDZ/QuickLook (Everywhere Actions).
|
|
14
|
+
*
|
|
15
|
+
* @see {@link SetActiveOnClick}to toggle visibility of objects when clicked
|
|
16
|
+
* @see {@link PlayAnimationOnClick} to play animations when clicked
|
|
17
|
+
* @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
|
|
13
18
|
* @summary Moves an object to a target transform upon click
|
|
14
19
|
* @category Everywhere Actions
|
|
15
20
|
* @group Components
|
|
16
21
|
*/
|
|
17
22
|
export declare class ChangeTransformOnClick extends Behaviour implements IPointerClickHandler, UsdzBehaviour {
|
|
23
|
+
/** The object to move. */
|
|
18
24
|
object?: Object3D;
|
|
25
|
+
/** The target object whose transform to move to. */
|
|
19
26
|
target?: Object3D;
|
|
27
|
+
/** The duration of the movement animation in seconds. */
|
|
20
28
|
duration: number;
|
|
29
|
+
/** If true, the motion is relative to the object's current transform instead of moving to the target's absolute position. */
|
|
21
30
|
relativeMotion: boolean;
|
|
22
31
|
private coroutine;
|
|
23
32
|
private targetPos;
|
|
24
33
|
private targetRot;
|
|
25
34
|
private targetScale;
|
|
26
|
-
|
|
35
|
+
onEnable(): void;
|
|
36
|
+
onDisable(): void;
|
|
37
|
+
onDestroy(): void;
|
|
27
38
|
onPointerEnter(): void;
|
|
28
39
|
onPointerExit(): void;
|
|
29
40
|
onPointerClick(args: PointerEventData): void;
|
|
@@ -32,7 +43,15 @@ export declare class ChangeTransformOnClick extends Behaviour implements IPointe
|
|
|
32
43
|
beforeCreateDocument(ext: any): void;
|
|
33
44
|
}
|
|
34
45
|
/**
|
|
35
|
-
*
|
|
46
|
+
* Switches the material of objects in the scene when clicked.
|
|
47
|
+
* Works in the browser and in USDZ/QuickLook (Everywhere Actions).
|
|
48
|
+
*
|
|
49
|
+
* Finds all objects in the scene that use `materialToSwitch` and replaces it with `variantMaterial`.
|
|
50
|
+
* Multiple `ChangeMaterialOnClick` components using the same `materialToSwitch` can be combined to create a material selection UI.
|
|
51
|
+
*
|
|
52
|
+
* @see {@link SetActiveOnClick} to toggle visibility of objects when clicked
|
|
53
|
+
* @see {@link PlayAnimationOnClick} to play animations when clicked
|
|
54
|
+
* @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
|
|
36
55
|
* @summary Changes the material of objects when clicked
|
|
37
56
|
* @category Everywhere Actions
|
|
38
57
|
* @group Components
|
|
@@ -52,6 +71,9 @@ export declare class ChangeMaterialOnClick extends Behaviour implements IPointer
|
|
|
52
71
|
*/
|
|
53
72
|
fadeDuration: number;
|
|
54
73
|
start(): void;
|
|
74
|
+
onEnable(): void;
|
|
75
|
+
onDisable(): void;
|
|
76
|
+
onDestroy(): void;
|
|
55
77
|
onPointerEnter(_args: PointerEventData): void;
|
|
56
78
|
onPointerExit(_: PointerEventData): void;
|
|
57
79
|
onPointerClick(args: PointerEventData): void;
|
|
@@ -72,17 +94,28 @@ export declare class ChangeMaterialOnClick extends Behaviour implements IPointer
|
|
|
72
94
|
private createVariants;
|
|
73
95
|
}
|
|
74
96
|
/**
|
|
75
|
-
*
|
|
97
|
+
* Shows or hides a target object when this object is clicked.
|
|
98
|
+
* Works in the browser and in USDZ/QuickLook (Everywhere Actions).
|
|
99
|
+
*
|
|
100
|
+
* Optionally hides itself after being clicked (`hideSelf`), or toggles the target's visibility on each click (`toggleOnClick`).
|
|
101
|
+
*
|
|
102
|
+
* @see {@link HideOnStart}to hide an object when the scene starts
|
|
103
|
+
* @see {@link PlayAnimationOnClick} to play animations when clicked
|
|
104
|
+
* @see {@link ChangeMaterialOnClick} to change material when clicked
|
|
105
|
+
* @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
|
|
76
106
|
* @summary Sets the active state of an object when clicked
|
|
77
107
|
* @category Everywhere Actions
|
|
78
108
|
* @group Components
|
|
79
109
|
*/
|
|
80
110
|
export declare class SetActiveOnClick extends Behaviour implements IPointerClickHandler, UsdzBehaviour {
|
|
111
|
+
/** The target object to show or hide. */
|
|
81
112
|
target?: Object3D;
|
|
113
|
+
/** If true, the target's visibility will be toggled on each click. When enabled, `hideSelf` and `targetState` are ignored. */
|
|
82
114
|
toggleOnClick: boolean;
|
|
115
|
+
/** The visibility state to apply to the target when clicked. Only used when `toggleOnClick` is false. */
|
|
83
116
|
targetState: boolean;
|
|
117
|
+
/** If true, this object will hide itself after being clicked. Only used when `toggleOnClick` is false. */
|
|
84
118
|
hideSelf: boolean;
|
|
85
|
-
start(): void;
|
|
86
119
|
onPointerEnter(): void;
|
|
87
120
|
onPointerExit(): void;
|
|
88
121
|
onPointerClick(args: PointerEventData): void;
|
|
@@ -102,7 +135,13 @@ export declare class SetActiveOnClick extends Behaviour implements IPointerClick
|
|
|
102
135
|
afterSerialize(_ext: BehaviorExtension, _context: USDZExporterContext): void;
|
|
103
136
|
}
|
|
104
137
|
/**
|
|
105
|
-
* Hides the object
|
|
138
|
+
* Hides the object when the scene starts.
|
|
139
|
+
* Works in the browser and in USDZ/QuickLook (Everywhere Actions).
|
|
140
|
+
*
|
|
141
|
+
* Useful for setting up objects that should initially be hidden and shown later via a {@link SetActiveOnClick} component.
|
|
142
|
+
*
|
|
143
|
+
* @see {@link SetActiveOnClick} to show or hide objects on click
|
|
144
|
+
* @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
|
|
106
145
|
* @summary Hides the object on scene start
|
|
107
146
|
* @category Everywhere Actions
|
|
108
147
|
* @group Components
|
|
@@ -117,50 +156,93 @@ export declare class HideOnStart extends Behaviour implements UsdzBehaviour {
|
|
|
117
156
|
beforeCreateDocument(): void;
|
|
118
157
|
}
|
|
119
158
|
/**
|
|
120
|
-
*
|
|
159
|
+
* Applies an emphasis animation to a target object when this object is clicked.
|
|
160
|
+
* Works in USDZ/QuickLook (Everywhere Actions).
|
|
161
|
+
*
|
|
162
|
+
* The emphasis effect can be a bounce, jiggle, or other motion type defined by `motionType`.
|
|
163
|
+
*
|
|
164
|
+
* @see {@link PlayAnimationOnClick} to play animations when clicked
|
|
165
|
+
* @see {@link SetActiveOnClick} to toggle visibility when clicked
|
|
166
|
+
* @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
|
|
121
167
|
* @summary Emphasizes the target object when clicked
|
|
122
168
|
* @category Everywhere Actions
|
|
123
169
|
* @group Components
|
|
124
170
|
*/
|
|
125
171
|
export declare class EmphasizeOnClick extends Behaviour implements UsdzBehaviour {
|
|
172
|
+
/** The target object to emphasize. */
|
|
126
173
|
target?: Object3D;
|
|
174
|
+
/** The duration of the emphasis animation in seconds. */
|
|
127
175
|
duration: number;
|
|
176
|
+
/** The type of motion to use for the emphasis effect (e.g. `"bounce"`, `"jiggle"`). */
|
|
128
177
|
motionType: EmphasizeActionMotionType;
|
|
178
|
+
onEnable(): void;
|
|
179
|
+
onDisable(): void;
|
|
180
|
+
onDestroy(): void;
|
|
129
181
|
beforeCreateDocument(): void;
|
|
130
182
|
createBehaviours(ext: any, model: any, _context: any): void;
|
|
131
183
|
afterCreateDocument(_ext: any, _context: any): void;
|
|
132
184
|
}
|
|
133
185
|
/**
|
|
134
|
-
* Plays an audio clip when clicked.
|
|
186
|
+
* Plays an audio clip when this object is clicked.
|
|
187
|
+
* Works in the browser and in USDZ/QuickLook (Everywhere Actions).
|
|
188
|
+
*
|
|
189
|
+
* Assign a `target` {@link AudioSource} to use its spatial audio settings, or assign a `clip` URL directly.
|
|
190
|
+
* If no `target` is assigned, an {@link AudioSource} will be created automatically on this object.
|
|
191
|
+
*
|
|
192
|
+
* @see {@link AudioSource}for spatial audio settings
|
|
193
|
+
* @see {@link PlayAnimationOnClick} to play animations when clicked
|
|
194
|
+
* @see {@link SetActiveOnClick} to toggle visibility when clicked
|
|
195
|
+
* @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
|
|
135
196
|
* @summary Plays an audio clip when clicked
|
|
136
197
|
* @category Everywhere Actions
|
|
137
198
|
* @group Components
|
|
138
199
|
*/
|
|
139
200
|
export declare class PlayAudioOnClick extends Behaviour implements IPointerClickHandler, UsdzBehaviour {
|
|
201
|
+
/** The {@link AudioSource} to use for playback. If not set, one will be created automatically on this object. */
|
|
140
202
|
target?: AudioSource;
|
|
203
|
+
/** URL of the audio clip to play. If not set, the clip assigned to `target` is used. */
|
|
141
204
|
clip: string;
|
|
205
|
+
/** If true, clicking again while the audio is playing will stop it. */
|
|
142
206
|
toggleOnClick: boolean;
|
|
143
207
|
trigger: "tap" | "start";
|
|
144
|
-
start(): void;
|
|
145
208
|
ensureAudioSource(): void;
|
|
209
|
+
onEnable(): void;
|
|
210
|
+
onDisable(): void;
|
|
211
|
+
onDestroy(): void;
|
|
146
212
|
onPointerEnter(): void;
|
|
147
213
|
onPointerExit(): void;
|
|
148
214
|
onPointerClick(args: PointerEventData): void;
|
|
149
215
|
createBehaviours(ext: BehaviorExtension, model: USDObject, _context: USDZExporterContext): void;
|
|
150
216
|
}
|
|
151
217
|
/**
|
|
152
|
-
* Plays an animation when clicked.
|
|
218
|
+
* Plays an animation state when this object is clicked.
|
|
219
|
+
* Works in the browser and in USDZ/QuickLook (Everywhere Actions).
|
|
220
|
+
*
|
|
221
|
+
* Assign an {@link Animator} and a `stateName` to play a specific animation state,
|
|
222
|
+
* or assign an {@link Animation} component to play a legacy animation clip.
|
|
223
|
+
*
|
|
224
|
+
* For USDZ export, the component follows animator state transitions automatically, including looping states.
|
|
225
|
+
*
|
|
226
|
+
* @see {@link Animator}for playing animator state machine animations
|
|
227
|
+
* @see {@link Animation} for playing legacy animation clips
|
|
228
|
+
* @see {@link PlayAudioOnClick} to play audio when clicked
|
|
229
|
+
* @see {@link SetActiveOnClick} to toggle visibility when clicked
|
|
230
|
+
* @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
|
|
153
231
|
* @summary Plays an animation when clicked
|
|
154
232
|
* @category Everywhere Actions
|
|
155
233
|
* @group Components
|
|
156
234
|
*/
|
|
157
235
|
export declare class PlayAnimationOnClick extends Behaviour implements IPointerClickHandler, UsdzBehaviour, UsdzAnimation {
|
|
236
|
+
/** The {@link Animator} component whose state to play when clicked. */
|
|
158
237
|
animator?: Animator;
|
|
238
|
+
/** The name of the animation state to play. Required when using an {@link Animator}. */
|
|
159
239
|
stateName?: string;
|
|
160
240
|
trigger: "tap" | "start";
|
|
161
241
|
animation?: Animation;
|
|
162
242
|
private get target();
|
|
163
|
-
|
|
243
|
+
onEnable(): void;
|
|
244
|
+
onDisable(): void;
|
|
245
|
+
onDestroy(): void;
|
|
164
246
|
onPointerEnter(): void;
|
|
165
247
|
onPointerExit(): void;
|
|
166
248
|
onPointerClick(args: PointerEventData): void;
|
|
@@ -191,19 +273,31 @@ export declare class PreliminaryTrigger extends Behaviour {
|
|
|
191
273
|
target?: PreliminaryAction;
|
|
192
274
|
}
|
|
193
275
|
/**
|
|
194
|
-
*
|
|
276
|
+
* Action to show or hide an object.
|
|
277
|
+
* Use together with a {@link TapGestureTrigger} to show or hide objects when tapped or clicked.
|
|
278
|
+
*
|
|
279
|
+
* @see {@link TapGestureTrigger} to trigger actions on tap/click
|
|
280
|
+
* @see {@link SetActiveOnClick} for a combined trigger and action component
|
|
281
|
+
* @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
|
|
195
282
|
* @summary Hides or shows the object when clicked
|
|
196
283
|
* @category Everywhere Actions
|
|
197
284
|
* @group Components
|
|
198
285
|
*/
|
|
199
286
|
export declare class VisibilityAction extends PreliminaryAction {
|
|
287
|
+
/** The type of visibility action to apply. */
|
|
200
288
|
type: VisibilityActionType;
|
|
289
|
+
/** The duration of the fade animation in seconds. */
|
|
201
290
|
duration: number;
|
|
202
291
|
getType(): "show" | "hide";
|
|
203
292
|
getDuration(): number;
|
|
204
293
|
}
|
|
205
294
|
/**
|
|
206
|
-
* Triggers
|
|
295
|
+
* Triggers a {@link PreliminaryAction} (such as {@link VisibilityAction}) when the object is tapped or clicked.
|
|
296
|
+
* Works in the browser and in USDZ/QuickLook (Everywhere Actions).
|
|
297
|
+
*
|
|
298
|
+
* @see {@link VisibilityAction} for controlling object visibility on tap
|
|
299
|
+
* @see {@link SetActiveOnClick} for a combined trigger and action component
|
|
300
|
+
* @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
|
|
207
301
|
* @summary Triggers an action when the object is tapped/clicked
|
|
208
302
|
* @category Everywhere Actions
|
|
209
303
|
* @group Components
|