TextObjects - set default font family + make loading asynchronous

This commit is contained in:
2026-02-02 17:59:32 +02:00
parent 73fa7bb8d3
commit 04aa57be38
+31 -28
View File
@@ -4,34 +4,37 @@ import { assignParams } from "@/lib/MeshUtils";
class TextObject {
constructor(engine, obj) {
const txt = new Text();
// Set properties to configure:
txt.text = obj.text;
txt.fontSize = 0.033;
txt.lineHeight = 1.1;
//txt.maxWidth = obj.width;
txt.textAlign = 'center';
txt.font = obj.fontPath;
txt.anchorX = 'center';
txt.anchorY = 'bottom';
txt.curveRadius = 0;
txt.outlineColor = 0xffffff;
txt.outlineWidth = '15%';
txt.depthOffset = 0.1;
//txt.outlineBlur = '50%';
txt.color = new Color(0x0);
assignParams(txt, obj)
let m = new MeshBasicMaterial({
// roughness: .73,
// metalness: .37,
side: DoubleSide
});
txt.material = m;
txt.sync(()=>{
txt.material[1].opacity = 1;
});
this.txt = txt;
this.object = txt;
return new Promise((resolve, reject)=>{
const txt = new Text();
// Set properties to configure:
txt.text = obj.text;
txt.fontSize = 0.033;
txt.lineHeight = 1.1;
//txt.maxWidth = obj.width;
txt.textAlign = 'center';
txt.font = obj.fontPath || '/static/fonts/Montserrat-Regular.ttf';
txt.anchorX = 'center';
txt.anchorY = 'bottom';
txt.curveRadius = 0;
txt.outlineColor = 0xffffff;
txt.outlineWidth = '15%';
txt.depthOffset = 0.1;
//txt.outlineBlur = '50%';
txt.color = new Color(0x0);
assignParams(txt, obj)
let m = new MeshBasicMaterial({
// roughness: .73,
// metalness: .37,
side: DoubleSide
});
txt.material = m;
txt.sync(()=>{
txt.material[1].opacity = 1;
resolve(this);
});
this.txt = txt;
this.object = txt;
})
}
}