import { MeshBasicMaterial, Color, Vector3, DoubleSide } from "three";
import { Text } from "troika-three-text";
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;
    }
}

export {TextObject}