@needle-tools/engine 3.2.15-alpha → 3.3.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.
- package/CHANGELOG.md +13 -0
- package/dist/needle-engine.js +42120 -35732
- package/dist/needle-engine.min.js +687 -495
- package/dist/needle-engine.umd.cjs +689 -497
- package/lib/engine/codegen/register_types.js +4 -2
- package/lib/engine/codegen/register_types.js.map +1 -1
- package/lib/engine/engine_addressables.d.ts +3 -3
- package/lib/engine/engine_addressables.js +30 -9
- package/lib/engine/engine_addressables.js.map +1 -1
- package/lib/engine/engine_element.js +1 -1
- package/lib/engine/engine_element.js.map +1 -1
- package/lib/engine/engine_gameobject.d.ts +2 -1
- package/lib/engine/engine_gameobject.js +17 -0
- package/lib/engine/engine_gameobject.js.map +1 -1
- package/lib/engine/engine_input.js +10 -0
- package/lib/engine/engine_input.js.map +1 -1
- package/lib/engine/engine_math.d.ts +4 -0
- package/lib/engine/engine_math.js +6 -0
- package/lib/engine/engine_math.js.map +1 -1
- package/lib/engine-components/AnimatorController.js +7 -2
- package/lib/engine-components/AnimatorController.js.map +1 -1
- package/lib/engine-components/OrbitControls.js +13 -4
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/TransformGizmo.d.ts +8 -4
- package/lib/engine-components/TransformGizmo.js +62 -63
- package/lib/engine-components/TransformGizmo.js.map +1 -1
- package/lib/engine-components/codegen/components.d.ts +2 -1
- package/lib/engine-components/codegen/components.js +2 -1
- package/lib/engine-components/codegen/components.js.map +1 -1
- package/lib/engine-components/ui/Button.js +9 -5
- package/lib/engine-components/ui/Button.js.map +1 -1
- package/lib/engine-components/ui/Canvas.d.ts +13 -6
- package/lib/engine-components/ui/Canvas.js +101 -37
- package/lib/engine-components/ui/Canvas.js.map +1 -1
- package/lib/engine-components/ui/EventSystem.d.ts +6 -0
- package/lib/engine-components/ui/EventSystem.js +4 -4
- package/lib/engine-components/ui/EventSystem.js.map +1 -1
- package/lib/engine-components/ui/Graphic.d.ts +5 -2
- package/lib/engine-components/ui/Graphic.js +38 -7
- package/lib/engine-components/ui/Graphic.js.map +1 -1
- package/lib/engine-components/ui/Image.d.ts +1 -0
- package/lib/engine-components/ui/Image.js +10 -1
- package/lib/engine-components/ui/Image.js.map +1 -1
- package/lib/engine-components/ui/InputField.d.ts +1 -0
- package/lib/engine-components/ui/InputField.js +8 -0
- package/lib/engine-components/ui/InputField.js.map +1 -1
- package/lib/engine-components/ui/Interfaces.d.ts +8 -0
- package/lib/engine-components/ui/Outline.d.ts +7 -0
- package/lib/engine-components/ui/Outline.js +21 -0
- package/lib/engine-components/ui/Outline.js.map +1 -0
- package/lib/engine-components/ui/RectTransform.d.ts +29 -11
- package/lib/engine-components/ui/RectTransform.js +178 -46
- package/lib/engine-components/ui/RectTransform.js.map +1 -1
- package/lib/engine-components/ui/Text.d.ts +13 -10
- package/lib/engine-components/ui/Text.js +177 -246
- package/lib/engine-components/ui/Text.js.map +1 -1
- package/lib/engine-components/utils/LookAt.d.ts +7 -0
- package/lib/engine-components/utils/LookAt.js +29 -0
- package/lib/engine-components/utils/LookAt.js.map +1 -0
- package/lib/engine-components/webxr/WebXRImageTracking.d.ts +8 -0
- package/lib/engine-components/webxr/WebXRImageTracking.js +79 -3
- package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/engine/codegen/register_types.js +4 -2
- package/src/engine/engine_addressables.ts +28 -10
- package/src/engine/engine_element.ts +1 -1
- package/src/engine/engine_gameobject.ts +18 -1
- package/src/engine/engine_input.ts +11 -0
- package/src/engine/engine_math.ts +10 -0
- package/src/engine-components/AnimatorController.ts +7 -1
- package/src/engine-components/OrbitControls.ts +14 -6
- package/src/engine-components/TransformGizmo.ts +64 -70
- package/src/engine-components/codegen/components.ts +2 -1
- package/src/engine-components/ui/Button.ts +14 -9
- package/src/engine-components/ui/Canvas.ts +104 -40
- package/src/engine-components/ui/EventSystem.ts +16 -9
- package/src/engine-components/ui/Graphic.ts +44 -8
- package/src/engine-components/ui/Image.ts +10 -1
- package/src/engine-components/ui/InputField.ts +9 -1
- package/src/engine-components/ui/Interfaces.ts +12 -0
- package/src/engine-components/ui/Outline.ts +13 -0
- package/src/engine-components/ui/RectTransform.ts +203 -60
- package/src/engine-components/ui/Text.ts +284 -265
- package/src/engine-components/utils/LookAt.ts +21 -0
- package/src/engine-components/webxr/WebXRImageTracking.ts +85 -10
- package/lib/engine-components/ui/Keyboard.d.ts +0 -31
- package/lib/engine-components/ui/Keyboard.js +0 -178
- package/lib/engine-components/ui/Keyboard.js.map +0 -1
- package/src/engine-components/ui/Keyboard.ts +0 -204
|
@@ -6,13 +6,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { Graphic } from './Graphic';
|
|
8
8
|
import * as ThreeMeshUI from 'three-mesh-ui';
|
|
9
|
-
import { $shadowDomOwner } from "./BaseUIComponent";
|
|
10
9
|
import { Color } from 'three';
|
|
11
|
-
import { FrameEvent } from '../../engine/engine_setup';
|
|
12
10
|
import { updateRenderSettings } from './Utils';
|
|
13
11
|
import { Canvas } from './Canvas';
|
|
14
12
|
import { serializable } from '../../engine/engine_serialization_decorator';
|
|
15
|
-
import { getParam
|
|
13
|
+
import { getParam } from '../../engine/engine_utils';
|
|
16
14
|
const debug = getParam("debugtext");
|
|
17
15
|
export var TextAnchor;
|
|
18
16
|
(function (TextAnchor) {
|
|
@@ -36,7 +34,7 @@ var HorizontalWrapMode;
|
|
|
36
34
|
HorizontalWrapMode[HorizontalWrapMode["Wrap"] = 0] = "Wrap";
|
|
37
35
|
HorizontalWrapMode[HorizontalWrapMode["Overflow"] = 1] = "Overflow";
|
|
38
36
|
})(HorizontalWrapMode || (HorizontalWrapMode = {}));
|
|
39
|
-
var FontStyle;
|
|
37
|
+
export var FontStyle;
|
|
40
38
|
(function (FontStyle) {
|
|
41
39
|
FontStyle[FontStyle["Normal"] = 0] = "Normal";
|
|
42
40
|
FontStyle[FontStyle["Bold"] = 1] = "Bold";
|
|
@@ -57,86 +55,78 @@ export class Text extends Graphic {
|
|
|
57
55
|
}
|
|
58
56
|
set text(val) {
|
|
59
57
|
this._text = val;
|
|
60
|
-
|
|
61
|
-
this.createText(val, this.getTextOpts(), this.supportRichText);
|
|
62
|
-
}
|
|
63
|
-
if (this._textMeshUi) {
|
|
64
|
-
if (this._textMeshUi.length > 1) {
|
|
65
|
-
this.requestRebuild();
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
//@ts-ignore
|
|
69
|
-
this._textMeshUi[0].set({ content: val });
|
|
70
|
-
this.markDirty();
|
|
71
|
-
}
|
|
58
|
+
this.feedText(this.text, this.supportRichText);
|
|
72
59
|
}
|
|
73
60
|
set_text(val) {
|
|
74
61
|
this.text = val;
|
|
75
62
|
}
|
|
76
|
-
get fontSize() {
|
|
63
|
+
get fontSize() {
|
|
64
|
+
return this._fontSize;
|
|
65
|
+
}
|
|
77
66
|
set fontSize(val) {
|
|
67
|
+
// Setting that kind of property in a parent, would cascade to each 'non-overrided' children.
|
|
78
68
|
this._fontSize = val;
|
|
79
|
-
|
|
80
|
-
if (this._textMeshUi.length > 1) {
|
|
81
|
-
this.requestRebuild();
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
//@ts-ignore
|
|
85
|
-
this._textMeshUi[0].set({ fontSize: val });
|
|
86
|
-
this.markDirty();
|
|
87
|
-
}
|
|
69
|
+
this.uiObject?.set({ fontSize: val });
|
|
88
70
|
}
|
|
89
71
|
onColorChanged() {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
//@ts-ignore
|
|
97
|
-
this._textMeshUi[0].set({ fontColor: col, fontOpacity: col.alpha });
|
|
98
|
-
this.markDirty();
|
|
72
|
+
this.uiObject?.set({ color: this.color, fontOpacity: this.color.alpha });
|
|
73
|
+
}
|
|
74
|
+
onParentRectTransformChanged() {
|
|
75
|
+
super.onParentRectTransformChanged();
|
|
76
|
+
if (this.uiObject) {
|
|
77
|
+
this.updateOverflow();
|
|
99
78
|
}
|
|
100
79
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
this._isWaitingForRebuild = true,
|
|
106
|
-
this.startCoroutine(this.rebuildDelayedRoutine(), FrameEvent.EarlyUpdate);
|
|
80
|
+
onBeforeRender() {
|
|
81
|
+
if (this.uiObject && this.Root.screenspace) {
|
|
82
|
+
this.updateOverflow();
|
|
83
|
+
}
|
|
107
84
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
this._textMeshUi.length = 0;
|
|
85
|
+
updateOverflow() {
|
|
86
|
+
// HACK: force the text overflow to update
|
|
87
|
+
const overflow = this.uiObject?._overflow;
|
|
88
|
+
if (overflow) {
|
|
89
|
+
overflow._needsUpdate = true;
|
|
90
|
+
this.markDirty();
|
|
115
91
|
}
|
|
116
|
-
this.createText(this.text, this.getTextOpts(), this.supportRichText);
|
|
117
|
-
this.markDirty();
|
|
118
92
|
}
|
|
119
93
|
onCreate(_opts) {
|
|
120
94
|
if (debug)
|
|
121
95
|
console.log(this);
|
|
122
|
-
|
|
123
|
-
|
|
96
|
+
if (this.horizontalOverflow == HorizontalWrapMode.Overflow) {
|
|
97
|
+
// Only line characters in the textContent (\n,\r\t) would be able to multiline the text
|
|
98
|
+
_opts.whiteSpace = 'pre';
|
|
99
|
+
}
|
|
100
|
+
if (this.verticalOverflow == VerticalWrapMode.Truncate) {
|
|
124
101
|
this.context.renderer.localClippingEnabled = true;
|
|
102
|
+
_opts.overflow = 'hidden';
|
|
103
|
+
}
|
|
104
|
+
// @marwie : this combination is currently KO. See sample "Overflow Overview"
|
|
105
|
+
if (this.horizontalOverflow == HorizontalWrapMode.Overflow && this.verticalOverflow == VerticalWrapMode.Truncate) {
|
|
106
|
+
// This could fix this combination, but would require anchors updates to replace element
|
|
107
|
+
// _opts.width = 'auto';
|
|
108
|
+
}
|
|
109
|
+
_opts.lineHeight = this.lineSpacing;
|
|
110
|
+
// @marwie : Should be fixed. Currently _opts are always fed with :
|
|
111
|
+
// backgroundOpacity : color.opacity
|
|
112
|
+
// backgroundColor : color
|
|
113
|
+
delete _opts.backgroundOpacity;
|
|
114
|
+
delete _opts.backgroundColor;
|
|
115
|
+
// helper to show bounds of text element
|
|
116
|
+
if (debug) {
|
|
117
|
+
_opts.backgroundColor = 0xff9900;
|
|
118
|
+
_opts.backgroundOpacity = 0.5;
|
|
119
|
+
}
|
|
125
120
|
const rt = this.rectTransform;
|
|
126
|
-
//
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
// this can hopefully be removed once this is fixed/improved: https://github.com/felixmariotto/three-mesh-ui/issues/168
|
|
133
|
-
this._textContainer = this.uiObject = this.createBlock(rt, hideOverflow, null, true);
|
|
134
|
-
this.createText(this.text, this.getTextOpts(), this.supportRichText);
|
|
135
|
-
if (this.uiObject) {
|
|
136
|
-
//@ts-ignore
|
|
137
|
-
// this._container.width += this.fontSize * .333; // avoid word wrapping
|
|
121
|
+
// Texts now support both options, block and inline, and inline has all default to inherit
|
|
122
|
+
_opts = { ..._opts, ...this.getTextOpts() };
|
|
123
|
+
this.getAlignment(_opts);
|
|
124
|
+
if (debug) {
|
|
125
|
+
_opts.backgroundColor = Math.random() * 0xffffff;
|
|
126
|
+
_opts.backgroundOpacity = 0.1;
|
|
138
127
|
}
|
|
139
|
-
this.uiObject =
|
|
128
|
+
this.uiObject = rt.createNewText(_opts);
|
|
129
|
+
this.feedText(this.text, this.supportRichText);
|
|
140
130
|
}
|
|
141
131
|
onAfterAddedToScene() {
|
|
142
132
|
super.onAfterAddedToScene();
|
|
@@ -145,16 +135,13 @@ export class Text extends Graphic {
|
|
|
145
135
|
_text = "";
|
|
146
136
|
_fontSize = 12;
|
|
147
137
|
_textMeshUi = null;
|
|
148
|
-
_textContainer = null;
|
|
149
138
|
getTextOpts() {
|
|
150
139
|
let fontSize = this.fontSize;
|
|
151
140
|
// if (this.canvas) {
|
|
152
141
|
// fontSize /= this.canvas?.scaleFactor;
|
|
153
142
|
// }
|
|
154
|
-
// @TODO : THH check for changes. fontColor => color?
|
|
155
143
|
const textOpts = {
|
|
156
|
-
|
|
157
|
-
fontColor: this.color,
|
|
144
|
+
color: this.color,
|
|
158
145
|
fontOpacity: this.color.alpha,
|
|
159
146
|
fontSize: fontSize,
|
|
160
147
|
fontKerning: "normal",
|
|
@@ -167,177 +154,105 @@ export class Text extends Graphic {
|
|
|
167
154
|
this._didHandleTextRenderOnTop = false;
|
|
168
155
|
if (this.uiObject) {
|
|
169
156
|
// @ts-ignore
|
|
170
|
-
|
|
171
|
-
|
|
157
|
+
// @TODO : Evaluate the need of keeping it anonymous.
|
|
158
|
+
// From v7.x afterUpdate can be removed but requires a reference
|
|
159
|
+
this.uiObject.addAfterUpdate(() => {
|
|
172
160
|
// We need to update the shadow owner when the text updates
|
|
173
161
|
// because once the font has loaded we get new children (a new mesh)
|
|
174
|
-
// which is the text, it needs to be linked back to this component
|
|
162
|
+
// which is the text, it needs to be linked back to this component
|
|
175
163
|
// to be properly handled by the EventSystem
|
|
176
164
|
// since the EventSystem looks for shadow component owners to handle events
|
|
177
165
|
this.setShadowComponentOwner(this.uiObject);
|
|
178
166
|
this.markDirty();
|
|
179
|
-
};
|
|
167
|
+
});
|
|
180
168
|
}
|
|
181
169
|
setTimeout(() => this.markDirty(), 10);
|
|
182
170
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
const opts = {};
|
|
186
|
-
// @TODO : THH would require update for 7.x
|
|
187
|
-
opts.hiddenOverflow = hideOverflow;
|
|
188
|
-
// @TODO : THH would require update for 7.x
|
|
189
|
-
opts.interLine = (this.lineSpacing - 1) * this.fontSize * 1.333;
|
|
190
|
-
this.getAlignment(opts, isTextIntermediate);
|
|
191
|
-
const block = rt.createNewBlock(opts);
|
|
192
|
-
// The text block should never write depth to avoid z-fighting
|
|
193
|
-
const mat = block["backgroundMaterial"];
|
|
194
|
-
if (mat)
|
|
195
|
-
mat.depthWrite = false;
|
|
196
|
-
if (content) {
|
|
197
|
-
if (Array.isArray(content)) {
|
|
198
|
-
block.add(...content);
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
block.add(content);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
return block;
|
|
205
|
-
}
|
|
206
|
-
getAlignment(opts, isTextIntermediate = false) {
|
|
207
|
-
if (!isTextIntermediate) {
|
|
208
|
-
opts.contentDirection = "row";
|
|
209
|
-
switch (this.alignment) {
|
|
210
|
-
case TextAnchor.UpperLeft:
|
|
211
|
-
case TextAnchor.MiddleLeft:
|
|
212
|
-
case TextAnchor.LowerLeft:
|
|
213
|
-
opts.textAlign = "left";
|
|
214
|
-
break;
|
|
215
|
-
case TextAnchor.UpperCenter:
|
|
216
|
-
case TextAnchor.MiddleCenter:
|
|
217
|
-
case TextAnchor.LowerCenter:
|
|
218
|
-
opts.textAlign = "center";
|
|
219
|
-
break;
|
|
220
|
-
case TextAnchor.UpperRight:
|
|
221
|
-
case TextAnchor.MiddleRight:
|
|
222
|
-
case TextAnchor.LowerRight:
|
|
223
|
-
opts.textAlign = "right";
|
|
224
|
-
break;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
171
|
+
getAlignment(opts) {
|
|
172
|
+
opts.flexDirection = "column";
|
|
227
173
|
switch (this.alignment) {
|
|
228
|
-
// @info ThreeMeshUI remaining alignment : space-between|space-around|"stretch(experimental)"
|
|
229
|
-
default:
|
|
230
174
|
case TextAnchor.UpperLeft:
|
|
231
|
-
case TextAnchor.UpperCenter:
|
|
232
|
-
case TextAnchor.UpperRight:
|
|
233
|
-
opts.justifyContent = "start";
|
|
234
|
-
break;
|
|
235
175
|
case TextAnchor.MiddleLeft:
|
|
236
|
-
case TextAnchor.MiddleCenter:
|
|
237
|
-
case TextAnchor.MiddleRight:
|
|
238
|
-
opts.justifyContent = "center";
|
|
239
|
-
break;
|
|
240
176
|
case TextAnchor.LowerLeft:
|
|
177
|
+
opts.textAlign = "left";
|
|
178
|
+
break;
|
|
179
|
+
case TextAnchor.UpperCenter:
|
|
180
|
+
case TextAnchor.MiddleCenter:
|
|
241
181
|
case TextAnchor.LowerCenter:
|
|
182
|
+
opts.textAlign = "center";
|
|
183
|
+
break;
|
|
184
|
+
case TextAnchor.UpperRight:
|
|
185
|
+
case TextAnchor.MiddleRight:
|
|
242
186
|
case TextAnchor.LowerRight:
|
|
243
|
-
opts.
|
|
187
|
+
opts.textAlign = "right";
|
|
244
188
|
break;
|
|
245
189
|
}
|
|
246
|
-
// @TODO : THH evaluate this is still useful. In case of texts, horizontal alignments are made with textAlign
|
|
247
190
|
switch (this.alignment) {
|
|
191
|
+
default:
|
|
248
192
|
case TextAnchor.UpperLeft:
|
|
249
|
-
case TextAnchor.
|
|
250
|
-
case TextAnchor.
|
|
193
|
+
case TextAnchor.UpperCenter:
|
|
194
|
+
case TextAnchor.UpperRight:
|
|
251
195
|
opts.alignItems = "start";
|
|
252
196
|
break;
|
|
253
|
-
case TextAnchor.
|
|
197
|
+
case TextAnchor.MiddleLeft:
|
|
254
198
|
case TextAnchor.MiddleCenter:
|
|
255
|
-
case TextAnchor.
|
|
199
|
+
case TextAnchor.MiddleRight:
|
|
256
200
|
opts.alignItems = "center";
|
|
257
201
|
break;
|
|
258
|
-
case TextAnchor.
|
|
259
|
-
case TextAnchor.
|
|
202
|
+
case TextAnchor.LowerLeft:
|
|
203
|
+
case TextAnchor.LowerCenter:
|
|
260
204
|
case TextAnchor.LowerRight:
|
|
261
205
|
opts.alignItems = "end";
|
|
262
206
|
break;
|
|
263
207
|
}
|
|
264
208
|
return opts;
|
|
265
209
|
}
|
|
266
|
-
|
|
267
|
-
if (
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
const container = this._textMeshUi[0].parent;
|
|
272
|
-
if (!container)
|
|
273
|
-
return;
|
|
274
|
-
//@ts-ignore
|
|
275
|
-
if (container.lines) {
|
|
276
|
-
//@ts-ignore
|
|
277
|
-
let newWidth = container.lines.reduce((accu, line) => { return accu + line.width; }, 0);
|
|
278
|
-
//@ts-ignore
|
|
279
|
-
newWidth += container.getFontSize() * 5;
|
|
280
|
-
//@ts-ignore
|
|
281
|
-
newWidth += (container.padding * 2 || 0);
|
|
282
|
-
newWidth += this.fontSize * 1.5;
|
|
283
|
-
// TODO: handle alignment!
|
|
284
|
-
// const pos = container.position;
|
|
285
|
-
// pos.x = this.gameObject.position.x * -.01 + newWidth * .5 - this.rect.sizeDelta.x * .005;
|
|
286
|
-
// this._textMeshUi.set({ position: pos });
|
|
287
|
-
//@ts-ignore
|
|
288
|
-
container.set({ width: newWidth });
|
|
289
|
-
this.ensureShadowComponentOwner();
|
|
290
|
-
}
|
|
291
|
-
}, 1);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
ensureShadowComponentOwner() {
|
|
295
|
-
if (this.shadowComponent) {
|
|
296
|
-
this.shadowComponent.traverse(c => {
|
|
297
|
-
if (c[$shadowDomOwner] === undefined)
|
|
298
|
-
c[$shadowDomOwner] = this;
|
|
299
|
-
});
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
createText(text, opts, richText) {
|
|
303
|
-
if (!text || text.length <= 0)
|
|
304
|
-
return;
|
|
210
|
+
feedText(text, richText) {
|
|
211
|
+
// if (!text || text.length <= 0) return;
|
|
212
|
+
// if (!text ) return;
|
|
213
|
+
if (!this.uiObject)
|
|
214
|
+
return null;
|
|
305
215
|
if (!this._textMeshUi)
|
|
306
216
|
this._textMeshUi = [];
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
this.
|
|
313
|
-
if (this._textContainer) {
|
|
314
|
-
this._textContainer.add(element);
|
|
315
|
-
}
|
|
217
|
+
// this.uiObject.textContent = text;
|
|
218
|
+
// return ;
|
|
219
|
+
if (!richText || text.length === 0) {
|
|
220
|
+
//@TODO: @swingingtom how would the text content be set?
|
|
221
|
+
//@ts-ignore
|
|
222
|
+
this.uiObject.textContent = text;
|
|
316
223
|
}
|
|
317
224
|
else {
|
|
318
225
|
let currentTag = this.getNextTag(text);
|
|
319
226
|
if (!currentTag) {
|
|
320
|
-
|
|
227
|
+
//@TODO: @swingingtom how would the text content be set?
|
|
228
|
+
//@ts-ignore
|
|
229
|
+
return this.uiObject.textContent = text;
|
|
321
230
|
}
|
|
322
231
|
else if (currentTag.startIndex > 0) {
|
|
323
|
-
this.
|
|
232
|
+
this.uiObject.add(new ThreeMeshUI.Inline({ textContent: text.substring(0, currentTag.startIndex), color: 'inherit' }));
|
|
324
233
|
}
|
|
325
234
|
const stackArray = [];
|
|
326
235
|
while (currentTag) {
|
|
327
236
|
const next = this.getNextTag(text, currentTag.endIndex);
|
|
237
|
+
const opts = {
|
|
238
|
+
fontFamily: this.uiObject?.get('fontFamily'),
|
|
239
|
+
color: 'inherit',
|
|
240
|
+
textContent: ""
|
|
241
|
+
};
|
|
328
242
|
if (next) {
|
|
329
|
-
|
|
243
|
+
opts.textContent = this.getText(text, currentTag, next);
|
|
330
244
|
this.handleTag(currentTag, opts, stackArray);
|
|
331
|
-
this.
|
|
245
|
+
this.uiObject?.add(new ThreeMeshUI.Inline(opts));
|
|
332
246
|
}
|
|
333
247
|
else {
|
|
334
|
-
|
|
248
|
+
opts.textContent = text.substring(currentTag.endIndex);
|
|
335
249
|
this.handleTag(currentTag, opts, stackArray);
|
|
336
|
-
this.
|
|
250
|
+
this.uiObject?.add(new ThreeMeshUI.Inline(opts));
|
|
337
251
|
}
|
|
338
252
|
currentTag = next;
|
|
339
253
|
}
|
|
340
254
|
}
|
|
255
|
+
return null;
|
|
341
256
|
}
|
|
342
257
|
_didHandleTextRenderOnTop = false;
|
|
343
258
|
handleTextRenderOnTop() {
|
|
@@ -347,12 +262,18 @@ export class Text extends Graphic {
|
|
|
347
262
|
this.startCoroutine(this.renderOnTopCoroutine());
|
|
348
263
|
}
|
|
349
264
|
// waits for all the text objects to be ready to set the render on top setting
|
|
265
|
+
// @THH : this isn't true anymore. We can set mesh and material properties before their counterparts are created.
|
|
266
|
+
// Values would automatically be passed when created. Not sure for depthWrite but it can be added;
|
|
350
267
|
*renderOnTopCoroutine() {
|
|
351
268
|
if (!this.canvas)
|
|
352
269
|
return;
|
|
353
270
|
const updatedRendering = [];
|
|
354
271
|
const canvas = this.canvas;
|
|
355
|
-
const settings = {
|
|
272
|
+
const settings = {
|
|
273
|
+
renderOnTop: canvas.renderOnTop,
|
|
274
|
+
depthWrite: canvas.depthWrite,
|
|
275
|
+
doubleSided: canvas.doubleSided
|
|
276
|
+
};
|
|
356
277
|
while (true) {
|
|
357
278
|
let isWaitingForElementToUpdate = false;
|
|
358
279
|
if (this._textMeshUi) {
|
|
@@ -380,33 +301,31 @@ export class Text extends Graphic {
|
|
|
380
301
|
// console.log(tag);
|
|
381
302
|
if (!tag.isEndTag) {
|
|
382
303
|
if (tag.type.includes("color")) {
|
|
383
|
-
const stackEntry = new TagStackEntry(tag, {
|
|
304
|
+
const stackEntry = new TagStackEntry(tag, { color: opts.color });
|
|
384
305
|
stackArray.push(stackEntry);
|
|
385
306
|
if (tag.type.length > 6) // color=
|
|
386
307
|
{
|
|
387
|
-
const col = tag.type.substring(
|
|
388
|
-
opts.
|
|
308
|
+
const col = parseInt("0x" + tag.type.substring(7));
|
|
309
|
+
opts.color = col;
|
|
389
310
|
}
|
|
390
311
|
else {
|
|
391
312
|
// if it does not contain a color it is white
|
|
392
|
-
opts.
|
|
313
|
+
opts.color = new Color(1, 1, 1);
|
|
393
314
|
}
|
|
394
315
|
}
|
|
395
316
|
else if (tag.type == "b") {
|
|
317
|
+
this.setFont(opts, FontStyle.Bold);
|
|
396
318
|
const stackEntry = new TagStackEntry(tag, {
|
|
397
|
-
|
|
398
|
-
fontTexture: opts.fontTexture,
|
|
319
|
+
fontWeight: 700,
|
|
399
320
|
});
|
|
400
321
|
stackArray.push(stackEntry);
|
|
401
|
-
this.setFont(opts, FontStyle.Bold);
|
|
402
322
|
}
|
|
403
323
|
else if (tag.type == "i") {
|
|
324
|
+
this.setFont(opts, FontStyle.Italic);
|
|
404
325
|
const stackEntry = new TagStackEntry(tag, {
|
|
405
|
-
|
|
406
|
-
fontTexture: opts.fontTexture,
|
|
326
|
+
fontStyle: 'italic'
|
|
407
327
|
});
|
|
408
328
|
stackArray.push(stackEntry);
|
|
409
|
-
this.setFont(opts, FontStyle.Italic);
|
|
410
329
|
}
|
|
411
330
|
}
|
|
412
331
|
else {
|
|
@@ -434,61 +353,73 @@ export class Text extends Graphic {
|
|
|
434
353
|
}
|
|
435
354
|
return null;
|
|
436
355
|
}
|
|
356
|
+
/**
|
|
357
|
+
* Update provided opts to have a proper fontDefinition : family+weight+style
|
|
358
|
+
* Ensure Family and Variant are registered in FontLibrary
|
|
359
|
+
*
|
|
360
|
+
* @param opts
|
|
361
|
+
* @param fontStyle
|
|
362
|
+
* @private
|
|
363
|
+
*/
|
|
437
364
|
setFont(opts, fontStyle) {
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
opts.fontFamily = family;
|
|
443
|
-
let texture = name;
|
|
444
|
-
if (!texture?.endsWith(".png"))
|
|
445
|
-
texture += ".png";
|
|
446
|
-
opts.fontTexture = texture;
|
|
447
|
-
}
|
|
448
|
-
getFontStyleName(style) {
|
|
365
|
+
// @TODO : THH could be useful to uniformize font family name :
|
|
366
|
+
// This would ease possible html/vr matching
|
|
367
|
+
// - Arial instead of assets/arial
|
|
368
|
+
// - Arial should stay Arial instead of arial
|
|
449
369
|
if (!this.font)
|
|
450
|
-
return
|
|
451
|
-
let
|
|
452
|
-
//
|
|
453
|
-
|
|
454
|
-
if (
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
fontName = fontName.substring(0, fontName.length - "-bold".length);
|
|
463
|
-
}
|
|
464
|
-
else if (fontNameLower.endsWith("-italic")) {
|
|
465
|
-
if (style === FontStyle.Italic)
|
|
466
|
-
return resolveUrl(this.sourceId, fontName);
|
|
467
|
-
fontName = fontName.substring(0, fontName.length - "-italic".length);
|
|
468
|
-
}
|
|
469
|
-
else if (fontNameLower.endsWith("-bolditalic")) {
|
|
470
|
-
if (style === FontStyle.BoldAndItalic)
|
|
471
|
-
return resolveUrl(this.sourceId, fontName);
|
|
472
|
-
fontName = fontName.substring(0, fontName.length - "-bolditalic".length);
|
|
473
|
-
}
|
|
474
|
-
else
|
|
475
|
-
// If a font does not have a specific style suffic we dont support getting the correct font style
|
|
476
|
-
return resolveUrl(this.sourceId, fontName);
|
|
477
|
-
switch (style) {
|
|
370
|
+
return;
|
|
371
|
+
let familyName = this.font;
|
|
372
|
+
// ensure a font family is register under this name
|
|
373
|
+
let fontFamily = ThreeMeshUI.FontLibrary.getFontFamily(familyName);
|
|
374
|
+
if (!fontFamily)
|
|
375
|
+
fontFamily = ThreeMeshUI.FontLibrary.addFontFamily(familyName);
|
|
376
|
+
// @TODO: @swingingtom how should the font be set?
|
|
377
|
+
//@ts-ignore
|
|
378
|
+
opts.fontFamily = fontFamily;
|
|
379
|
+
const lowerFamilyName = familyName.toLowerCase();
|
|
380
|
+
switch (fontStyle) {
|
|
381
|
+
default:
|
|
478
382
|
case FontStyle.Normal:
|
|
479
|
-
|
|
383
|
+
opts.fontWeight = 400;
|
|
384
|
+
opts.fontStyle = "normal";
|
|
480
385
|
break;
|
|
481
386
|
case FontStyle.Bold:
|
|
482
|
-
|
|
387
|
+
opts.fontWeight = 700;
|
|
388
|
+
opts.fontStyle = "normal";
|
|
389
|
+
if (!lowerFamilyName.includes("-bold"))
|
|
390
|
+
familyName += "-bold";
|
|
483
391
|
break;
|
|
484
392
|
case FontStyle.Italic:
|
|
485
|
-
|
|
393
|
+
opts.fontWeight = 400;
|
|
394
|
+
opts.fontStyle = "italic";
|
|
395
|
+
if (!lowerFamilyName.includes("-italic"))
|
|
396
|
+
familyName += "-italic";
|
|
486
397
|
break;
|
|
487
398
|
case FontStyle.BoldAndItalic:
|
|
488
|
-
|
|
489
|
-
|
|
399
|
+
opts.fontStyle = 'italic';
|
|
400
|
+
opts.fontWeight = 400;
|
|
401
|
+
if (!lowerFamilyName.includes("-bold"))
|
|
402
|
+
familyName += "-bold";
|
|
403
|
+
if (!lowerFamilyName.includes("-italic"))
|
|
404
|
+
familyName += "-italic";
|
|
405
|
+
}
|
|
406
|
+
// Ensure a fontVariant is registered
|
|
407
|
+
//@TODO: @swingingtom add type for fontWeight
|
|
408
|
+
let fontVariant = fontFamily.getVariant(opts.fontWeight, opts.fontStyle);
|
|
409
|
+
if (!fontVariant) {
|
|
410
|
+
let jsonPath = familyName;
|
|
411
|
+
if (!jsonPath?.endsWith("-msdf.json"))
|
|
412
|
+
jsonPath += "-msdf.json";
|
|
413
|
+
let texturePath = familyName;
|
|
414
|
+
if (!texturePath?.endsWith(".png"))
|
|
415
|
+
texturePath += ".png";
|
|
416
|
+
//@TODO: @swingingtom add type for fontWeight
|
|
417
|
+
//@TODO: @swingingtom addVariant return type is wrong (should be FontVariant)
|
|
418
|
+
fontVariant = fontFamily.addVariant(opts.fontWeight, opts.fontStyle, jsonPath, texturePath);
|
|
419
|
+
fontVariant?.addEventListener('ready', () => {
|
|
420
|
+
this.markDirty();
|
|
421
|
+
});
|
|
490
422
|
}
|
|
491
|
-
return resolveUrl(this.sourceId, fontName);
|
|
492
423
|
}
|
|
493
424
|
}
|
|
494
425
|
__decorate([
|
|
@@ -510,7 +441,7 @@ __decorate([
|
|
|
510
441
|
serializable()
|
|
511
442
|
], Text.prototype, "supportRichText", void 0);
|
|
512
443
|
__decorate([
|
|
513
|
-
serializable()
|
|
444
|
+
serializable(URL)
|
|
514
445
|
], Text.prototype, "font", void 0);
|
|
515
446
|
__decorate([
|
|
516
447
|
serializable()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Text.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Text.ts"],"names":[],"mappings":"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"}
|