TextGeometry.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. ( function () {
  2. /**
  3. * Text = 3D Text
  4. *
  5. * parameters = {
  6. * font: <THREE.Font>, // font
  7. *
  8. * size: <float>, // size of the text
  9. * height: <float>, // thickness to extrude text
  10. * curveSegments: <int>, // number of points on the curves
  11. *
  12. * bevelEnabled: <bool>, // turn on bevel
  13. * bevelThickness: <float>, // how deep into text bevel goes
  14. * bevelSize: <float>, // how far from text outline (including bevelOffset) is bevel
  15. * bevelOffset: <float> // how far from text outline does bevel start
  16. * }
  17. */
  18. class TextGeometry extends THREE.ExtrudeGeometry {
  19. constructor( text, parameters = {} ) {
  20. const font = parameters.font;
  21. if ( font === undefined ) {
  22. super(); // generate default extrude geometry
  23. } else {
  24. const shapes = font.generateShapes( text, parameters.size );
  25. // translate parameters to THREE.ExtrudeGeometry API
  26. parameters.depth = parameters.height !== undefined ? parameters.height : 50;
  27. // defaults
  28. if ( parameters.bevelThickness === undefined ) parameters.bevelThickness = 10;
  29. if ( parameters.bevelSize === undefined ) parameters.bevelSize = 8;
  30. if ( parameters.bevelEnabled === undefined ) parameters.bevelEnabled = false;
  31. super( shapes, parameters );
  32. }
  33. this.type = 'TextGeometry';
  34. }
  35. }
  36. THREE.TextGeometry = TextGeometry;
  37. } )();