feat: initialize project with core dependencies and game entry point
This commit is contained in:
84
node_modules/three/examples/jsm/geometries/TextGeometry.js
generated
vendored
Normal file
84
node_modules/three/examples/jsm/geometries/TextGeometry.js
generated
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
import {
|
||||
ExtrudeGeometry
|
||||
} from 'three';
|
||||
|
||||
/**
|
||||
* A class for generating text as a single geometry. It is constructed by providing a string of text, and a set of
|
||||
* parameters consisting of a loaded font and extrude settings.
|
||||
*
|
||||
* See the {@link FontLoader} page for additional details.
|
||||
*
|
||||
* `TextGeometry` uses [typeface.json](http://gero3.github.io/facetype.js/) generated fonts.
|
||||
* Some existing fonts can be found located in `/examples/fonts`.
|
||||
*
|
||||
* ```js
|
||||
* const loader = new FontLoader();
|
||||
* const font = await loader.loadAsync( 'fonts/helvetiker_regular.typeface.json' );
|
||||
* const geometry = new TextGeometry( 'Hello three.js!', {
|
||||
* font: font,
|
||||
* size: 80,
|
||||
* depth: 5,
|
||||
* curveSegments: 12
|
||||
* } );
|
||||
* ```
|
||||
*
|
||||
* @augments ExtrudeGeometry
|
||||
* @three_import import { TextGeometry } from 'three/addons/geometries/TextGeometry.js';
|
||||
*/
|
||||
class TextGeometry extends ExtrudeGeometry {
|
||||
|
||||
/**
|
||||
* Constructs a new text geometry.
|
||||
*
|
||||
* @param {string} text - The text that should be transformed into a geometry.
|
||||
* @param {TextGeometry~Options} [parameters] - The text settings.
|
||||
*/
|
||||
constructor( text, parameters = {} ) {
|
||||
|
||||
const font = parameters.font;
|
||||
|
||||
if ( font === undefined ) {
|
||||
|
||||
super(); // generate default extrude geometry
|
||||
|
||||
} else {
|
||||
|
||||
const shapes = font.generateShapes( text, parameters.size, parameters.direction );
|
||||
|
||||
// defaults
|
||||
|
||||
if ( parameters.depth === undefined ) parameters.depth = 50;
|
||||
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';
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents the `options` type of the geometry's constructor.
|
||||
*
|
||||
* @typedef {Object} TextGeometry~Options
|
||||
* @property {Font} [font] - The font.
|
||||
* @property {number} [size=100] - The text size.
|
||||
* @property {number} [depth=50] - Depth to extrude the shape.
|
||||
* @property {number} [curveSegments=12] - Number of points on the curves.
|
||||
* @property {number} [steps=1] - Number of points used for subdividing segments along the depth of the extruded spline.
|
||||
* @property {boolean} [bevelEnabled=false] - Whether to beveling to the shape or not.
|
||||
* @property {number} [bevelThickness=10] - How deep into the original shape the bevel goes.
|
||||
* @property {number} [bevelSize=8] - Distance from the shape outline that the bevel extends.
|
||||
* @property {number} [bevelOffset=0] - Distance from the shape outline that the bevel starts.
|
||||
* @property {number} [bevelSegments=3] - Number of bevel layers.
|
||||
* @property {string} [direction='ltr'] - Char direction: ltr(left to right), rtl(right to left) & tb(top bottom).
|
||||
* @property {?Curve} [extrudePath=null] - A 3D spline path along which the shape should be extruded. Bevels not supported for path extrusion.
|
||||
* @property {Object} [UVGenerator] - An object that provides UV generator functions for custom UV generation.
|
||||
**/
|
||||
|
||||
export { TextGeometry };
|
||||
Reference in New Issue
Block a user