three-text 0.4.11 → 0.4.12

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.
Files changed (75) hide show
  1. package/README.md +257 -38
  2. package/dist/index.cjs +3420 -3436
  3. package/dist/index.d.ts +163 -9
  4. package/dist/index.js +3416 -3437
  5. package/dist/index.min.cjs +667 -666
  6. package/dist/index.min.js +670 -669
  7. package/dist/index.umd.js +3557 -3565
  8. package/dist/index.umd.min.js +752 -746
  9. package/dist/p5/index.cjs +2738 -5
  10. package/dist/p5/index.js +2738 -5
  11. package/dist/slug/index.cjs +380 -0
  12. package/dist/slug/index.d.ts +62 -0
  13. package/dist/slug/index.js +374 -0
  14. package/dist/three/index.cjs +50 -35
  15. package/dist/three/index.js +50 -35
  16. package/dist/three/react.cjs +5 -2
  17. package/dist/three/react.d.ts +66 -120
  18. package/dist/three/react.js +6 -3
  19. package/dist/types/core/Text.d.ts +3 -10
  20. package/dist/types/core/cache/sharedCaches.d.ts +2 -1
  21. package/dist/types/core/shaping/DrawCallbacks.d.ts +11 -3
  22. package/dist/types/core/shaping/TextShaper.d.ts +1 -5
  23. package/dist/types/core/types.d.ts +84 -0
  24. package/dist/types/index.d.ts +7 -3
  25. package/dist/types/{core/cache → mesh}/GlyphContourCollector.d.ts +4 -4
  26. package/dist/types/{core/cache → mesh}/GlyphGeometryBuilder.d.ts +5 -5
  27. package/dist/types/mesh/MeshGeometryBuilder.d.ts +18 -0
  28. package/dist/types/{core → mesh}/geometry/BoundaryClusterer.d.ts +1 -1
  29. package/dist/types/{core → mesh}/geometry/Extruder.d.ts +1 -1
  30. package/dist/types/{core → mesh}/geometry/PathOptimizer.d.ts +1 -1
  31. package/dist/types/{core → mesh}/geometry/Polygonizer.d.ts +1 -1
  32. package/dist/types/{core → mesh}/geometry/Tessellator.d.ts +1 -1
  33. package/dist/types/react/utils.d.ts +2 -0
  34. package/dist/types/vector/GlyphOutlineCollector.d.ts +25 -0
  35. package/dist/types/vector/GlyphVectorGeometryBuilder.d.ts +26 -0
  36. package/dist/types/vector/LoopBlinnGeometry.d.ts +68 -0
  37. package/dist/types/vector/index.d.ts +29 -0
  38. package/dist/types/vector/loopBlinnTSL.d.ts +11 -0
  39. package/dist/types/vector/react.d.ts +24 -0
  40. package/dist/types/vector/webgl/index.d.ts +7 -0
  41. package/dist/types/vector/webgpu/index.d.ts +11 -0
  42. package/dist/vector/index.cjs +1458 -0
  43. package/dist/vector/index.d.ts +122 -0
  44. package/dist/vector/index.js +1434 -0
  45. package/dist/vector/react.cjs +153 -0
  46. package/dist/vector/react.d.ts +317 -0
  47. package/dist/vector/react.js +132 -0
  48. package/dist/vector/types/slug-lib/src/SlugPacker.d.ts +17 -0
  49. package/dist/vector/types/slug-lib/src/WebGL2Renderer.d.ts +21 -0
  50. package/dist/vector/types/slug-lib/src/WebGPURenderer.d.ts +16 -0
  51. package/dist/vector/types/slug-lib/src/index.d.ts +15 -0
  52. package/dist/vector/types/slug-lib/src/shaderStrings.d.ts +9 -0
  53. package/dist/vector/types/slug-lib/src/types.d.ts +34 -0
  54. package/dist/vector/types/src/core/types.d.ts +381 -0
  55. package/dist/vector/types/src/hyphenation/HyphenationPatternLoader.d.ts +2 -0
  56. package/dist/vector/types/src/hyphenation/index.d.ts +7 -0
  57. package/dist/vector/types/src/hyphenation/types.d.ts +6 -0
  58. package/dist/vector/types/src/utils/Cache.d.ts +14 -0
  59. package/dist/vector/types/src/utils/vectors.d.ts +75 -0
  60. package/dist/vector/types/src/vector/VectorDataBuilder.d.ts +30 -0
  61. package/dist/vector/types/src/vector/VectorThreeAdapter.d.ts +27 -0
  62. package/dist/vector/types/src/vector/index.d.ts +15 -0
  63. package/dist/vector/webgl/index.cjs +229 -0
  64. package/dist/vector/webgl/index.d.ts +53 -0
  65. package/dist/vector/webgl/index.js +227 -0
  66. package/dist/vector/webgpu/index.cjs +321 -0
  67. package/dist/vector/webgpu/index.d.ts +57 -0
  68. package/dist/vector/webgpu/index.js +319 -0
  69. package/dist/webgl-vector/index.cjs +243 -0
  70. package/dist/webgl-vector/index.d.ts +34 -0
  71. package/dist/webgl-vector/index.js +241 -0
  72. package/dist/webgpu-vector/index.cjs +336 -0
  73. package/dist/webgpu-vector/index.d.ts +38 -0
  74. package/dist/webgpu-vector/index.js +334 -0
  75. package/package.json +48 -3
@@ -0,0 +1,68 @@
1
+ import type { BoundingBox } from '../utils/vectors';
2
+ export interface QuadraticSegment {
3
+ p0x: number;
4
+ p0y: number;
5
+ p1x: number;
6
+ p1y: number;
7
+ p2x: number;
8
+ p2y: number;
9
+ }
10
+ interface ContourVertex {
11
+ x: number;
12
+ y: number;
13
+ }
14
+ export interface VectorContour {
15
+ vertices: ContourVertex[];
16
+ segments: QuadraticSegment[];
17
+ }
18
+ export interface VectorGlyphAttributes {
19
+ glyphCenter: Float32Array;
20
+ glyphIndex: Float32Array;
21
+ glyphProgress: Float32Array;
22
+ glyphLineIndex: Float32Array;
23
+ glyphBaselineY: Float32Array;
24
+ }
25
+ export interface GlyphRange {
26
+ interiorIndexStart: number;
27
+ interiorIndexCount: number;
28
+ curveVertexStart: number;
29
+ curveVertexCount: number;
30
+ }
31
+ export interface VectorGeometryData {
32
+ interiorPositions: Float32Array;
33
+ interiorIndices: Uint32Array;
34
+ curvePositions: Float32Array;
35
+ fillPositions: Float32Array;
36
+ fillIndices: Uint32Array;
37
+ glyphRanges: GlyphRange[];
38
+ interiorGlyphAttrs?: VectorGlyphAttributes;
39
+ curveGlyphAttrs?: VectorGlyphAttributes;
40
+ fillGlyphAttrs?: VectorGlyphAttributes;
41
+ planeBounds: BoundingBox;
42
+ stats: {
43
+ glyphCount: number;
44
+ contourCount: number;
45
+ interiorTriangleCount: number;
46
+ curveTriangleCount: number;
47
+ };
48
+ }
49
+ export interface LoopBlinnGlyphInput {
50
+ offsetX: number;
51
+ offsetY: number;
52
+ segments: QuadraticSegment[];
53
+ bounds: {
54
+ minX: number;
55
+ minY: number;
56
+ maxX: number;
57
+ maxY: number;
58
+ };
59
+ lineIndex: number;
60
+ baselineY: number;
61
+ }
62
+ export interface LoopBlinnInput {
63
+ glyphs: LoopBlinnGlyphInput[];
64
+ planeBounds: BoundingBox;
65
+ }
66
+ export declare function extractContours(segments: QuadraticSegment[]): VectorContour[];
67
+ export declare function buildVectorGeometry(input: LoopBlinnInput): VectorGeometryData;
68
+ export {};
@@ -0,0 +1,29 @@
1
+ import { Text as TextCore } from '../core/Text';
2
+ import type { TextOptions, VectorGlyphInfo, LoadedFont, TextQueryOptions, TextRange } from '../core/types';
3
+ import type { VectorGeometryData } from './LoopBlinnGeometry';
4
+ import type { HyphenationTrieNode } from '../hyphenation';
5
+ export interface VectorTextResult {
6
+ glyphs: VectorGlyphInfo[];
7
+ geometryData: VectorGeometryData;
8
+ query(options: TextQueryOptions): TextRange[];
9
+ getLoadedFont(): LoadedFont | undefined;
10
+ measureTextWidth(text: string, letterSpacing?: number): number;
11
+ update(options: Partial<TextOptions>): Promise<VectorTextResult>;
12
+ dispose(): void;
13
+ }
14
+ export declare class Text {
15
+ static setHarfBuzzPath: typeof TextCore.setHarfBuzzPath;
16
+ static setHarfBuzzBuffer: typeof TextCore.setHarfBuzzBuffer;
17
+ static init: typeof TextCore.init;
18
+ static registerPattern: typeof TextCore.registerPattern;
19
+ static preloadPatterns: typeof TextCore.preloadPatterns;
20
+ static setMaxFontCacheMemoryMB: typeof TextCore.setMaxFontCacheMemoryMB;
21
+ static enableWoff2: typeof TextCore.enableWoff2;
22
+ static create(options: TextOptions): Promise<VectorTextResult>;
23
+ }
24
+ export type { TextOptions, VectorTextResult as TextGeometryInfo, VectorGlyphInfo, LoadedFont };
25
+ export type { HyphenationTrieNode };
26
+ export { buildVectorGeometry, extractContours } from './LoopBlinnGeometry';
27
+ export type { VectorGeometryData, VectorGlyphAttributes, GlyphRange, VectorContour, LoopBlinnInput, LoopBlinnGlyphInput, QuadraticSegment } from './LoopBlinnGeometry';
28
+ export { createVectorMeshes } from './loopBlinnTSL';
29
+ export type { VectorMeshes } from './loopBlinnTSL';
@@ -0,0 +1,11 @@
1
+ import * as THREE from 'three';
2
+ import type { VectorGeometryData } from './LoopBlinnGeometry';
3
+ export interface VectorMeshes {
4
+ interiorMesh: THREE.Mesh;
5
+ curveMesh: THREE.Mesh;
6
+ fillMesh: THREE.Mesh;
7
+ setOffset(x: number, y: number, z?: number): void;
8
+ dispose(): void;
9
+ }
10
+ export declare const loopBlinnFragment: any;
11
+ export declare function createVectorMeshes(data: VectorGeometryData, color?: THREE.ColorRepresentation): VectorMeshes;
@@ -0,0 +1,24 @@
1
+ import * as THREE from 'three';
2
+ import { Text as VectorTextCore } from './index';
3
+ import type { VectorTextResult } from './index';
4
+ import type { TextOptions } from '../core/types';
5
+ export interface TextProps extends Omit<TextOptions, 'text' | 'color'> {
6
+ children: string;
7
+ font: string | ArrayBuffer;
8
+ fillColor?: THREE.ColorRepresentation;
9
+ position?: [number, number, number];
10
+ rotation?: [number, number, number];
11
+ scale?: [number, number, number];
12
+ onLoad?: (result: VectorTextResult) => void;
13
+ onError?: (error: Error) => void;
14
+ }
15
+ export declare const Text: import("react").ForwardRefExoticComponent<TextProps & import("react").RefAttributes<THREE.Group<THREE.Object3DEventMap>>> & {
16
+ setHarfBuzzPath: typeof import("..").Text.setHarfBuzzPath;
17
+ setHarfBuzzBuffer: typeof import("..").Text.setHarfBuzzBuffer;
18
+ init: typeof import("..").Text.init;
19
+ registerPattern: typeof import("..").Text.registerPattern;
20
+ preloadPatterns: typeof import("..").Text.preloadPatterns;
21
+ setMaxFontCacheMemoryMB: typeof import("..").Text.setMaxFontCacheMemoryMB;
22
+ enableWoff2: typeof import("..").Text.enableWoff2;
23
+ create: typeof VectorTextCore.create;
24
+ };
@@ -0,0 +1,7 @@
1
+ import type { VectorGeometryData } from '../LoopBlinnGeometry';
2
+ export interface WebGLVectorRenderer {
3
+ setGeometry(data: VectorGeometryData): void;
4
+ render(mvp: Float32Array, color: Float32Array): void;
5
+ dispose(): void;
6
+ }
7
+ export declare function createWebGLVectorRenderer(gl: WebGL2RenderingContext): WebGLVectorRenderer;
@@ -0,0 +1,11 @@
1
+ import type { VectorGeometryData } from '../LoopBlinnGeometry';
2
+ export interface WebGPUVectorRenderer {
3
+ setGeometry(data: VectorGeometryData): void;
4
+ render(passEncoder: GPURenderPassEncoder, mvp: Float32Array, color: Float32Array): void;
5
+ dispose(): void;
6
+ }
7
+ export interface WebGPUVectorRendererOptions {
8
+ depthStencilFormat?: GPUTextureFormat;
9
+ sampleCount?: number;
10
+ }
11
+ export declare function createWebGPUVectorRenderer(device: GPUDevice, format: GPUTextureFormat, options?: WebGPUVectorRendererOptions): WebGPUVectorRenderer;