UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

37 lines (36 loc) 1.15 kB
"use strict"; import { CoreLoaderFont } from "../../loader/font/CoreFontLoader"; import { mergeGeometries } from "three/examples/jsm/utils/BufferGeometryUtils"; export async function createGeometriesFromTypeStroke(params) { var _a; const loader = await CoreLoaderFont.loadSVGLoader(); if (!loader) { return; } return (_a = params.shapes) == null ? void 0 : _a.map( (shape) => createGeometryFromTypeStroke({ loader, shapes: shape, strokeWidth: params.strokeWidth }) ); } function createGeometryFromTypeStroke(params) { if (!params.shapes) { return; } var style = params.loader.getStrokeStyle(params.strokeWidth, "white", "miter", "butt", 4); const geometries = []; for (let i = 0; i < params.shapes.length; i++) { const shape = params.shapes[i]; const points = shape.getPoints(); const arcDivisions = 12; const minDistance = 1e-3; const geometry = params.loader.pointsToStroke(points, style, arcDivisions, minDistance); geometries.push(geometry); } if (geometries.length > 0) { const mergedGeometry = mergeGeometries(geometries); return mergedGeometry; } }