11import * as loader from '@assemblyscript/loader' ;
22import * as BABYLON from 'babylonjs' ;
33
4- interface IPathCommand {
5- type : string ;
6- x ?: number ;
7- y ?: number ;
8- x1 ?: number ;
9- y1 ?: number ;
10- x2 ?: number ;
11- y2 ?: number ;
12- }
4+ declare type PathCommand = {
5+ type : 'M' | 'L' ;
6+ x : number ;
7+ y : number ;
8+ } | {
9+ type : 'Q' ;
10+ x : number ;
11+ y : number ;
12+ x1 : number ;
13+ y1 : number ;
14+ } | {
15+ type : 'C' ;
16+ x : number ;
17+ y : number ;
18+ x1 : number ;
19+ y1 : number ;
20+ x2 : number ;
21+ y2 : number ;
22+ } | {
23+ type : 'Z' ;
24+ } ;
1325declare type Header = {
26+ MEMORY_BASE : {
27+ value : number ;
28+ } ;
1429 compile ( bytesUsed : number , fmt : string , ppc : number , eps : number ) : number ;
1530} ;
16- declare type Instaniated = loader . ResultObject & {
31+ declare type Wasm = loader . ResultObject & {
1732 exports : loader . ASUtil & Header ;
1833} ;
1934declare type Vertex = [ number , number ] ;
@@ -24,14 +39,33 @@ declare type Shape = {
2439} ;
2540declare class Compiler {
2641 private wasm ;
27- constructor ( wasm : Instaniated ) ;
42+ constructor ( wasm : Wasm ) ;
2843 static Build ( wasmUrl ?: string ) : Promise < Compiler > ;
29- encode ( cmds : IPathCommand [ ] , buffer : ArrayBuffer ) : number ;
30- compileEncoded ( buffer : ArrayBuffer , bytesUsed : number , fmt : string , ppc : number , eps : number ) : Shape [ ] ;
31- compile ( cmds : IPathCommand [ ] , fmt : string , ppc : number , eps : number ) : Shape [ ] ;
44+ encode ( cmds : PathCommand [ ] ) : number ;
45+ compile ( cmds : PathCommand [ ] , fmt : string , ppc : number , eps : number ) : Shape [ ] | null ;
46+ private bytesRequired ;
3247}
3348
34- declare type PolygonMeshOption = {
49+ declare class Metrics {
50+ private font ;
51+ private name ;
52+ private size ;
53+ constructor ( font : Font , name : string , size : number ) ;
54+ get ascender ( ) : number ;
55+ get descender ( ) : number ;
56+ get advanceWidth ( ) : number ;
57+ }
58+
59+ declare class Font {
60+ raw : opentype . Font ;
61+ private compiler ;
62+ private constructor ( ) ;
63+ static Install ( fontUrl : string , compiler : Compiler , opentype : any ) : Promise < Font > ;
64+ measure ( name : string , size : number ) : Metrics ;
65+ static Compile ( font : Font , name : string , size : number , ppc : number , eps : number ) : Shape [ ] | null ;
66+ }
67+
68+ declare type CreatePolygonOptions = {
3569 backUVs ?: BABYLON . Vector4 ;
3670 depth ?: number ;
3771 faceColors ?: BABYLON . Color4 [ ] ;
@@ -40,40 +74,19 @@ declare type PolygonMeshOption = {
4074 sideOrientation ?: number ;
4175 updatable ?: boolean ;
4276} ;
43- declare class Font {
44- raw : opentype . Font ;
45- private compiler ;
46- private constructor ( ) ;
47- static Install ( fontUrl : string , compiler : Compiler , opentype : any ) : Promise < Font > ;
48- measure ( name : string , size : number ) : Metrics ;
49- static Compile ( font : Font , name : string , size : number , ppc : number , eps : number ) : Shape [ ] ;
50- }
51- interface IBabylon {
52- Mesh : typeof BABYLON . Mesh ;
53- MeshBuilder : typeof BABYLON . MeshBuilder ;
54- Vector3 : typeof BABYLON . Vector3 ;
55- }
77+ declare type TextBuilderCreateOptions = {
78+ font : Font ;
79+ text : string ;
80+ size : number ;
81+ ppc : number ;
82+ eps : number ;
83+ } & CreatePolygonOptions ;
5684declare class TextMeshBuilder {
5785 private babylon ;
5886 private earcut ;
59- constructor ( babylon : IBabylon , earcut : any ) ;
87+ constructor ( babylon : typeof BABYLON , earcut : any ) ;
6088 private createFromShapes ;
61- create ( { font, text, size, ppc, eps, ...option } : {
62- font : Font ;
63- text : string ;
64- size : number ;
65- ppc : number ;
66- eps : number ;
67- } & PolygonMeshOption , scene ?: BABYLON . Scene ) : BABYLON . Mesh ;
68- }
69- declare class Metrics {
70- private font ;
71- private name ;
72- private size ;
73- constructor ( font : Font , name : string , size : number ) ;
74- get ascender ( ) : number ;
75- get descender ( ) : number ;
76- get advanceWidth ( ) : number ;
89+ create ( { font, text, size, ppc, eps, ...createPolygonOptions } : TextBuilderCreateOptions , scene ?: BABYLON . Scene ) : BABYLON . Nullable < BABYLON . Mesh > | undefined ;
7790}
7891
79- export { Compiler , Font , Metrics , Shape , TextMeshBuilder } ;
92+ export { Compiler , Font , Polygon , Shape , TextMeshBuilder , Vertex } ;
0 commit comments