/** * Text = 3D Text * * parameters = { * font: , // font * * size: , // size of the text * depth: , // thickness to extrude text * curveSegments: , // number of points on the curves * * bevelEnabled: , // turn on bevel * bevelThickness: , // how deep into text bevel goes * bevelSize: , // how far from text outline (including bevelOffset) is bevel * bevelOffset: // how far from text outline does bevel start * } */ import { ExtrudeGeometry } from 'three'; class TextGeometry extends ExtrudeGeometry { constructor( text, parameters = {} ) { const font = parameters.font; if ( font === undefined ) { super(); // generate default extrude geometry } else { const shapes = font.generateShapes( text, parameters.size ); // translate parameters to ExtrudeGeometry API if ( parameters.depth === undefined && parameters.height !== undefined ) { console.warn( 'THREE.TextGeometry: .height is now depreciated. Please use .depth instead' ); // @deprecated, r163 } parameters.depth = parameters.depth !== undefined ? parameters.depth : parameters.height !== undefined ? parameters.height : 50; // defaults if ( parameters.bevelThickness === undefined ) parameters.bevelThickness = 10; if ( parameters.bevelSize === undefined ) parameters.bevelSize = 8; if ( parameters.bevelEnabled === undefined ) parameters.bevelEnabled = false; super( shapes, parameters ); } this.type = 'TextGeometry'; } } export { TextGeometry };