@needle-tools/engine 5.0.0 → 5.1.0-experimental.0
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/components.needle.json +1 -1
- package/dist/generateMeshBVH.worker-DT9A2Hrc.js +1 -0
- package/dist/gltf-progressive-3BwW4ETO.min.js +10 -0
- package/dist/gltf-progressive-ByD1UX0A.umd.cjs +10 -0
- package/dist/{gltf-progressive-Cl167Vjx.js → gltf-progressive-DwWaVr0o.js} +412 -394
- package/dist/gltf-progressive.worker-DpfUjn1n.js +3 -0
- package/dist/{materialx-qPScBWhj.min.js → materialx-9KHBidZa.min.js} +1 -1
- package/dist/{materialx-4ApD6Vz5.js → materialx-BBDu8W5P.js} +1 -1
- package/dist/{materialx-D0XUnhBY.umd.cjs → materialx-hLP3E8AA.umd.cjs} +2 -2
- package/dist/{needle-engine.bundle-BAYLGumK.umd.cjs → needle-engine.bundle-BOAJ6UPK.umd.cjs} +123 -123
- package/dist/{needle-engine.bundle-CoEvMwYM.min.js → needle-engine.bundle-CVsBkUR2.min.js} +110 -110
- package/dist/{needle-engine.bundle-BDIyvCV6.js → needle-engine.bundle-TgPY0fGG.js} +2143 -2088
- package/dist/needle-engine.d.ts +80 -22
- package/dist/needle-engine.js +480 -476
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/{postprocessing-B_9sKVU7.min.js → postprocessing-BZfyAdCY.min.js} +1 -1
- package/dist/{postprocessing-WDc9WwI3.js → postprocessing-CXlA3QA6.js} +1 -1
- package/dist/{postprocessing-B2wb6pzI.umd.cjs → postprocessing-Dwy7Hz_T.umd.cjs} +38 -38
- package/dist/three-examples.js +4760 -3641
- package/dist/three-examples.min.js +17 -35
- package/dist/three-examples.umd.cjs +16 -34
- package/dist/three.js +48533 -28562
- package/dist/three.min.js +716 -502
- package/dist/three.umd.cjs +720 -506
- package/dist/{vendor-CntUvmJu.umd.cjs → vendor-BI4TX0aC.umd.cjs} +9 -9
- package/dist/{vendor-DPbfJJ4d.min.js → vendor-BgzAK9of.min.js} +1 -1
- package/dist/{vendor-vHLk8sXu.js → vendor-CwL-uvVy.js} +1 -1
- package/lib/engine/engine_animation.js +1 -1
- package/lib/engine/engine_animation.js.map +1 -1
- package/lib/engine/engine_audio.js.map +1 -1
- package/lib/engine/engine_context.js +3 -6
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_create_objects.js +0 -1
- package/lib/engine/engine_create_objects.js.map +1 -1
- package/lib/engine/engine_element.d.ts +113 -0
- package/lib/engine/engine_element.js +833 -0
- package/lib/engine/engine_element.js.map +1 -0
- package/lib/engine/engine_element_attributes.d.ts +72 -0
- package/lib/engine/engine_element_attributes.js +2 -0
- package/lib/engine/engine_element_attributes.js.map +1 -0
- package/lib/engine/engine_element_extras.d.ts +6 -0
- package/lib/engine/engine_element_extras.js +14 -0
- package/lib/engine/engine_element_extras.js.map +1 -0
- package/lib/engine/engine_element_loading.d.ts +44 -0
- package/lib/engine/engine_element_loading.js +350 -0
- package/lib/engine/engine_element_loading.js.map +1 -0
- package/lib/engine/engine_element_overlay.d.ts +21 -0
- package/lib/engine/engine_element_overlay.js +167 -0
- package/lib/engine/engine_element_overlay.js.map +1 -0
- package/lib/engine/engine_license.js.map +1 -1
- package/lib/engine/engine_pmrem.js +2 -2
- package/lib/engine/engine_pmrem.js.map +1 -1
- package/lib/engine/engine_scenetools.d.ts +62 -0
- package/lib/engine/engine_scenetools.js +337 -0
- package/lib/engine/engine_scenetools.js.map +1 -0
- package/lib/engine/engine_serialization_builtin_serializer.d.ts +1 -1
- package/lib/engine/engine_test_utils.d.ts +39 -0
- package/lib/engine/engine_test_utils.js +84 -0
- package/lib/engine/engine_test_utils.js.map +1 -0
- package/lib/engine/engine_three_utils.js.map +1 -1
- package/lib/engine/engine_time.js +4 -3
- package/lib/engine/engine_time.js.map +1 -1
- package/lib/engine/engine_ui.d.ts +25 -0
- package/lib/engine/engine_ui.dummy_canvas.d.ts +2 -0
- package/lib/engine/engine_ui.dummy_canvas.js +55 -0
- package/lib/engine/engine_ui.dummy_canvas.js.map +1 -0
- package/lib/engine/engine_ui.js +168 -0
- package/lib/engine/engine_ui.js.map +1 -0
- package/lib/engine/extensions/NEEDLE_lightmaps.js +2 -2
- package/lib/engine/extensions/NEEDLE_lightmaps.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_pmrem.d.ts +1 -1
- package/lib/engine/webcomponents/icons.js +3 -2
- package/lib/engine/webcomponents/icons.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.attributes.d.ts +69 -0
- package/lib/engine/webcomponents/needle-engine.attributes.js +2 -0
- package/lib/engine/webcomponents/needle-engine.attributes.js.map +1 -0
- package/lib/engine-components/AudioSource.js +1 -1
- package/lib/engine-components/AudioSource.js.map +1 -1
- package/lib/engine-components/Light.d.ts +3 -0
- package/lib/engine-components/Light.js +39 -31
- package/lib/engine-components/Light.js.map +1 -1
- package/lib/engine-components/OrbitControls.js +2 -1
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/SpriteRenderer.d.ts +1 -1
- package/lib/engine-components/VideoPlayer.d.ts +1 -1
- package/lib/engine-components/export/usdz/ThreeUSDZExporter.js.map +1 -1
- package/lib/engine-components/export/usdz/extensions/Animation.js +1 -0
- package/lib/engine-components/export/usdz/extensions/Animation.js.map +1 -1
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +1 -1
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -1
- package/lib/engine-components/particlesystem/ParticleSystem.d.ts +1 -1
- package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +1 -1
- package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -1
- package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
- package/lib/engine-components/ui/BaseUIComponent_Uikit.d.ts +54 -0
- package/lib/engine-components/ui/BaseUIComponent_Uikit.js +114 -0
- package/lib/engine-components/ui/BaseUIComponent_Uikit.js.map +1 -0
- package/lib/engine-components/ui/BaseUikitComponent.d.ts +54 -0
- package/lib/engine-components/ui/BaseUikitComponent.js +114 -0
- package/lib/engine-components/ui/BaseUikitComponent.js.map +1 -0
- package/lib/engine-components/ui/Button.legacy.d.ts +68 -0
- package/lib/engine-components/ui/Button.legacy.js +320 -0
- package/lib/engine-components/ui/Button.legacy.js.map +1 -0
- package/lib/engine-components/ui/ButtonUikit.d.ts +51 -0
- package/lib/engine-components/ui/ButtonUikit.js +187 -0
- package/lib/engine-components/ui/ButtonUikit.js.map +1 -0
- package/lib/engine-components/ui/Canvas.js +2 -2
- package/lib/engine-components/ui/Canvas.js.map +1 -1
- package/lib/engine-components/ui/Canvas.legacy.d.ts +76 -0
- package/lib/engine-components/ui/Canvas.legacy.js +409 -0
- package/lib/engine-components/ui/Canvas.legacy.js.map +1 -0
- package/lib/engine-components/ui/CanvasUikit.d.ts +68 -0
- package/lib/engine-components/ui/CanvasUikit.js +289 -0
- package/lib/engine-components/ui/CanvasUikit.js.map +1 -0
- package/lib/engine-components/ui/Graphic.d.ts +3 -3
- package/lib/engine-components/ui/Graphic.js +6 -2
- package/lib/engine-components/ui/Graphic.js.map +1 -1
- package/lib/engine-components/ui/Graphic.legacy.d.ts +55 -0
- package/lib/engine-components/ui/Graphic.legacy.js +268 -0
- package/lib/engine-components/ui/Graphic.legacy.js.map +1 -0
- package/lib/engine-components/ui/GraphicUikit.d.ts +21 -0
- package/lib/engine-components/ui/GraphicUikit.js +65 -0
- package/lib/engine-components/ui/GraphicUikit.js.map +1 -0
- package/lib/engine-components/ui/Image.js.map +1 -1
- package/lib/engine-components/ui/Image.legacy.d.ts +39 -0
- package/lib/engine-components/ui/Image.legacy.js +121 -0
- package/lib/engine-components/ui/Image.legacy.js.map +1 -0
- package/lib/engine-components/ui/ImageUikit.d.ts +22 -0
- package/lib/engine-components/ui/ImageUikit.js +97 -0
- package/lib/engine-components/ui/ImageUikit.js.map +1 -0
- package/lib/engine-components/ui/RenderMode.d.ts +14 -0
- package/lib/engine-components/ui/RenderMode.js +16 -0
- package/lib/engine-components/ui/RenderMode.js.map +1 -0
- package/lib/engine-components/ui/Text.d.ts +64 -11
- package/lib/engine-components/ui/Text.js +154 -45
- package/lib/engine-components/ui/Text.js.map +1 -1
- package/lib/engine-components/ui/Text.legacy.d.ts +81 -0
- package/lib/engine-components/ui/Text.legacy.js +548 -0
- package/lib/engine-components/ui/Text.legacy.js.map +1 -0
- package/lib/engine-components/ui/TextUikit.d.ts +42 -0
- package/lib/engine-components/ui/TextUikit.js +164 -0
- package/lib/engine-components/ui/TextUikit.js.map +1 -0
- package/lib/engine-components/ui/index.d.ts +1 -0
- package/lib/engine-components/ui/index.js +1 -0
- package/lib/engine-components/ui/index.js.map +1 -1
- package/lib/engine-components/webxr/WebARCameraBackground.d.ts +1 -1
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.d.ts +6 -0
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js +46 -0
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js.map +1 -0
- package/package.json +4 -4
- package/plugins/common/buildinfo.d.ts +6 -0
- package/plugins/vite/ai.d.ts +7 -8
- package/plugins/vite/ai.js +95 -20
- package/plugins/vite/alias.js +6 -0
- package/plugins/vite/dependencies.js +7 -0
- package/src/engine/engine_animation.ts +1 -1
- package/src/engine/engine_audio.ts +1 -1
- package/src/engine/engine_context.ts +3 -6
- package/src/engine/engine_create_objects.ts +0 -1
- package/src/engine/engine_license.ts +0 -2
- package/src/engine/engine_pmrem.ts +3 -3
- package/src/engine/engine_three_utils.ts +2 -2
- package/src/engine/engine_time.ts +4 -3
- package/src/engine/extensions/NEEDLE_lightmaps.ts +3 -3
- package/src/engine/webcomponents/icons.ts +3 -2
- package/src/engine-components/AudioSource.ts +1 -1
- package/src/engine-components/Light.ts +39 -31
- package/src/engine-components/OrbitControls.ts +2 -2
- package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +2 -2
- package/src/engine-components/export/usdz/extensions/Animation.ts +6 -5
- package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +1 -1
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +3 -3
- package/src/engine-components/timeline/TimelineTracks.ts +2 -2
- package/src/engine-components/ui/Canvas.ts +2 -2
- package/src/engine-components/ui/Graphic.ts +7 -3
- package/src/engine-components/ui/Image.ts +1 -1
- package/src/engine-components/ui/Text.ts +170 -52
- package/src/engine-components/ui/index.ts +2 -1
- package/dist/generateMeshBVH.worker-DiCnZlf3.js +0 -21
- package/dist/gltf-progressive-BryRjllq.min.js +0 -10
- package/dist/gltf-progressive-DJBMx-zB.umd.cjs +0 -10
- package/dist/gltf-progressive.worker-BqODMeeW.js +0 -23
|
@@ -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":";;;;;;AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,MAAM;IAER,OAAO,GAAmB,IAAI,CAAC;IAE/B,IAAI,CAAqC;CAC5C;AAHG;IADC,YAAY,CAAC,OAAO,CAAC;uCACS;AAKnC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,KAAM,SAAQ,eAAe;IAEtC,IAAI,KAAK,CAAC,GAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK;QACL,IAAI,IAAI,CAAC,MAAM;YACX,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,IAAI,MAAM,CAAC,MAA0B;QACjC,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM;YAAE,OAAO;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,OAAO,CAAU;IAGjB,uBAAuB,GAAW,CAAC,CAAC;IAEpC,eAAe;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,QAAQ,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC5B,KAAK,sBAAsB,CAAC;YAC5B,KAAK,UAAU,CAAC;YAChB,KAAK,YAAY,CAAC;YAClB,KAAK,MAAM;gBACP,OAAO,IAAI,CAAC;QACpB,CAAC;QACD,0FAA0F;QAC1F,0BAA0B;QAC1B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,
|
|
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
|
+
}
|