@needle-tools/engine 5.0.0 → 5.1.0-experimental.1

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 (181) hide show
  1. package/components.needle.json +1 -1
  2. package/dist/generateMeshBVH.worker-DT9A2Hrc.js +1 -0
  3. package/dist/gltf-progressive-3BwW4ETO.min.js +10 -0
  4. package/dist/gltf-progressive-ByD1UX0A.umd.cjs +10 -0
  5. package/dist/{gltf-progressive-Cl167Vjx.js → gltf-progressive-DwWaVr0o.js} +412 -394
  6. package/dist/gltf-progressive.worker-DpfUjn1n.js +3 -0
  7. package/dist/{materialx-qPScBWhj.min.js → materialx-9KHBidZa.min.js} +1 -1
  8. package/dist/{materialx-4ApD6Vz5.js → materialx-BBDu8W5P.js} +1 -1
  9. package/dist/{materialx-D0XUnhBY.umd.cjs → materialx-hLP3E8AA.umd.cjs} +2 -2
  10. package/dist/{needle-engine.bundle-CoEvMwYM.min.js → needle-engine.bundle-BiCxyTBE.min.js} +110 -110
  11. package/dist/{needle-engine.bundle-BAYLGumK.umd.cjs → needle-engine.bundle-CaHKqc30.umd.cjs} +123 -123
  12. package/dist/{needle-engine.bundle-BDIyvCV6.js → needle-engine.bundle-JZXX6OjM.js} +2143 -2088
  13. package/dist/needle-engine.d.ts +102 -44
  14. package/dist/needle-engine.js +480 -476
  15. package/dist/needle-engine.min.js +1 -1
  16. package/dist/needle-engine.umd.cjs +1 -1
  17. package/dist/{postprocessing-B_9sKVU7.min.js → postprocessing-BZfyAdCY.min.js} +1 -1
  18. package/dist/{postprocessing-WDc9WwI3.js → postprocessing-CXlA3QA6.js} +1 -1
  19. package/dist/{postprocessing-B2wb6pzI.umd.cjs → postprocessing-Dwy7Hz_T.umd.cjs} +38 -38
  20. package/dist/three-examples.js +4760 -3641
  21. package/dist/three-examples.min.js +17 -35
  22. package/dist/three-examples.umd.cjs +16 -34
  23. package/dist/three.js +48533 -28562
  24. package/dist/three.min.js +716 -502
  25. package/dist/three.umd.cjs +720 -506
  26. package/dist/vendor-Bf43L3CE.min.js +1116 -0
  27. package/dist/{vendor-CntUvmJu.umd.cjs → vendor-BlyEaMTL.umd.cjs} +31 -31
  28. package/dist/{vendor-vHLk8sXu.js → vendor-D-7l5gB0.js} +2562 -2556
  29. package/lib/engine/engine_animation.js +1 -1
  30. package/lib/engine/engine_animation.js.map +1 -1
  31. package/lib/engine/engine_audio.js.map +1 -1
  32. package/lib/engine/engine_context.js +3 -6
  33. package/lib/engine/engine_context.js.map +1 -1
  34. package/lib/engine/engine_create_objects.js +0 -1
  35. package/lib/engine/engine_create_objects.js.map +1 -1
  36. package/lib/engine/engine_element.d.ts +113 -0
  37. package/lib/engine/engine_element.js +833 -0
  38. package/lib/engine/engine_element.js.map +1 -0
  39. package/lib/engine/engine_element_attributes.d.ts +72 -0
  40. package/lib/engine/engine_element_attributes.js +2 -0
  41. package/lib/engine/engine_element_attributes.js.map +1 -0
  42. package/lib/engine/engine_element_extras.d.ts +6 -0
  43. package/lib/engine/engine_element_extras.js +14 -0
  44. package/lib/engine/engine_element_extras.js.map +1 -0
  45. package/lib/engine/engine_element_loading.d.ts +44 -0
  46. package/lib/engine/engine_element_loading.js +350 -0
  47. package/lib/engine/engine_element_loading.js.map +1 -0
  48. package/lib/engine/engine_element_overlay.d.ts +21 -0
  49. package/lib/engine/engine_element_overlay.js +167 -0
  50. package/lib/engine/engine_element_overlay.js.map +1 -0
  51. package/lib/engine/engine_license.js.map +1 -1
  52. package/lib/engine/engine_pmrem.js +2 -2
  53. package/lib/engine/engine_pmrem.js.map +1 -1
  54. package/lib/engine/engine_scenetools.d.ts +62 -0
  55. package/lib/engine/engine_scenetools.js +337 -0
  56. package/lib/engine/engine_scenetools.js.map +1 -0
  57. package/lib/engine/engine_test_utils.d.ts +39 -0
  58. package/lib/engine/engine_test_utils.js +84 -0
  59. package/lib/engine/engine_test_utils.js.map +1 -0
  60. package/lib/engine/engine_three_utils.js.map +1 -1
  61. package/lib/engine/engine_time.js +4 -3
  62. package/lib/engine/engine_time.js.map +1 -1
  63. package/lib/engine/engine_ui.d.ts +25 -0
  64. package/lib/engine/engine_ui.dummy_canvas.d.ts +2 -0
  65. package/lib/engine/engine_ui.dummy_canvas.js +55 -0
  66. package/lib/engine/engine_ui.dummy_canvas.js.map +1 -0
  67. package/lib/engine/engine_ui.js +168 -0
  68. package/lib/engine/engine_ui.js.map +1 -0
  69. package/lib/engine/extensions/NEEDLE_lightmaps.js +2 -2
  70. package/lib/engine/extensions/NEEDLE_lightmaps.js.map +1 -1
  71. package/lib/engine/extensions/NEEDLE_pmrem.d.ts +1 -1
  72. package/lib/engine/webcomponents/icons.js +3 -2
  73. package/lib/engine/webcomponents/icons.js.map +1 -1
  74. package/lib/engine/webcomponents/needle-engine.attributes.d.ts +69 -0
  75. package/lib/engine/webcomponents/needle-engine.attributes.js +2 -0
  76. package/lib/engine/webcomponents/needle-engine.attributes.js.map +1 -0
  77. package/lib/engine-components/AudioSource.js +1 -1
  78. package/lib/engine-components/AudioSource.js.map +1 -1
  79. package/lib/engine-components/Light.d.ts +3 -0
  80. package/lib/engine-components/Light.js +39 -31
  81. package/lib/engine-components/Light.js.map +1 -1
  82. package/lib/engine-components/OrbitControls.js +2 -1
  83. package/lib/engine-components/OrbitControls.js.map +1 -1
  84. package/lib/engine-components/SpriteRenderer.d.ts +1 -1
  85. package/lib/engine-components/VideoPlayer.d.ts +1 -1
  86. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js.map +1 -1
  87. package/lib/engine-components/export/usdz/extensions/Animation.js +1 -0
  88. package/lib/engine-components/export/usdz/extensions/Animation.js.map +1 -1
  89. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -1
  90. package/lib/engine-components/particlesystem/ParticleSystem.d.ts +1 -1
  91. package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -1
  92. package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
  93. package/lib/engine-components/ui/BaseUIComponent_Uikit.d.ts +54 -0
  94. package/lib/engine-components/ui/BaseUIComponent_Uikit.js +114 -0
  95. package/lib/engine-components/ui/BaseUIComponent_Uikit.js.map +1 -0
  96. package/lib/engine-components/ui/BaseUikitComponent.d.ts +54 -0
  97. package/lib/engine-components/ui/BaseUikitComponent.js +114 -0
  98. package/lib/engine-components/ui/BaseUikitComponent.js.map +1 -0
  99. package/lib/engine-components/ui/Button.legacy.d.ts +68 -0
  100. package/lib/engine-components/ui/Button.legacy.js +320 -0
  101. package/lib/engine-components/ui/Button.legacy.js.map +1 -0
  102. package/lib/engine-components/ui/ButtonUikit.d.ts +51 -0
  103. package/lib/engine-components/ui/ButtonUikit.js +187 -0
  104. package/lib/engine-components/ui/ButtonUikit.js.map +1 -0
  105. package/lib/engine-components/ui/Canvas.js +2 -2
  106. package/lib/engine-components/ui/Canvas.js.map +1 -1
  107. package/lib/engine-components/ui/Canvas.legacy.d.ts +76 -0
  108. package/lib/engine-components/ui/Canvas.legacy.js +409 -0
  109. package/lib/engine-components/ui/Canvas.legacy.js.map +1 -0
  110. package/lib/engine-components/ui/CanvasUikit.d.ts +68 -0
  111. package/lib/engine-components/ui/CanvasUikit.js +289 -0
  112. package/lib/engine-components/ui/CanvasUikit.js.map +1 -0
  113. package/lib/engine-components/ui/Graphic.d.ts +3 -3
  114. package/lib/engine-components/ui/Graphic.js +6 -2
  115. package/lib/engine-components/ui/Graphic.js.map +1 -1
  116. package/lib/engine-components/ui/Graphic.legacy.d.ts +55 -0
  117. package/lib/engine-components/ui/Graphic.legacy.js +268 -0
  118. package/lib/engine-components/ui/Graphic.legacy.js.map +1 -0
  119. package/lib/engine-components/ui/GraphicUikit.d.ts +21 -0
  120. package/lib/engine-components/ui/GraphicUikit.js +65 -0
  121. package/lib/engine-components/ui/GraphicUikit.js.map +1 -0
  122. package/lib/engine-components/ui/Image.js.map +1 -1
  123. package/lib/engine-components/ui/Image.legacy.d.ts +39 -0
  124. package/lib/engine-components/ui/Image.legacy.js +121 -0
  125. package/lib/engine-components/ui/Image.legacy.js.map +1 -0
  126. package/lib/engine-components/ui/ImageUikit.d.ts +22 -0
  127. package/lib/engine-components/ui/ImageUikit.js +97 -0
  128. package/lib/engine-components/ui/ImageUikit.js.map +1 -0
  129. package/lib/engine-components/ui/RenderMode.d.ts +14 -0
  130. package/lib/engine-components/ui/RenderMode.js +16 -0
  131. package/lib/engine-components/ui/RenderMode.js.map +1 -0
  132. package/lib/engine-components/ui/Text.d.ts +64 -11
  133. package/lib/engine-components/ui/Text.js +154 -45
  134. package/lib/engine-components/ui/Text.js.map +1 -1
  135. package/lib/engine-components/ui/Text.legacy.d.ts +81 -0
  136. package/lib/engine-components/ui/Text.legacy.js +548 -0
  137. package/lib/engine-components/ui/Text.legacy.js.map +1 -0
  138. package/lib/engine-components/ui/TextUikit.d.ts +42 -0
  139. package/lib/engine-components/ui/TextUikit.js +164 -0
  140. package/lib/engine-components/ui/TextUikit.js.map +1 -0
  141. package/lib/engine-components/ui/index.d.ts +1 -0
  142. package/lib/engine-components/ui/index.js +1 -0
  143. package/lib/engine-components/ui/index.js.map +1 -1
  144. package/lib/engine-components/webxr/WebARCameraBackground.d.ts +1 -1
  145. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.d.ts +6 -0
  146. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js +46 -0
  147. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js.map +1 -0
  148. package/package.json +5 -5
  149. package/plugins/common/buildinfo.d.ts +6 -0
  150. package/plugins/vite/ai.d.ts +7 -8
  151. package/plugins/vite/ai.js +95 -20
  152. package/plugins/vite/alias.js +6 -0
  153. package/plugins/vite/dependencies.js +7 -0
  154. package/src/engine/engine_animation.ts +1 -1
  155. package/src/engine/engine_audio.ts +1 -1
  156. package/src/engine/engine_context.ts +3 -6
  157. package/src/engine/engine_create_objects.ts +0 -1
  158. package/src/engine/engine_license.ts +0 -2
  159. package/src/engine/engine_pmrem.ts +3 -3
  160. package/src/engine/engine_three_utils.ts +2 -2
  161. package/src/engine/engine_time.ts +4 -3
  162. package/src/engine/extensions/NEEDLE_lightmaps.ts +3 -3
  163. package/src/engine/webcomponents/icons.ts +3 -2
  164. package/src/engine-components/AudioSource.ts +1 -1
  165. package/src/engine-components/Light.ts +39 -31
  166. package/src/engine-components/OrbitControls.ts +2 -2
  167. package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +2 -2
  168. package/src/engine-components/export/usdz/extensions/Animation.ts +6 -5
  169. package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +1 -1
  170. package/src/engine-components/postprocessing/PostProcessingHandler.ts +3 -3
  171. package/src/engine-components/timeline/TimelineTracks.ts +2 -2
  172. package/src/engine-components/ui/Canvas.ts +2 -2
  173. package/src/engine-components/ui/Graphic.ts +7 -3
  174. package/src/engine-components/ui/Image.ts +1 -1
  175. package/src/engine-components/ui/Text.ts +170 -52
  176. package/src/engine-components/ui/index.ts +2 -1
  177. package/dist/generateMeshBVH.worker-DiCnZlf3.js +0 -21
  178. package/dist/gltf-progressive-BryRjllq.min.js +0 -10
  179. package/dist/gltf-progressive-DJBMx-zB.umd.cjs +0 -10
  180. package/dist/gltf-progressive.worker-BqODMeeW.js +0 -23
  181. package/dist/vendor-DPbfJJ4d.min.js +0 -1116
@@ -0,0 +1,268 @@
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 { Color, LinearSRGBColorSpace, Texture } from 'three';
8
+ import SimpleStateBehavior from "three-mesh-ui/examples/behaviors/states/SimpleStateBehavior.js";
9
+ import { serializable } from '../../engine/engine_serialization_decorator.js';
10
+ import { NEEDLE_progressive } from '../../engine/extensions/NEEDLE_progressive.js';
11
+ import { RGBAColor } from "../../engine/js-extensions/index.js";
12
+ import { GameObject } from '../Component.js';
13
+ import { BaseUIComponent } from "./BaseUIComponent.js";
14
+ import { Outline } from './Outline.js';
15
+ import { RectTransform } from './RectTransform.js';
16
+ import { onChange, scheduleAction } from "./Utils.js";
17
+ const _colorStateObject = {
18
+ backgroundColor: new Color(1, 1, 1),
19
+ backgroundOpacity: 1,
20
+ borderColor: new Color(1, 1, 1),
21
+ borderOpacity: 1,
22
+ };
23
+ /**
24
+ * @category User Interface
25
+ * @group Components
26
+ */
27
+ export class Graphic extends BaseUIComponent {
28
+ get isGraphic() { return true; }
29
+ get color() {
30
+ if (!this._color)
31
+ this._color = new RGBAColor(1, 1, 1, 1);
32
+ return this._color;
33
+ }
34
+ set color(col) {
35
+ const changed = !this._color || this._color.r !== col.r || this._color.g !== col.g || this._color.b !== col.b || this._color.alpha !== col.alpha;
36
+ if (!changed)
37
+ return;
38
+ if (!this._color) {
39
+ this._color = new RGBAColor(1, 1, 1, 1);
40
+ }
41
+ this._color.copy(col);
42
+ this.onColorChanged();
43
+ }
44
+ _alphaFactor = 1;
45
+ setAlphaFactor(factor) {
46
+ this._alphaFactor = factor;
47
+ this.onColorChanged();
48
+ }
49
+ get alphaFactor() {
50
+ return this._alphaFactor;
51
+ }
52
+ sRGBColor = new Color(1, 0, 1);
53
+ onColorChanged() {
54
+ if (this.uiObject) {
55
+ this.sRGBColor.copy(this._color);
56
+ this.sRGBColor.convertLinearToSRGB();
57
+ _colorStateObject.backgroundColor = this.sRGBColor;
58
+ _colorStateObject.backgroundOpacity = this._color.alpha;
59
+ // E.g. when a button is setting states, we need to merge the state color with the base color
60
+ const activeStateName = this.uiObject["_simpleState__activeStates"]?.[0];
61
+ if (activeStateName) {
62
+ const active = this.uiObject["_simpleState__states"]?.[activeStateName];
63
+ if (active) {
64
+ if ("backgroundColor" in active)
65
+ _colorStateObject.backgroundColor = active["backgroundColor"];
66
+ if ("backgroundOpacity" in active)
67
+ _colorStateObject.backgroundOpacity = active["backgroundOpacity"];
68
+ }
69
+ }
70
+ _colorStateObject.backgroundOpacity *= this._alphaFactor;
71
+ this.applyEffects(_colorStateObject, this._alphaFactor);
72
+ this.uiObject.set(_colorStateObject);
73
+ this.markDirty();
74
+ }
75
+ }
76
+ // used via animations
77
+ get m_Color() {
78
+ return this._color;
79
+ }
80
+ raycastTarget = true;
81
+ uiObject = null;
82
+ _color = null;
83
+ _rect = null;
84
+ _stateManager = null;
85
+ get rectTransform() {
86
+ if (!this._rect) {
87
+ this._rect = GameObject.getComponent(this.gameObject, RectTransform);
88
+ }
89
+ if (!this._rect)
90
+ throw new Error("Not Supported: Make sure to add a RectTransform component before adding a UI Graphic component.");
91
+ return this._rect;
92
+ }
93
+ onParentRectTransformChanged() {
94
+ this.uiObject?.set({ width: this.rectTransform.width, height: this.rectTransform.height });
95
+ this.markDirty();
96
+ }
97
+ __internalNewInstanceCreated(init) {
98
+ super.__internalNewInstanceCreated(init);
99
+ this._rect = null;
100
+ this.uiObject = null;
101
+ this._stateManager = null;
102
+ if (this._color)
103
+ this._color = this._color.clone();
104
+ return this;
105
+ }
106
+ setState(state) {
107
+ this.makePanel();
108
+ if (this.uiObject) {
109
+ //@ts-ignore
110
+ this.uiObject.setState(state);
111
+ this?.markDirty();
112
+ }
113
+ }
114
+ setupState(state) {
115
+ this.makePanel();
116
+ if (this.uiObject) {
117
+ // @marwie : v7.x now have a concurrent state management in core mimicking html/css
118
+ // ie : (::firstChild::hover::disabled) where firstchild, hover and disabled are all on different channels
119
+ // In order to keep needle Raycaster and EventSystem intact, I added in v7 a SimpleStateBehavior, which acts as previously
120
+ if (!this._stateManager)
121
+ this._stateManager = new SimpleStateBehavior(this.uiObject);
122
+ //@ts-ignore
123
+ this.uiObject.setupState(state.state, state.attributes);
124
+ }
125
+ }
126
+ setOptions(opts) {
127
+ this.makePanel();
128
+ if (this.uiObject) {
129
+ //@ts-ignore
130
+ this.uiObject.set(opts);
131
+ // if (opts["backgroundColor"] !== undefined || opts["backgroundOpacity"] !== undefined)
132
+ // this.uiObject["updateBackgroundMaterial"]?.call(this.uiObject);
133
+ }
134
+ }
135
+ awake() {
136
+ super.awake();
137
+ this.makePanel();
138
+ // when _color is written to
139
+ onChange(this, "_color", () => scheduleAction(this, this.onColorChanged));
140
+ }
141
+ onEnable() {
142
+ super.onEnable();
143
+ if (this.uiObject) {
144
+ this.rectTransform.shadowComponent?.add(this.uiObject);
145
+ this.addShadowComponent(this.uiObject, this.rectTransform);
146
+ }
147
+ }
148
+ onDisable() {
149
+ super.onDisable();
150
+ if (this.uiObject)
151
+ this.removeShadowComponent();
152
+ }
153
+ _currentlyCreatingPanel = false;
154
+ makePanel() {
155
+ if (this.uiObject)
156
+ return;
157
+ if (this._currentlyCreatingPanel)
158
+ return;
159
+ this._currentlyCreatingPanel = true;
160
+ const offset = .015;
161
+ // if (this.Root) offset = .02 * (1 / this.Root.gameObject.scale.z);
162
+ const opts = {
163
+ backgroundColor: this.color,
164
+ backgroundOpacity: this.color.alpha,
165
+ offset: offset, // without a tiny offset we get z fighting
166
+ };
167
+ this.onBeforeCreate(opts);
168
+ this.applyEffects(opts);
169
+ this.onCreate(opts);
170
+ this.controlsChildLayout = false;
171
+ this._currentlyCreatingPanel = false;
172
+ this.onAfterCreated();
173
+ this.onColorChanged();
174
+ }
175
+ onBeforeCreate(_opts) { }
176
+ onCreate(opts) {
177
+ this.uiObject = this.rectTransform.createNewBlock(opts);
178
+ this.uiObject.name = this.name;
179
+ }
180
+ onAfterCreated() { }
181
+ applyEffects(opts, alpha = 1) {
182
+ const outline = this.gameObject?.getComponent(Outline);
183
+ if (outline) {
184
+ if (outline.effectDistance)
185
+ opts.borderWidth = Math.max(Math.abs(outline.effectDistance.x), Math.abs(outline.effectDistance.y));
186
+ if (outline.effectColor) {
187
+ opts.borderColor = outline.effectColor;
188
+ opts.borderOpacity = outline.effectColor.alpha * alpha;
189
+ }
190
+ }
191
+ }
192
+ /** used internally to ensure textures assigned to UI use linear encoding */
193
+ static textureCache = new Map();
194
+ async setTexture(tex) {
195
+ this.setOptions({ backgroundOpacity: 0 });
196
+ if (tex) {
197
+ // workaround for https://github.com/needle-tools/needle-engine-support/issues/109
198
+ // if (tex.colorSpace === SRGBColorSpace || !tex.colorSpace || true) {
199
+ if (Graphic.textureCache.has(tex)) {
200
+ tex = Graphic.textureCache.get(tex);
201
+ }
202
+ else {
203
+ if (tex.isRenderTargetTexture) {
204
+ // we can not clone the texture if it's a render target
205
+ // otherwise it won't be updated anymore in the UI
206
+ // TODO: below maskable graphic is flipped but settings a rendertexture results in the texture being upside down.
207
+ // we should remove the flip below (scale.y *= -1) but this needs to be tested with all UI components
208
+ }
209
+ else {
210
+ const clone = tex.clone();
211
+ clone.colorSpace = LinearSRGBColorSpace;
212
+ Graphic.textureCache.set(tex, clone);
213
+ tex = clone;
214
+ }
215
+ }
216
+ // }
217
+ this.setOptions({ backgroundImage: tex, borderRadius: 0, backgroundOpacity: this.color.alpha, backgroundSize: "stretch" });
218
+ NEEDLE_progressive.assignTextureLOD(tex, 0).then(res => {
219
+ if (res instanceof Texture) {
220
+ if (tex)
221
+ Graphic.textureCache.set(tex, res);
222
+ this.setOptions({ backgroundImage: res });
223
+ this.markDirty();
224
+ }
225
+ });
226
+ }
227
+ else {
228
+ this.setOptions({ backgroundImage: undefined, borderRadius: 0, backgroundOpacity: this.color.alpha });
229
+ }
230
+ this.markDirty();
231
+ }
232
+ onAfterAddedToScene() {
233
+ super.onAfterAddedToScene();
234
+ if (this.shadowComponent) {
235
+ // @TODO: I think we dont even need this anymore and this leads to the offset being applied twice
236
+ //@ts-ignore
237
+ this.shadowComponent.offset = this.shadowComponent.position.z;
238
+ // console.log(this.shadowComponent);
239
+ // setTimeout(()=>{
240
+ // this.shadowComponent?.traverse(c => {
241
+ // console.log(c);
242
+ // if(c.material) c.material.depthTest = false;
243
+ // });
244
+ // },1000);
245
+ }
246
+ }
247
+ }
248
+ __decorate([
249
+ serializable(RGBAColor)
250
+ ], Graphic.prototype, "color", null);
251
+ __decorate([
252
+ serializable()
253
+ ], Graphic.prototype, "raycastTarget", void 0);
254
+ /**
255
+ * @category User Interface
256
+ * @group Components
257
+ */
258
+ export class MaskableGraphic extends Graphic {
259
+ _flippedObject = false;
260
+ onAfterCreated() {
261
+ // flip image
262
+ if (this.uiObject && !this._flippedObject) {
263
+ this._flippedObject = true;
264
+ this.uiObject.scale.y *= -1;
265
+ }
266
+ }
267
+ }
268
+ //# sourceMappingURL=Graphic.legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Graphic.legacy.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Graphic.legacy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type ContainerProperties } from "@pmndrs/uikit";
2
+ import { RGBAColor } from "../../engine/js-extensions/index.js";
3
+ import { BaseUikitComponent } from "./BaseUikitComponent.js";
4
+ /**
5
+ * GraphicUikit is a UI component that displays a colored rectangle using pmndrs/uikit.
6
+ * It's the uikit equivalent of the Graphic component.
7
+ *
8
+ * @summary Display a colored rectangle in the UI using uikit
9
+ * @category User Interface
10
+ * @group Components
11
+ */
12
+ export declare class GraphicUikit extends BaseUikitComponent {
13
+ get color(): RGBAColor;
14
+ set color(col: RGBAColor);
15
+ raycastTarget: boolean;
16
+ private _color;
17
+ private _sRGBColor;
18
+ protected getUikitProperties(): ContainerProperties;
19
+ private onColorChanged;
20
+ private updateColorForUikit;
21
+ }
@@ -0,0 +1,65 @@
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 { Color } from "three";
8
+ import { serializable } from "../../engine/engine_serialization_decorator.js";
9
+ import { RGBAColor } from "../../engine/js-extensions/index.js";
10
+ import { BaseUikitComponent } from "./BaseUikitComponent.js";
11
+ /**
12
+ * GraphicUikit is a UI component that displays a colored rectangle using pmndrs/uikit.
13
+ * It's the uikit equivalent of the Graphic component.
14
+ *
15
+ * @summary Display a colored rectangle in the UI using uikit
16
+ * @category User Interface
17
+ * @group Components
18
+ */
19
+ export class GraphicUikit extends BaseUikitComponent {
20
+ get color() {
21
+ if (!this._color)
22
+ this._color = new RGBAColor(1, 1, 1, 1);
23
+ return this._color;
24
+ }
25
+ set color(col) {
26
+ const changed = !this._color || this._color.r !== col.r || this._color.g !== col.g || this._color.b !== col.b || this._color.alpha !== col.alpha;
27
+ if (!changed)
28
+ return;
29
+ if (!this._color) {
30
+ this._color = new RGBAColor(1, 1, 1, 1);
31
+ }
32
+ this._color.copy(col);
33
+ this.onColorChanged();
34
+ }
35
+ raycastTarget = true;
36
+ _color = null;
37
+ _sRGBColor = new Color();
38
+ getUikitProperties() {
39
+ this.updateColorForUikit();
40
+ return {
41
+ backgroundColor: `#${this._sRGBColor.getHexString()}`,
42
+ backgroundOpacity: this._color?.alpha ?? 1,
43
+ };
44
+ }
45
+ onColorChanged() {
46
+ this.updateColorForUikit();
47
+ this.updateUikitProperties({
48
+ backgroundColor: `#${this._sRGBColor.getHexString()}`,
49
+ backgroundOpacity: this._color.alpha,
50
+ });
51
+ }
52
+ updateColorForUikit() {
53
+ if (this._color) {
54
+ this._sRGBColor.copy(this._color);
55
+ this._sRGBColor.convertLinearToSRGB();
56
+ }
57
+ }
58
+ }
59
+ __decorate([
60
+ serializable(RGBAColor)
61
+ ], GraphicUikit.prototype, "color", null);
62
+ __decorate([
63
+ serializable()
64
+ ], GraphicUikit.prototype, "raycastTarget", void 0);
65
+ //# sourceMappingURL=GraphicUikit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphicUikit.js","sourceRoot":"","sources":["../../../src/engine-components/ui/GraphicUikit.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,OAAO,YAAa,SAAQ,kBAAkB;IAGhD,IAAI,KAAK;QACL,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,GAAc;QACpB,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC;QACjJ,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAGD,aAAa,GAAY,IAAI,CAAC;IAEtB,MAAM,GAAc,IAAK,CAAC;IAC1B,UAAU,GAAU,IAAI,KAAK,EAAE,CAAC;IAE9B,kBAAkB;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO;YACH,eAAe,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE;YACrD,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC;SAC7C,CAAC;IACN,CAAC;IAEO,cAAc;QAClB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,qBAAqB,CAAC;YACvB,eAAe,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE;YACrD,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SACvC,CAAC,CAAC;IACP,CAAC;IAEO,mBAAmB;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;SACzC;IACL,CAAC;CACJ;AA1CG;IADC,YAAY,CAAC,SAAS,CAAC;yCAIvB;AAYD;IADC,YAAY,EAAE;mDACe"}
@@ -1 +1 @@
1
- {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Image.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { Texture } from 'three';
2
+ import { MaskableGraphic } from './Graphic.js';
3
+ declare class Sprite {
4
+ texture: Texture | null;
5
+ rect?: {
6
+ width: number;
7
+ height: number;
8
+ };
9
+ }
10
+ /**
11
+ * Image is a UI component that displays a sprite (2D image) in the user interface.
12
+ * You can set the image property to assign a texture to be displayed.
13
+ * The sprite can be customized with various properties such as color tinting and pixel density.
14
+ * @summary Display a 2D image in the UI
15
+ * @category User Interface
16
+ * @group Components
17
+ */
18
+ export declare class Image extends MaskableGraphic {
19
+ set image(img: Texture | null);
20
+ get image(): Texture | null;
21
+ get sprite(): Sprite | undefined;
22
+ set sprite(sprite: Sprite | undefined);
23
+ private _sprite?;
24
+ private pixelsPerUnitMultiplier;
25
+ private isBuiltinSprite;
26
+ protected onBeforeCreate(opts: any): void;
27
+ protected onAfterCreated(): void;
28
+ }
29
+ /**
30
+ * @category User Interface
31
+ * @group Components
32
+ */
33
+ export declare class RawImage extends MaskableGraphic {
34
+ get mainTexture(): Texture | undefined;
35
+ set mainTexture(texture: Texture | undefined);
36
+ private _mainTexture?;
37
+ protected onAfterCreated(): void;
38
+ }
39
+ export {};
@@ -0,0 +1,121 @@
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 { Texture } from 'three';
8
+ import { serializable } from '../../engine/engine_serialization_decorator.js';
9
+ import { MaskableGraphic } from './Graphic.js';
10
+ class Sprite {
11
+ texture = null;
12
+ rect;
13
+ }
14
+ __decorate([
15
+ serializable(Texture)
16
+ ], Sprite.prototype, "texture", void 0);
17
+ /**
18
+ * Image is a UI component that displays a sprite (2D image) in the user interface.
19
+ * You can set the image property to assign a texture to be displayed.
20
+ * The sprite can be customized with various properties such as color tinting and pixel density.
21
+ * @summary Display a 2D image in the UI
22
+ * @category User Interface
23
+ * @group Components
24
+ */
25
+ export class Image extends MaskableGraphic {
26
+ set image(img) {
27
+ if (!this.sprite)
28
+ this.sprite = new Sprite();
29
+ this.sprite.texture = img;
30
+ this.onAfterCreated();
31
+ }
32
+ get image() {
33
+ if (this.sprite)
34
+ return this.sprite.texture;
35
+ return null;
36
+ }
37
+ get sprite() {
38
+ return this._sprite;
39
+ }
40
+ set sprite(sprite) {
41
+ if (this._sprite === sprite)
42
+ return;
43
+ this._sprite = sprite;
44
+ this.onAfterCreated();
45
+ }
46
+ _sprite;
47
+ pixelsPerUnitMultiplier = 1;
48
+ isBuiltinSprite() {
49
+ const sprite = this.sprite;
50
+ switch (sprite?.texture?.name) {
51
+ case "InputFieldBackground":
52
+ case "UISprite":
53
+ case "Background":
54
+ case "Knob":
55
+ return true;
56
+ }
57
+ // this is a hack/workaround for production builds where the name of the sprite is missing
58
+ // need to remove this!!!!
59
+ if (!sprite?.texture?.name?.length && sprite?.texture?.image?.width === 32 && sprite?.texture?.image?.height === 32)
60
+ return true;
61
+ return false;
62
+ }
63
+ onBeforeCreate(opts) {
64
+ super.onBeforeCreate(opts);
65
+ if (this.isBuiltinSprite()) {
66
+ opts.borderRadius = 5 / this.pixelsPerUnitMultiplier;
67
+ if (this.sprite?.texture?.name === "Knob") {
68
+ opts.borderRadius = 999;
69
+ }
70
+ // opts.borderColor = new Color(.4, .4, .4);
71
+ // opts.borderOpacity = this.color.alpha;
72
+ // opts.borderWidth = .3;
73
+ }
74
+ }
75
+ onAfterCreated() {
76
+ if (!this.__didAwake)
77
+ return;
78
+ super.onAfterCreated();
79
+ // TODO: @swingingtom setting a built-in sprite at runtime doesnt update the image
80
+ if (this.isBuiltinSprite())
81
+ return;
82
+ this.setTexture(this.sprite?.texture);
83
+ }
84
+ }
85
+ __decorate([
86
+ serializable(Sprite)
87
+ ], Image.prototype, "sprite", null);
88
+ __decorate([
89
+ serializable()
90
+ ], Image.prototype, "pixelsPerUnitMultiplier", void 0);
91
+ /**
92
+ * @category User Interface
93
+ * @group Components
94
+ */
95
+ export class RawImage extends MaskableGraphic {
96
+ get mainTexture() {
97
+ return this._mainTexture;
98
+ }
99
+ set mainTexture(texture) {
100
+ if (this._mainTexture === texture)
101
+ return;
102
+ this._mainTexture = texture;
103
+ this.onAfterCreated();
104
+ }
105
+ _mainTexture;
106
+ onAfterCreated() {
107
+ if (!this.__didAwake)
108
+ return;
109
+ super.onAfterCreated();
110
+ // console.log(this);
111
+ // if (this.mainTexture) {
112
+ // this.mainTexture.flipY = true;
113
+ // this.mainTexture.needsUpdate = true;
114
+ // }
115
+ this.setTexture(this.mainTexture);
116
+ }
117
+ }
118
+ __decorate([
119
+ serializable(Texture)
120
+ ], RawImage.prototype, "mainTexture", null);
121
+ //# sourceMappingURL=Image.legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.legacy.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Image.legacy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { Texture } from "three";
2
+ import { type ContainerProperties } from "@pmndrs/uikit";
3
+ import { GraphicUikit } from "./GraphicUikit.js";
4
+ /**
5
+ * ImageUikit is a UI component that displays an image using pmndrs/uikit.
6
+ * It's the uikit equivalent of the Image/RawImage component.
7
+ *
8
+ * @summary Display an image in the UI using uikit
9
+ * @category User Interface
10
+ * @group Components
11
+ */
12
+ export declare class ImageUikit extends GraphicUikit {
13
+ get texture(): Texture | null;
14
+ set texture(tex: Texture | null);
15
+ private _texture;
16
+ private _uikitImageElement;
17
+ protected createUikitElement(): void;
18
+ protected getUikitProperties(): ContainerProperties;
19
+ private createImageElement;
20
+ private updateTexture;
21
+ onDestroy(): void;
22
+ }