TextGeometry.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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 ); // translate parameters to THREE.ExtrudeGeometry API
  25. parameters.depth = parameters.height !== undefined ? parameters.height : 50; // defaults
  26. if ( parameters.bevelThickness === undefined ) parameters.bevelThickness = 10;
  27. if ( parameters.bevelSize === undefined ) parameters.bevelSize = 8;
  28. if ( parameters.bevelEnabled === undefined ) parameters.bevelEnabled = false;
  29. super( shapes, parameters );
  30. }
  31. this.type = 'TextGeometry';
  32. }
  33. }
  34. THREE.TextGeometry = TextGeometry;
  35. } )();