@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
28 lines (27 loc) • 1.07 kB
JavaScript
;
import { createGeometriesFromTypeMesh } from "./TextMesh";
import { getShapes } from "./TextShapes";
import { createGeometriesFromTypeFlat } from "./TextFlat";
import { createGeometriesFromTypeStroke } from "./TextStroke";
import { shapesFromFont } from "./TextShapesFromFont";
import { TypeAssert } from "../../../engine/poly/Assert";
import { createGeometriesFromTypeLine } from "./TextLine";
import { TextType } from "./TextType";
export async function textBuildGeometries(params) {
const { textType } = params;
const shapes = getShapes(params);
switch (textType) {
case TextType.MESH:
return createGeometriesFromTypeMesh({ ...params, shapes });
case TextType.FLAT:
return createGeometriesFromTypeFlat({ shapes });
case TextType.LINE:
return createGeometriesFromTypeLine({ shapes: shapesFromFont(shapes) });
case TextType.STROKE:
return await createGeometriesFromTypeStroke({
shapes: shapesFromFont(shapes),
strokeWidth: params.strokeWidth
});
}
TypeAssert.unreachable(textType);
}