@needle-tools/engine 3.0.1-alpha.4 → 3.1.0-alpha

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 (146) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/needle-engine.js +13110 -12429
  3. package/dist/needle-engine.min.js +378 -365
  4. package/dist/needle-engine.umd.cjs +366 -353
  5. package/lib/engine/api.d.ts +2 -1
  6. package/lib/engine/api.js +2 -1
  7. package/lib/engine/api.js.map +1 -1
  8. package/lib/engine/codegen/register_types.js +8 -0
  9. package/lib/engine/codegen/register_types.js.map +1 -1
  10. package/lib/engine/debug/debug_overlay.js +3 -0
  11. package/lib/engine/debug/debug_overlay.js.map +1 -1
  12. package/lib/engine/engine_addressables.d.ts +21 -1
  13. package/lib/engine/engine_addressables.js +83 -7
  14. package/lib/engine/engine_addressables.js.map +1 -1
  15. package/lib/engine/engine_context.d.ts +2 -0
  16. package/lib/engine/engine_context.js +3 -0
  17. package/lib/engine/engine_context.js.map +1 -1
  18. package/lib/engine/engine_element.d.ts +1 -1
  19. package/lib/engine/engine_element.js +2 -2
  20. package/lib/engine/engine_element.js.map +1 -1
  21. package/lib/engine/engine_element_loading.d.ts +7 -2
  22. package/lib/engine/engine_element_loading.js +67 -22
  23. package/lib/engine/engine_element_loading.js.map +1 -1
  24. package/lib/engine/engine_license.d.ts +1 -1
  25. package/lib/engine/engine_license.js +6 -19
  26. package/lib/engine/engine_license.js.map +1 -1
  27. package/lib/engine/engine_networking.d.ts +1 -0
  28. package/lib/engine/engine_networking.js +3 -0
  29. package/lib/engine/engine_networking.js.map +1 -1
  30. package/lib/engine/engine_serialization.d.ts +2 -2
  31. package/lib/engine/engine_serialization.js +2 -3
  32. package/lib/engine/engine_serialization.js.map +1 -1
  33. package/lib/engine/engine_serialization_builtin_serializer.d.ts +5 -0
  34. package/lib/engine/engine_serialization_builtin_serializer.js +16 -0
  35. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  36. package/lib/engine/engine_serialization_core.d.ts +1 -0
  37. package/lib/engine/engine_serialization_core.js +26 -20
  38. package/lib/engine/engine_serialization_core.js.map +1 -1
  39. package/lib/engine/engine_utils.d.ts +9 -0
  40. package/lib/engine/engine_utils.js +33 -13
  41. package/lib/engine/engine_utils.js.map +1 -1
  42. package/lib/engine/extensions/NEEDLE_animator_controller_model.d.ts +1 -0
  43. package/lib/engine/extensions/NEEDLE_animator_controller_model.js.map +1 -1
  44. package/lib/engine/extensions/NEEDLE_progressive.js +2 -2
  45. package/lib/engine/extensions/NEEDLE_progressive.js.map +1 -1
  46. package/lib/engine-components/AnimatorController.js +22 -3
  47. package/lib/engine-components/AnimatorController.js.map +1 -1
  48. package/lib/engine-components/AudioSource.d.ts +2 -3
  49. package/lib/engine-components/AudioSource.js +28 -32
  50. package/lib/engine-components/AudioSource.js.map +1 -1
  51. package/lib/engine-components/CameraUtils.js.map +1 -1
  52. package/lib/engine-components/Component.js.map +1 -1
  53. package/lib/engine-components/ParticleSystem.d.ts +5 -2
  54. package/lib/engine-components/ParticleSystem.js +49 -10
  55. package/lib/engine-components/ParticleSystem.js.map +1 -1
  56. package/lib/engine-components/ParticleSystemModules.d.ts +2 -0
  57. package/lib/engine-components/ParticleSystemModules.js +23 -12
  58. package/lib/engine-components/ParticleSystemModules.js.map +1 -1
  59. package/lib/engine-components/ScreenCapture.d.ts +1 -0
  60. package/lib/engine-components/ScreenCapture.js +145 -46
  61. package/lib/engine-components/ScreenCapture.js.map +1 -1
  62. package/lib/engine-components/Skybox.js +2 -2
  63. package/lib/engine-components/Skybox.js.map +1 -1
  64. package/lib/engine-components/SyncedRoom.js +1 -2
  65. package/lib/engine-components/SyncedRoom.js.map +1 -1
  66. package/lib/engine-components/VideoPlayer.d.ts +4 -2
  67. package/lib/engine-components/VideoPlayer.js +35 -12
  68. package/lib/engine-components/VideoPlayer.js.map +1 -1
  69. package/lib/engine-components/WebXR.d.ts +4 -1
  70. package/lib/engine-components/WebXR.js +10 -2
  71. package/lib/engine-components/WebXR.js.map +1 -1
  72. package/lib/engine-components/WebXRController.js +2 -2
  73. package/lib/engine-components/WebXRController.js.map +1 -1
  74. package/lib/engine-components/WebXRImageTracking.d.ts +39 -0
  75. package/lib/engine-components/WebXRImageTracking.js +173 -0
  76. package/lib/engine-components/WebXRImageTracking.js.map +1 -0
  77. package/lib/engine-components/codegen/components.d.ts +4 -0
  78. package/lib/engine-components/codegen/components.js +4 -0
  79. package/lib/engine-components/codegen/components.js.map +1 -1
  80. package/lib/engine-components/postprocessing/Effects/DepthOfField.d.ts +2 -0
  81. package/lib/engine-components/postprocessing/Effects/DepthOfField.js +19 -1
  82. package/lib/engine-components/postprocessing/Effects/DepthOfField.js.map +1 -1
  83. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.d.ts +13 -0
  84. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.js +63 -0
  85. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.js.map +1 -0
  86. package/lib/engine-components/postprocessing/VolumeParameter.d.ts +1 -0
  87. package/lib/engine-components/postprocessing/VolumeParameter.js +4 -0
  88. package/lib/engine-components/postprocessing/VolumeParameter.js.map +1 -1
  89. package/lib/engine-components/timeline/PlayableDirector.d.ts +3 -1
  90. package/lib/engine-components/timeline/PlayableDirector.js +40 -2
  91. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  92. package/lib/engine-components/timeline/TimelineTracks.d.ts +2 -2
  93. package/lib/engine-components/timeline/TimelineTracks.js +14 -16
  94. package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
  95. package/lib/engine-components/ui/Text.js +7 -8
  96. package/lib/engine-components/ui/Text.js.map +1 -1
  97. package/lib/include/three/ARButton.d.ts +1 -1
  98. package/lib/include/three/ARButton.js +2 -1
  99. package/lib/include/three/ARButton.js.map +1 -1
  100. package/lib/tsconfig.tsbuildinfo +1 -1
  101. package/package.json +3 -4
  102. package/plugins/vite/config.js +8 -0
  103. package/plugins/vite/copyfiles.js +12 -3
  104. package/plugins/vite/drop.js +1 -0
  105. package/plugins/vite/index.js +4 -0
  106. package/plugins/vite/license.js +24 -0
  107. package/plugins/vite/transform-codegen.js +45 -0
  108. package/src/engine/api.ts +2 -2
  109. package/src/engine/codegen/register_types.js +10 -2
  110. package/src/engine/debug/debug_overlay.ts +2 -0
  111. package/src/engine/engine_addressables.ts +102 -8
  112. package/src/engine/engine_context.ts +4 -1
  113. package/src/engine/engine_element.ts +2 -2
  114. package/src/engine/engine_element_loading.ts +68 -22
  115. package/src/engine/engine_license.ts +6 -17
  116. package/src/engine/engine_networking.ts +4 -0
  117. package/src/engine/engine_serialization.ts +5 -4
  118. package/src/engine/engine_serialization_builtin_serializer.ts +23 -3
  119. package/src/engine/engine_serialization_core.ts +27 -20
  120. package/src/engine/engine_utils.ts +35 -14
  121. package/src/engine/extensions/NEEDLE_animator_controller_model.ts +1 -0
  122. package/src/engine/extensions/NEEDLE_progressive.ts +2 -2
  123. package/src/engine-components/AnimatorController.ts +18 -3
  124. package/src/engine-components/AudioSource.ts +29 -38
  125. package/src/engine-components/CameraUtils.ts +2 -2
  126. package/src/engine-components/Component.ts +1 -1
  127. package/src/engine-components/ParticleSystem.ts +52 -10
  128. package/src/engine-components/ParticleSystemModules.ts +24 -12
  129. package/src/engine-components/ScreenCapture.ts +149 -49
  130. package/src/engine-components/Skybox.ts +2 -2
  131. package/src/engine-components/SyncedRoom.ts +1 -2
  132. package/src/engine-components/VideoPlayer.ts +33 -11
  133. package/src/engine-components/WebXR.ts +11 -2
  134. package/src/engine-components/WebXRController.ts +2 -2
  135. package/src/engine-components/WebXRImageTracking.ts +192 -0
  136. package/src/engine-components/codegen/components.ts +4 -0
  137. package/src/engine-components/postprocessing/Effects/DepthOfField.ts +21 -6
  138. package/src/engine-components/postprocessing/Effects/TiltShiftEffect.ts +56 -0
  139. package/src/engine-components/postprocessing/VolumeParameter.ts +5 -0
  140. package/src/engine-components/timeline/PlayableDirector.ts +38 -2
  141. package/src/engine-components/timeline/TimelineTracks.ts +15 -18
  142. package/src/engine-components/ui/Text.ts +7 -8
  143. package/src/include/three/ARButton.js +2 -2
  144. package/lib/engine/codegen/license.json +0 -1
  145. package/license-2447137e.js +0 -4
  146. package/src/engine/codegen/license.json +0 -1
@@ -0,0 +1,173 @@
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 { WebXR } from "./WebXR";
8
+ import { serializable } from "../engine/engine_serialization";
9
+ import { Behaviour } from "./Component";
10
+ import { Quaternion, Vector3 } from "three";
11
+ import { CircularBuffer, getParam } from "../engine/engine_utils";
12
+ // https://github.com/immersive-web/marker-tracking/blob/main/explainer.md
13
+ const debug = getParam("debugimagetracking");
14
+ const _scaleTemp = new Vector3();
15
+ export class WebXRTrackedImage {
16
+ get url() { return this._trackedImage.image ?? ""; }
17
+ get widthInMeters() { return this._trackedImage.widthInMeters ?? undefined; }
18
+ get bitmap() { return this._bitmap; }
19
+ measuredSize;
20
+ state;
21
+ // private _matrix: Matrix4 | null = null;
22
+ // private get matrix(): Matrix4 {
23
+ // if (!this._matrix) {
24
+ // // this._matrix = WebXRTrackedImage._matrixBuffer.get();
25
+ // // const matrix = this._pose.transform.matrix;
26
+ // // this._matrix.fromArray(matrix);
27
+ // }
28
+ // return this._matrix!;
29
+ // }
30
+ /** Copy the image position to a vector */
31
+ getPosition(vec) {
32
+ this.ensureTransformData();
33
+ vec.copy(this._position);
34
+ return vec;
35
+ }
36
+ /** Copy the image rotation to a quaternion */
37
+ getQuaternion(quat) {
38
+ this.ensureTransformData();
39
+ quat.copy(this._rotation);
40
+ return quat;
41
+ }
42
+ applyToObject(object) {
43
+ this.ensureTransformData();
44
+ object.position.copy(this._position);
45
+ object.quaternion.copy(this._rotation);
46
+ }
47
+ // private static _matrixBuffer: CircularBuffer<Matrix4> = new CircularBuffer(() => new Matrix4(), 20);
48
+ static _positionBuffer = new CircularBuffer(() => new Vector3(), 20);
49
+ static _rotationBuffer = new CircularBuffer(() => new Quaternion(), 20);
50
+ _position;
51
+ _rotation;
52
+ ensureTransformData() {
53
+ if (!this._position) {
54
+ this._position = WebXRTrackedImage._positionBuffer.get();
55
+ this._rotation = WebXRTrackedImage._rotationBuffer.get();
56
+ const t = this._pose.transform;
57
+ this._position.set(-t.position.x, t.position.y, -t.position.z);
58
+ this._rotation.set(-t.orientation.x, t.orientation.y, -t.orientation.z, t.orientation.w);
59
+ }
60
+ }
61
+ _trackingComponent;
62
+ ;
63
+ _trackedImage;
64
+ _bitmap;
65
+ _pose;
66
+ constructor(context, trackedImage, bitmap, measuredSize, state, pose) {
67
+ this._trackingComponent = context;
68
+ ;
69
+ this._trackedImage = trackedImage;
70
+ this._bitmap = bitmap;
71
+ this.measuredSize = measuredSize;
72
+ this.state = state;
73
+ this._pose = pose;
74
+ }
75
+ }
76
+ export class WebXRImageTrackingModel {
77
+ image;
78
+ widthInMeters;
79
+ }
80
+ __decorate([
81
+ serializable()
82
+ ], WebXRImageTrackingModel.prototype, "image", void 0);
83
+ __decorate([
84
+ serializable()
85
+ ], WebXRImageTrackingModel.prototype, "widthInMeters", void 0);
86
+ export class WebXRImageTracking extends Behaviour {
87
+ trackedImages;
88
+ trackedImageIndexMap = new Map();
89
+ static _imageElements = new Map();
90
+ awake() {
91
+ for (const trackedImage of this.trackedImages) {
92
+ if (trackedImage.image) {
93
+ if (WebXRImageTracking._imageElements.has(trackedImage.image)) {
94
+ }
95
+ else {
96
+ const url = trackedImage.image;
97
+ WebXRImageTracking._imageElements.set(url, null);
98
+ const imageElement = document.createElement("img");
99
+ imageElement.src = url;
100
+ imageElement.addEventListener("load", async () => {
101
+ const img = await createImageBitmap(imageElement);
102
+ WebXRImageTracking._imageElements.set(url, img);
103
+ });
104
+ }
105
+ }
106
+ }
107
+ }
108
+ onEnable() {
109
+ WebXR.addEventListener("modify-ar-options", this.onModifyAROptions);
110
+ }
111
+ onDisable() {
112
+ WebXR.removeEventListener("modify-ar-options", this.onModifyAROptions);
113
+ }
114
+ onModifyAROptions = (event) => {
115
+ const options = event.detail;
116
+ const features = options.optionalFeatures || [];
117
+ features.push("image-tracking");
118
+ options.optionalFeatures = features;
119
+ options.trackedImages = [];
120
+ for (const trackedImage of this.trackedImages) {
121
+ if (trackedImage.image?.length && trackedImage.widthInMeters > 0) {
122
+ const bitmap = WebXRImageTracking._imageElements.get(trackedImage.image);
123
+ if (bitmap) {
124
+ this.trackedImageIndexMap.set(options.trackedImages.length, trackedImage);
125
+ options.trackedImages.push({
126
+ image: bitmap,
127
+ widthInMeters: trackedImage.widthInMeters
128
+ });
129
+ }
130
+ }
131
+ }
132
+ };
133
+ onBeforeRender(frame) {
134
+ //@ts-ignore
135
+ if (frame?.session && typeof frame.getImageTrackingResults === "function") {
136
+ //@ts-ignore
137
+ const results = frame.getImageTrackingResults();
138
+ if (results.length) {
139
+ const space = this.context.renderer.xr.getReferenceSpace();
140
+ if (space) {
141
+ const images = [];
142
+ for (const result of results) {
143
+ const imageIndex = result.index;
144
+ const trackedImage = this.trackedImageIndexMap.get(imageIndex);
145
+ if (trackedImage) {
146
+ const pose = frame.getPose(result.imageSpace, space);
147
+ const state = result.trackingState;
148
+ const imageData = new WebXRTrackedImage(this, trackedImage, result.image, result.measuredSize, state, pose);
149
+ images.push(imageData);
150
+ }
151
+ else {
152
+ if (debug) {
153
+ console.warn("No tracked image for index", imageIndex);
154
+ }
155
+ }
156
+ }
157
+ if (images.length > 0) {
158
+ try {
159
+ this.dispatchEvent(new CustomEvent("image-tracking", { detail: images }));
160
+ }
161
+ catch (e) {
162
+ console.error(e);
163
+ }
164
+ }
165
+ }
166
+ }
167
+ }
168
+ }
169
+ }
170
+ __decorate([
171
+ serializable(WebXRImageTrackingModel)
172
+ ], WebXRImageTracking.prototype, "trackedImages", void 0);
173
+ //# sourceMappingURL=WebXRImageTracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebXRImageTracking.js","sourceRoot":"","sources":["../../src/engine-components/WebXRImageTracking.ts"],"names":[],"mappings":"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"}
@@ -145,6 +145,7 @@ export { TestRunner } from "../TestRunner";
145
145
  export { TestSimulateUserData } from "../TestRunner";
146
146
  export { Text } from "../ui/Text";
147
147
  export { TextureSheetAnimationModule } from "../ParticleSystemModules";
148
+ export { TiltShiftEffect } from "../postprocessing/Effects/TiltShiftEffect";
148
149
  export { ToneMapping } from "../postprocessing/Effects/Tonemapping";
149
150
  export { TrailModule } from "../ParticleSystemModules";
150
151
  export { TransformData } from "../export/usdz/extensions/Animation";
@@ -168,7 +169,10 @@ export { WebARSessionRoot } from "../WebARSessionRoot";
168
169
  export { WebXR } from "../WebXR";
169
170
  export { WebXRAvatar } from "../WebXRAvatar";
170
171
  export { WebXRController } from "../WebXRController";
172
+ export { WebXRImageTracking } from "../WebXRImageTracking";
173
+ export { WebXRImageTrackingModel } from "../WebXRImageTracking";
171
174
  export { WebXRSync } from "../WebXRSync";
175
+ export { WebXRTrackedImage } from "../WebXRImageTracking";
172
176
  export { XRFlag } from "../XRFlag";
173
177
  export { XRGrabModel } from "../WebXRGrabRendering";
174
178
  export { XRGrabRendering } from "../WebXRGrabRendering";
@@ -146,6 +146,7 @@ export { TestRunner } from "../TestRunner";
146
146
  export { TestSimulateUserData } from "../TestRunner";
147
147
  export { Text } from "../ui/Text";
148
148
  export { TextureSheetAnimationModule } from "../ParticleSystemModules";
149
+ export { TiltShiftEffect } from "../postprocessing/Effects/TiltShiftEffect";
149
150
  export { ToneMapping } from "../postprocessing/Effects/Tonemapping";
150
151
  export { TrailModule } from "../ParticleSystemModules";
151
152
  export { TransformData } from "../export/usdz/extensions/Animation";
@@ -169,7 +170,10 @@ export { WebARSessionRoot } from "../WebARSessionRoot";
169
170
  export { WebXR } from "../WebXR";
170
171
  export { WebXRAvatar } from "../WebXRAvatar";
171
172
  export { WebXRController } from "../WebXRController";
173
+ export { WebXRImageTracking } from "../WebXRImageTracking";
174
+ export { WebXRImageTrackingModel } from "../WebXRImageTracking";
172
175
  export { WebXRSync } from "../WebXRSync";
176
+ export { WebXRTrackedImage } from "../WebXRImageTracking";
173
177
  export { XRFlag } from "../XRFlag";
174
178
  export { XRGrabModel } from "../WebXRGrabRendering";
175
179
  export { XRGrabRendering } from "../WebXRGrabRendering";
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/engine-components/codegen/components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/engine-components/codegen/components.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ export declare class DepthOfField extends PostProcessingEffect {
13
13
  focalLength: VolumeParameter;
14
14
  aperture: VolumeParameter;
15
15
  gaussianMaxRadius: VolumeParameter;
16
+ resolutionScale?: VolumeParameter;
17
+ bokehScale?: VolumeParameter;
16
18
  init(): void;
17
19
  onCreateEffect(): DepthOfFieldEffect[] | undefined;
18
20
  unapply(): void;
@@ -10,6 +10,7 @@ import { Mathf } from "../../../engine/engine_math";
10
10
  import { PostProcessingEffect } from "../PostProcessingEffect";
11
11
  import { VolumeParameter } from "../VolumeParameter";
12
12
  import { registerCustomEffectType } from "../VolumeProfile";
13
+ import { isMobileDevice } from "../../../engine/engine_utils";
13
14
  export var DepthOfFieldMode;
14
15
  (function (DepthOfFieldMode) {
15
16
  DepthOfFieldMode[DepthOfFieldMode["Off"] = 0] = "Off";
@@ -25,6 +26,8 @@ export class DepthOfField extends PostProcessingEffect {
25
26
  focalLength;
26
27
  aperture;
27
28
  gaussianMaxRadius;
29
+ resolutionScale;
30
+ bokehScale;
28
31
  init() {
29
32
  this.focalLength.valueProcessor = v => {
30
33
  const t = v / 300;
@@ -40,6 +43,13 @@ export class DepthOfField extends PostProcessingEffect {
40
43
  onCreateEffect() {
41
44
  if (this.mode === DepthOfFieldMode.Off)
42
45
  return undefined;
46
+ const factor = 1 / window.devicePixelRatio;
47
+ if (this.resolutionScale === undefined) {
48
+ let defaultValue = 1;
49
+ if (isMobileDevice())
50
+ defaultValue = .6;
51
+ this.resolutionScale = new VolumeParameter(defaultValue * factor);
52
+ }
43
53
  // console.log(this.focusDistance.overrideState, this.focusDistance.value);
44
54
  // const depth = new DepthEffect({
45
55
  // inverted: true,
@@ -49,13 +59,15 @@ export class DepthOfField extends PostProcessingEffect {
49
59
  worldFocusRange: .2,
50
60
  focalLength: 1,
51
61
  bokehScale: 20,
52
- resolutionScale: 1,
62
+ resolutionScale: this.resolutionScale.value,
53
63
  });
54
64
  this.focusDistance.onValueChanged = v => {
55
65
  dof.circleOfConfusionMaterial.worldFocusDistance = v;
56
66
  };
57
67
  this.focalLength.onValueChanged = v => dof.circleOfConfusionMaterial.worldFocusRange = v;
58
68
  this.aperture.onValueChanged = v => dof.bokehScale = v;
69
+ if (this.resolutionScale)
70
+ this.resolutionScale.onValueChanged = v => dof.resolution.scale = v;
59
71
  return [dof];
60
72
  }
61
73
  unapply() {
@@ -76,5 +88,11 @@ __decorate([
76
88
  __decorate([
77
89
  serializable(VolumeParameter)
78
90
  ], DepthOfField.prototype, "gaussianMaxRadius", void 0);
91
+ __decorate([
92
+ serializable(VolumeParameter)
93
+ ], DepthOfField.prototype, "resolutionScale", void 0);
94
+ __decorate([
95
+ serializable(VolumeParameter)
96
+ ], DepthOfField.prototype, "bokehScale", void 0);
79
97
  registerCustomEffectType("DepthOfField", DepthOfField);
80
98
  //# sourceMappingURL=DepthOfField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DepthOfField.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/DepthOfField.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,qDAAO,CAAA;IACP,+DAAY,CAAA;IACZ,yDAAS,CAAA;AACb,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,MAAM,OAAO,YAAa,SAAQ,oBAAoB;IAElD,IAAI,QAAQ;QACR,OAAO,cAAc,CAAC;IAC1B,CAAC;IAGD,IAAI,CAAqB;IAGzB,aAAa,CAAmB;IAGhC,WAAW,CAAmB;IAG9B,QAAQ,CAAmB;IAG3B,iBAAiB,CAAmB;IAEpC,IAAI;QACA,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE;YAClC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAClB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAA,wDAAwD;YACtE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC;IACN,CAAC;IAED,cAAc;QACV,IAAG,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QACxD,2EAA2E;QAC3E,kCAAkC;QAClC,sBAAsB;QACtB,2CAA2C;QAC3C,MAAM;QACN,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAW,EAAE;YACzD,eAAe,EAAE,EAAE;YACnB,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,EAAE;YACd,eAAe,EAAE,CAAC;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE;YACpC,GAAG,CAAC,yBAAyB,CAAC,kBAAkB,GAAG,CAAC,CAAC;QACzD,CAAC,CAAA;QACD,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,eAAe,GAAG,CAAC,CAAC;QACzF,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;QAGvD,OAAO,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,OAAO;IACP,CAAC;CAEJ;AAvDG;IADC,YAAY,EAAE;0CACU;AAGzB;IADC,YAAY,CAAC,eAAe,CAAC;mDACE;AAGhC;IADC,YAAY,CAAC,eAAe,CAAC;iDACA;AAG9B;IADC,YAAY,CAAC,eAAe,CAAC;8CACH;AAG3B;IADC,YAAY,CAAC,eAAe,CAAC;uDACM;AA4CxC,wBAAwB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"DepthOfField.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/DepthOfField.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,qDAAO,CAAA;IACP,+DAAY,CAAA;IACZ,yDAAS,CAAA;AACb,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,MAAM,OAAO,YAAa,SAAQ,oBAAoB;IAElD,IAAI,QAAQ;QACR,OAAO,cAAc,CAAC;IAC1B,CAAC;IAGD,IAAI,CAAoB;IAGxB,aAAa,CAAmB;IAGhC,WAAW,CAAmB;IAG9B,QAAQ,CAAmB;IAG3B,iBAAiB,CAAmB;IAGpC,eAAe,CAAmB;IAGlC,UAAU,CAAmB;IAE7B,IAAI;QACA,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE;YAClC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAClB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAA,wDAAwD;YACtE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC;IACN,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAEzD,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAE3C,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;YACpC,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAG,cAAc,EAAE;gBAAE,YAAY,GAAG,EAAE,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC;SACrE;QAED,2EAA2E;QAC3E,kCAAkC;QAClC,sBAAsB;QACtB,2CAA2C;QAC3C,MAAM;QACN,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAW,EAAE;YACzD,eAAe,EAAE,EAAE;YACnB,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,EAAE;YACd,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE;YACpC,GAAG,CAAC,yBAAyB,CAAC,kBAAkB,GAAG,CAAC,CAAC;QACzD,CAAC,CAAA;QACD,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,eAAe,GAAG,CAAC,CAAC;QACzF,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;QAEvD,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;QAE9F,OAAO,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,OAAO;IACP,CAAC;CAEJ;AAvEG;IADC,YAAY,EAAE;0CACS;AAGxB;IADC,YAAY,CAAC,eAAe,CAAC;mDACE;AAGhC;IADC,YAAY,CAAC,eAAe,CAAC;iDACA;AAG9B;IADC,YAAY,CAAC,eAAe,CAAC;8CACH;AAG3B;IADC,YAAY,CAAC,eAAe,CAAC;uDACM;AAGpC;IADC,YAAY,CAAC,eAAe,CAAC;qDACI;AAGlC;IADC,YAAY,CAAC,eAAe,CAAC;gDACD;AAsDjC,wBAAwB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { EffectProviderResult, PostProcessingEffect } from "../PostProcessingEffect";
2
+ import { VolumeParameter } from "../VolumeParameter";
3
+ export declare class TiltShiftEffect extends PostProcessingEffect {
4
+ get typeName(): string;
5
+ offset: VolumeParameter;
6
+ rotation: VolumeParameter;
7
+ focusArea: VolumeParameter;
8
+ feather: VolumeParameter;
9
+ kernelSize: VolumeParameter;
10
+ resolutionScale: VolumeParameter;
11
+ init(): void;
12
+ onCreateEffect(): EffectProviderResult | undefined;
13
+ }
@@ -0,0 +1,63 @@
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 { registerCustomEffectType } from "../VolumeProfile";
8
+ import { PostProcessingEffect } from "../PostProcessingEffect";
9
+ import { KernelSize, TiltShiftEffect as TiltShift } from "postprocessing";
10
+ import { VolumeParameter } from "../VolumeParameter";
11
+ import { serializable } from "../../../engine/engine_serialization";
12
+ export class TiltShiftEffect extends PostProcessingEffect {
13
+ get typeName() {
14
+ return "TiltShiftEffect";
15
+ }
16
+ offset;
17
+ rotation;
18
+ focusArea;
19
+ feather;
20
+ kernelSize;
21
+ resolutionScale;
22
+ init() {
23
+ this.offset.defaultValue = 0;
24
+ this.rotation.defaultValue = 0;
25
+ this.focusArea.defaultValue = 0.4;
26
+ this.feather.defaultValue = 0.3;
27
+ this.kernelSize.defaultValue = KernelSize.MEDIUM;
28
+ this.resolutionScale.defaultValue = 1 / window.devicePixelRatio;
29
+ }
30
+ onCreateEffect() {
31
+ console.log(this);
32
+ const effect = new TiltShift({
33
+ kernelSize: KernelSize.VERY_LARGE,
34
+ });
35
+ this.offset.onValueChanged = v => effect.offset = v;
36
+ this.rotation.onValueChanged = v => effect.rotation = v;
37
+ this.focusArea.onValueChanged = v => effect.focusArea = v;
38
+ this.feather.onValueChanged = v => effect.feather = v;
39
+ this.kernelSize.onValueChanged = v => effect.blurPass.kernelSize = v;
40
+ this.resolutionScale.onValueChanged = v => effect.resolution.scale = v / window.devicePixelRatio;
41
+ return effect;
42
+ }
43
+ }
44
+ __decorate([
45
+ serializable(VolumeParameter)
46
+ ], TiltShiftEffect.prototype, "offset", void 0);
47
+ __decorate([
48
+ serializable(VolumeParameter)
49
+ ], TiltShiftEffect.prototype, "rotation", void 0);
50
+ __decorate([
51
+ serializable(VolumeParameter)
52
+ ], TiltShiftEffect.prototype, "focusArea", void 0);
53
+ __decorate([
54
+ serializable(VolumeParameter)
55
+ ], TiltShiftEffect.prototype, "feather", void 0);
56
+ __decorate([
57
+ serializable(VolumeParameter)
58
+ ], TiltShiftEffect.prototype, "kernelSize", void 0);
59
+ __decorate([
60
+ serializable(VolumeParameter)
61
+ ], TiltShiftEffect.prototype, "resolutionScale", void 0);
62
+ registerCustomEffectType("TiltShiftEffect", TiltShiftEffect);
63
+ //# sourceMappingURL=TiltShiftEffect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TiltShiftEffect.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/TiltShiftEffect.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAwB,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,eAAe,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAGpE,MAAM,OAAO,eAAgB,SAAQ,oBAAoB;IACrD,IAAI,QAAQ;QACR,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAGD,MAAM,CAAmB;IAEzB,QAAQ,CAAmB;IAE3B,SAAS,CAAmB;IAE5B,OAAO,CAAkB;IAEzB,UAAU,CAAmB;IAE7B,eAAe,CAAmB;IAElC,IAAI;QACA,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC;QACjD,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACpE,CAAC;IAGD,cAAc;QAEV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;YACzB,UAAU,EAAE,UAAU,CAAC,UAAU;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;QACrE,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAGjG,OAAO,MAAM,CAAC;IAClB,CAAC;CAEJ;AAzCG;IADC,YAAY,CAAC,eAAe,CAAC;+CACL;AAEzB;IADC,YAAY,CAAC,eAAe,CAAC;iDACH;AAE3B;IADC,YAAY,CAAC,eAAe,CAAC;kDACF;AAE5B;IADC,YAAY,CAAC,eAAe,CAAC;gDACL;AAEzB;IADC,YAAY,CAAC,eAAe,CAAC;mDACD;AAE7B;IADC,YAAY,CAAC,eAAe,CAAC;wDACI;AAgCtC,wBAAwB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export declare type VolumeParameterChangedEvent = (newValue: any, oldValue: any, parameter: VolumeParameter) => void;
2
2
  export declare type VolumeParameterValueProcessor = (value: any) => any;
3
3
  export declare class VolumeParameter {
4
+ constructor(value?: any);
4
5
  get overrideState(): boolean;
5
6
  set overrideState(val: boolean);
6
7
  private _active;
@@ -6,6 +6,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { serializable } from "../../engine/engine_serialization";
8
8
  export class VolumeParameter {
9
+ constructor(value) {
10
+ this._value = value;
11
+ this._defaultValue = value;
12
+ }
9
13
  get overrideState() {
10
14
  return this._active;
11
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VolumeParameter.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/VolumeParameter.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAKjE,MAAM,OAAO,eAAe;IAGxB,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,IAAI,aAAa,CAAC,GAAY;QAC1B,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG;YAAE,OAAO;QACjC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAClE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IACO,OAAO,GAAY,IAAI,CAAC;IAKhC,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,GAAQ;QACd,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IACO,MAAM,CAAM;IACZ,mBAAmB,CAAO;IAGlC,IAAI,YAAY,CAAC,GAAQ;QACrB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;IAC7B,CAAC;IACO,aAAa,GAAQ,SAAS,CAAC;IAGvC,8EAA8E;IAC9E,MAAM;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,2DAA2D;IAC3D,cAAc,CAA4C;IAC1D,6DAA6D;IAC7D,cAAc,CAA0C;IAGhD,YAAY,CAAC,GAAQ,EAAE,WAAoB;QAC/C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO;QAE9C,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,KAAK;YACtD,OAAO;QAEX,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YACnD,6HAA6H;YAC7H,8EAA8E;YAC9E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;YACjC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;SAC5B;aACI;YACD,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;YAC/B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc;gBACnC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SACrB;QAED,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;SAC5C;IACL,CAAC;IAEO,kBAAkB,CAAC,QAAa;QAEpC,IAAI,IAAI,CAAC,mBAAmB,KAAK,QAAQ;YACrC,OAAO,KAAK,CAAC;QAEjB,0IAA0I;QAE1I,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA5EG;IADC,YAAY,EAAE;oDAGd;AAYD;IADC,YAAY,EAAE;4CAGd"}
1
+ {"version":3,"file":"VolumeParameter.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/VolumeParameter.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAKjE,MAAM,OAAO,eAAe;IAExB,YAAY,KAAW;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC/B,CAAC;IAGD,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,IAAI,aAAa,CAAC,GAAY;QAC1B,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG;YAAE,OAAO;QACjC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAClE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IACO,OAAO,GAAY,IAAI,CAAC;IAKhC,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,GAAQ;QACd,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IACO,MAAM,CAAM;IACZ,mBAAmB,CAAO;IAGlC,IAAI,YAAY,CAAC,GAAQ;QACrB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;IAC7B,CAAC;IACO,aAAa,GAAQ,SAAS,CAAC;IAGvC,8EAA8E;IAC9E,MAAM;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,2DAA2D;IAC3D,cAAc,CAA4C;IAC1D,6DAA6D;IAC7D,cAAc,CAA0C;IAGhD,YAAY,CAAC,GAAQ,EAAE,WAAoB;QAC/C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO;QAE9C,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,KAAK;YACtD,OAAO;QAEX,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YACnD,6HAA6H;YAC7H,8EAA8E;YAC9E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;YACjC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;SAC5B;aACI;YACD,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;YAC/B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc;gBACnC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SACrB;QAED,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;SAC5C;IACL,CAAC;IAEO,kBAAkB,CAAC,QAAa;QAEpC,IAAI,IAAI,CAAC,mBAAmB,KAAK,QAAQ;YACrC,OAAO,KAAK,CAAC;QAEjB,0IAA0I;QAE1I,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA5EG;IADC,YAAY,EAAE;oDAGd;AAYD;IADC,YAAY,EAAE;4CAGd"}
@@ -31,6 +31,8 @@ export declare class PlayableDirector extends Behaviour {
31
31
  set weight(value: number);
32
32
  get speed(): number;
33
33
  set speed(value: number);
34
+ /** When enabled the timeline will wait for audio tracks to load at the current time before starting to play */
35
+ waitForAudio: boolean;
34
36
  private _visibilityChangeEvt?;
35
37
  private _clonedPlayableAsset;
36
38
  private _speed;
@@ -39,7 +41,7 @@ export declare class PlayableDirector extends Behaviour {
39
41
  onDisable(): void;
40
42
  onDestroy(): void;
41
43
  rebuildGraph(): void;
42
- play(): void;
44
+ play(): Promise<void>;
43
45
  pause(): void;
44
46
  stop(): void;
45
47
  evaluate(): void;
@@ -2,10 +2,11 @@ import { Animator } from '../Animator';
2
2
  import { Behaviour, GameObject } from '../Component';
3
3
  import * as THREE from 'three';
4
4
  import { AudioListener } from '../AudioListener';
5
+ import { AudioSource } from '../AudioSource';
5
6
  import { SignalReceiver } from './SignalAsset';
6
7
  import * as Models from "./TimelineModels";
7
8
  import * as Tracks from "./TimelineTracks";
8
- import { deepClone, getParam } from '../../engine/engine_utils';
9
+ import { deepClone, delay, getParam } from '../../engine/engine_utils';
9
10
  import { Object3D } from 'three';
10
11
  import { isLocalNetwork } from '../../engine/engine_networking_utils';
11
12
  const debug = getParam("debugtimeline");
@@ -80,6 +81,8 @@ export class PlayableDirector extends Behaviour {
80
81
  set weight(value) { this._weight = value; }
81
82
  get speed() { return this._speed; }
82
83
  set speed(value) { this._speed = value; }
84
+ /** When enabled the timeline will wait for audio tracks to load at the current time before starting to play */
85
+ waitForAudio = true;
83
86
  _visibilityChangeEvt;
84
87
  _clonedPlayableAsset = false;
85
88
  _speed = 1;
@@ -137,7 +140,7 @@ export class PlayableDirector extends Behaviour {
137
140
  this.updateTimelineDuration();
138
141
  this.setupAndCreateTrackHandlers();
139
142
  }
140
- play() {
143
+ async play() {
141
144
  if (!this.isValid())
142
145
  return;
143
146
  const pauseChanged = this._isPaused == true;
@@ -147,6 +150,22 @@ export class PlayableDirector extends Behaviour {
147
150
  if (this._isPlaying)
148
151
  return;
149
152
  this._isPlaying = true;
153
+ if (this.waitForAudio) {
154
+ // Make sure audio tracks have loaded at the current time
155
+ const promises = [];
156
+ for (const track of this._audioTracks) {
157
+ const promise = track.loadAudio(this._time, 1, 0);
158
+ if (promise)
159
+ promises.push(promise);
160
+ }
161
+ if (promises.length > 0) {
162
+ await Promise.all(promises);
163
+ if (!this._isPlaying)
164
+ return;
165
+ }
166
+ while (this._audioTracks.length > 0 && this._isPlaying && !AudioSource.userInteractionRegistered && this.waitForAudio)
167
+ await delay(200);
168
+ }
150
169
  this._internalUpdateRoutine = this.startCoroutine(this.internalUpdate());
151
170
  }
152
171
  pause() {
@@ -340,6 +359,25 @@ export class PlayableDirector extends Behaviour {
340
359
  console.warn("Missing binding", binding, track.name, track.type, this.name, this.playableAsset.name);
341
360
  }
342
361
  }
362
+ if (track.type === Models.TrackType.Control) {
363
+ for (let i = 0; i < track.clips.length; i++) {
364
+ const clip = track.clips[i];
365
+ let binding = clip.asset.sourceObject;
366
+ if (typeof binding === "string") {
367
+ if (this._guidsMap && this._guidsMap[binding])
368
+ binding = this._guidsMap[binding];
369
+ const obj = GameObject.findByGuid(binding, root);
370
+ if (obj === null || typeof obj !== "object") {
371
+ console.warn("Failed to resolve sourceObject binding", binding, track.name, clip);
372
+ }
373
+ else {
374
+ if (debug)
375
+ console.log("Resolved binding", binding, "to", obj);
376
+ clip.asset.sourceObject = obj;
377
+ }
378
+ }
379
+ }
380
+ }
343
381
  }
344
382
  }
345
383
  findRoot(current) {