three-stdlib 2.14.0 → 2.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("three");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("three");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=r(e);class n extends t.Loader{constructor(e){super(e)}load(e,r,s,n){const a=new t.FileLoader(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(e=>{if("string"!=typeof e)throw new Error("unsupported data type");const t=JSON.parse(e),s=this.parse(t);r&&r(s)}),s,n)}parse(e){return new a(e)}}class a{constructor(e){s.default(this,"data",void 0),this.data=e}generateShapes(e,t=100,r){const s=[],n={letterSpacing:0,lineHeight:1,...r},a=function(e,t,r,s){const n=Array.from(e),a=t/r.resolution,i=(r.boundingBox.yMax-r.boundingBox.yMin+r.underlineThickness)*a,p=[];let l=0,u=0;for(let e=0;e<n.length;e++){const t=n[e];if("\n"===t)l=0,u-=i*s.lineHeight;else{const e=o(t,a,l,u,r);e&&(l+=e.offsetX+s.letterSpacing,p.push(e.path))}}return p}(e,t,this.data,n);for(let e=0,t=a.length;e<t;e++)Array.prototype.push.apply(s,a[e].toShapes(!1));return s}}function o(e,r,s,n,a){const o=a.glyphs[e]||a.glyphs["?"];if(!o)return void console.error('THREE.Font: character "'+e+'" does not exists in font family '+a.familyName+".");const i=new t.ShapePath;let p,l,u,c,h,d,f,y;if(o.o){const e=o._cachedOutline||(o._cachedOutline=o.o.split(" "));for(let t=0,a=e.length;t<a;){switch(e[t++]){case"m":p=parseInt(e[t++])*r+s,l=parseInt(e[t++])*r+n,i.moveTo(p,l);break;case"l":p=parseInt(e[t++])*r+s,l=parseInt(e[t++])*r+n,i.lineTo(p,l);break;case"q":u=parseInt(e[t++])*r+s,c=parseInt(e[t++])*r+n,h=parseInt(e[t++])*r+s,d=parseInt(e[t++])*r+n,i.quadraticCurveTo(h,d,u,c);break;case"b":u=parseInt(e[t++])*r+s,c=parseInt(e[t++])*r+n,h=parseInt(e[t++])*r+s,d=parseInt(e[t++])*r+n,f=parseInt(e[t++])*r+s,y=parseInt(e[t++])*r+n,i.bezierCurveTo(h,d,f,y,u,c)}}}return{offsetX:o.ha*r,path:i}}s.default(a,"isFont",void 0),s.default(a,"type",void 0),exports.Font=a,exports.FontLoader=n;
|
package/loaders/FontLoader.d.ts
CHANGED
|
@@ -5,11 +5,9 @@ declare type Options = {
|
|
|
5
5
|
letterSpacing: number;
|
|
6
6
|
};
|
|
7
7
|
export declare class FontLoader extends Loader {
|
|
8
|
-
options: Options;
|
|
9
8
|
constructor(manager?: LoadingManager);
|
|
10
9
|
load(url: string, onLoad?: (responseFont: Font) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
|
|
11
10
|
parse(json: FontData): Font;
|
|
12
|
-
setOptions(options: Partial<Options>): void;
|
|
13
11
|
}
|
|
14
12
|
declare type Glyph = {
|
|
15
13
|
_cachedOutline: string[];
|
|
@@ -30,10 +28,9 @@ declare type FontData = {
|
|
|
30
28
|
};
|
|
31
29
|
export declare class Font {
|
|
32
30
|
data: FontData;
|
|
33
|
-
options: Options;
|
|
34
31
|
static isFont: true;
|
|
35
32
|
static type: 'Font';
|
|
36
|
-
constructor(data: FontData
|
|
37
|
-
generateShapes(text: string, size?: number): Shape[];
|
|
33
|
+
constructor(data: FontData);
|
|
34
|
+
generateShapes(text: string, size?: number, _options?: Partial<Options>): Shape[];
|
|
38
35
|
}
|
|
39
36
|
export {};
|
package/loaders/FontLoader.js
CHANGED
|
@@ -4,11 +4,6 @@ import { Loader, FileLoader, ShapePath } from 'three';
|
|
|
4
4
|
class FontLoader extends Loader {
|
|
5
5
|
constructor(manager) {
|
|
6
6
|
super(manager);
|
|
7
|
-
|
|
8
|
-
_defineProperty(this, "options", {
|
|
9
|
-
lineHeight: 1,
|
|
10
|
-
letterSpacing: 0
|
|
11
|
-
});
|
|
12
7
|
}
|
|
13
8
|
|
|
14
9
|
load(url, onLoad, onProgress, onError) {
|
|
@@ -25,27 +20,25 @@ class FontLoader extends Loader {
|
|
|
25
20
|
}
|
|
26
21
|
|
|
27
22
|
parse(json) {
|
|
28
|
-
return new Font(json
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
setOptions(options) {
|
|
32
|
-
Object.assign(this.options, options);
|
|
23
|
+
return new Font(json);
|
|
33
24
|
}
|
|
34
25
|
|
|
35
26
|
}
|
|
36
27
|
class Font {
|
|
37
|
-
constructor(data
|
|
28
|
+
constructor(data) {
|
|
38
29
|
_defineProperty(this, "data", void 0);
|
|
39
30
|
|
|
40
|
-
_defineProperty(this, "options", void 0);
|
|
41
|
-
|
|
42
31
|
this.data = data;
|
|
43
|
-
this.options = options;
|
|
44
32
|
}
|
|
45
33
|
|
|
46
|
-
generateShapes(text, size = 100) {
|
|
34
|
+
generateShapes(text, size = 100, _options) {
|
|
47
35
|
const shapes = [];
|
|
48
|
-
const
|
|
36
|
+
const options = {
|
|
37
|
+
letterSpacing: 0,
|
|
38
|
+
lineHeight: 1,
|
|
39
|
+
..._options
|
|
40
|
+
};
|
|
41
|
+
const paths = createPaths(text, size, this.data, options);
|
|
49
42
|
|
|
50
43
|
for (let p = 0, pl = paths.length; p < pl; p++) {
|
|
51
44
|
Array.prototype.push.apply(shapes, paths[p].toShapes(false));
|