manim-web 0.3.18 → 0.3.20

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 (136) hide show
  1. package/README.md +26 -40
  2. package/dist/AllPackages-B0GtkYjD.js +7912 -0
  3. package/dist/AllPackages-BIAELuhU.js +7912 -0
  4. package/dist/BaseConfiguration-CDf44lxS.js +4402 -0
  5. package/dist/BaseConfiguration-Chcqjv9L.js +4402 -0
  6. package/dist/Entities-B_gwJfrn.js +458 -0
  7. package/dist/Entities-CmJkmuw_.js +458 -0
  8. package/dist/GifExporter-C9lP34Iu.js +338 -0
  9. package/dist/GifExporter-DBak5Vk7.js +338 -0
  10. package/dist/InputJax-C5sGfjJ8.js +43 -0
  11. package/dist/InputJax-Jb4hSThK.js +43 -0
  12. package/dist/MathItem-BmK41eqe.js +77 -0
  13. package/dist/MathItem-C_mZyaeT.js +77 -0
  14. package/dist/Options-Ch1vGsgd.js +188 -0
  15. package/dist/Options-V6ag48Dv.js +188 -0
  16. package/dist/PrioritizedList-DkoCmqPk.js +36 -0
  17. package/dist/PrioritizedList-eKTii0tW.js +36 -0
  18. package/dist/Styles-De4BjKiV.js +411 -0
  19. package/dist/Styles-DgoiBrzf.js +411 -0
  20. package/dist/TeXAtom-DT2wCvcU.js +2025 -0
  21. package/dist/TeXAtom-JogI0lus.js +2025 -0
  22. package/dist/VideoExporter-Bdtz_pWv.js +102 -0
  23. package/dist/VideoExporter-Vjfsnv1h.js +102 -0
  24. package/dist/animation/creation/Create.d.ts +1 -1
  25. package/dist/animation/movement/Rotate.d.ts +2 -0
  26. package/dist/animation/movement/Rotate.d.ts.map +1 -1
  27. package/dist/animation/movement/Scale.d.ts +2 -0
  28. package/dist/animation/movement/Scale.d.ts.map +1 -1
  29. package/dist/animation/transform/ApplyTransforms.d.ts +1 -2
  30. package/dist/animation/transform/ApplyTransforms.d.ts.map +1 -1
  31. package/dist/animation/transform/MovementTransforms.d.ts +8 -0
  32. package/dist/animation/transform/MovementTransforms.d.ts.map +1 -1
  33. package/dist/animation/transform/Transform.d.ts +3 -0
  34. package/dist/animation/transform/Transform.d.ts.map +1 -1
  35. package/dist/animation/utility/index.d.ts +2 -0
  36. package/dist/animation/utility/index.d.ts.map +1 -1
  37. package/dist/chunk-3e0lkp8x.js +23 -0
  38. package/dist/constants/fontRender.d.ts +19 -0
  39. package/dist/constants/fontRender.d.ts.map +1 -0
  40. package/dist/constants/index.d.ts.map +1 -1
  41. package/dist/core/Camera.d.ts +19 -6
  42. package/dist/core/Camera.d.ts.map +1 -1
  43. package/dist/core/CameraFrame.d.ts +0 -2
  44. package/dist/core/CameraFrame.d.ts.map +1 -1
  45. package/dist/core/Group.d.ts +2 -2
  46. package/dist/core/Group.d.ts.map +1 -1
  47. package/dist/core/Mobject.d.ts +26 -6
  48. package/dist/core/Mobject.d.ts.map +1 -1
  49. package/dist/core/MobjectState.d.ts +23 -2
  50. package/dist/core/MobjectState.d.ts.map +1 -1
  51. package/dist/core/MobjectTraversal.d.ts +25 -0
  52. package/dist/core/MobjectTraversal.d.ts.map +1 -0
  53. package/dist/core/Scene.d.ts +7 -1
  54. package/dist/core/Scene.d.ts.map +1 -1
  55. package/dist/core/ThreeDScene.d.ts +19 -0
  56. package/dist/core/ThreeDScene.d.ts.map +1 -1
  57. package/dist/core/VGroup.d.ts +1 -1
  58. package/dist/core/VGroup.d.ts.map +1 -1
  59. package/dist/core/VMobject.d.ts +20 -1
  60. package/dist/core/VMobject.d.ts.map +1 -1
  61. package/dist/core/VMobjectGeometry.d.ts +2 -1
  62. package/dist/core/VMobjectGeometry.d.ts.map +1 -1
  63. package/dist/html-53__O8r2.js +1587 -0
  64. package/dist/html-DfHFh5II.js +1587 -0
  65. package/dist/index.d.ts +1 -1
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +4 -579
  68. package/dist/integrations/react.js +144 -735
  69. package/dist/integrations/vue.js +109 -735
  70. package/dist/interaction/Draggable.d.ts.map +1 -1
  71. package/dist/interaction/OrbitControls.d.ts +2 -0
  72. package/dist/interaction/OrbitControls.d.ts.map +1 -1
  73. package/dist/lengths-3epoqRj7.js +65 -0
  74. package/dist/lengths-B-bX9Tfk.js +65 -0
  75. package/dist/liteAdaptor-BxFvlO-q.js +828 -0
  76. package/dist/liteAdaptor-CsOIKw2g.js +828 -0
  77. package/dist/manim-web.browser.js +72994 -83815
  78. package/dist/mathjax-Bkrmftxh.js +102 -0
  79. package/dist/mathjax-DBrTNl9C.js +102 -0
  80. package/dist/mo-AzagC5AD.js +3271 -0
  81. package/dist/mo-I_6dyJsk.js +3271 -0
  82. package/dist/mobjects/geometry/AngleShapes.d.ts +16 -0
  83. package/dist/mobjects/geometry/AngleShapes.d.ts.map +1 -1
  84. package/dist/mobjects/geometry/DashedLine.d.ts +2 -2
  85. package/dist/mobjects/geometry/DashedLine.d.ts.map +1 -1
  86. package/dist/mobjects/graphing/Axes.d.ts +2 -2
  87. package/dist/mobjects/graphing/Axes.d.ts.map +1 -1
  88. package/dist/mobjects/graphing/ComplexPlane.d.ts +4 -1
  89. package/dist/mobjects/graphing/ComplexPlane.d.ts.map +1 -1
  90. package/dist/mobjects/matrix/Matrix.d.ts +2 -2
  91. package/dist/mobjects/matrix/Matrix.d.ts.map +1 -1
  92. package/dist/mobjects/point/PGroup.d.ts +1 -1
  93. package/dist/mobjects/point/PGroup.d.ts.map +1 -1
  94. package/dist/mobjects/point/PMobject.d.ts +1 -1
  95. package/dist/mobjects/point/PMobject.d.ts.map +1 -1
  96. package/dist/mobjects/svg/Brace.d.ts +3 -3
  97. package/dist/mobjects/svg/Brace.d.ts.map +1 -1
  98. package/dist/mobjects/table/Table.d.ts +4 -4
  99. package/dist/mobjects/table/Table.d.ts.map +1 -1
  100. package/dist/mobjects/text/MathJaxRenderer.d.ts +4 -2
  101. package/dist/mobjects/text/MathJaxRenderer.d.ts.map +1 -1
  102. package/dist/mobjects/text/MathTex.d.ts +68 -202
  103. package/dist/mobjects/text/MathTex.d.ts.map +1 -1
  104. package/dist/mobjects/text/MathTexImage.d.ts +258 -0
  105. package/dist/mobjects/text/MathTexImage.d.ts.map +1 -0
  106. package/dist/mobjects/text/MathTexParts.d.ts +10 -10
  107. package/dist/mobjects/text/MathTexParts.d.ts.map +1 -1
  108. package/dist/mobjects/text/Tex.d.ts +2 -7
  109. package/dist/mobjects/text/Tex.d.ts.map +1 -1
  110. package/dist/mobjects/text/Text.d.ts +2 -2
  111. package/dist/mobjects/text/Text.d.ts.map +1 -1
  112. package/dist/mobjects/text/Variable.d.ts +5 -5
  113. package/dist/mobjects/text/Variable.d.ts.map +1 -1
  114. package/dist/mobjects/text/index.d.ts +2 -2
  115. package/dist/mobjects/text/index.d.ts.map +1 -1
  116. package/dist/mobjects/text/katexStyles.d.ts.map +1 -1
  117. package/dist/mobjects/text/svgPathParser.d.ts.map +1 -1
  118. package/dist/mobjects/three-d/ThreeDAxes.d.ts +113 -9
  119. package/dist/mobjects/three-d/ThreeDAxes.d.ts.map +1 -1
  120. package/dist/player/Player.d.ts +8 -2
  121. package/dist/player/Player.d.ts.map +1 -1
  122. package/dist/player/PlayerController.d.ts +2 -0
  123. package/dist/player/PlayerController.d.ts.map +1 -1
  124. package/dist/player/PlayerUI.d.ts +5 -0
  125. package/dist/player/PlayerUI.d.ts.map +1 -1
  126. package/dist/src-Db7QTr4S.js +60248 -0
  127. package/dist/svg-CoGQ_sAt.js +23880 -0
  128. package/dist/svg-DiIG93Lr.js +23880 -0
  129. package/dist/tex-ChPKMfdv.js +401 -0
  130. package/dist/tex-hYZcjadW.js +401 -0
  131. package/dist/utils/math.d.ts +45 -0
  132. package/dist/utils/math.d.ts.map +1 -1
  133. package/package.json +6 -4
  134. package/dist/featureFlags-H97tY2Rw.js +0 -59814
  135. package/dist/mobjects/text/MathTexSVG.d.ts +0 -102
  136. package/dist/mobjects/text/MathTexSVG.d.ts.map +0 -1
@@ -1,249 +1,115 @@
1
- import { Mobject, Vector3Tuple } from '../../core/Mobject';
2
- /**
3
- * MathTex - LaTeX rendering for manimweb using KaTeX (default) or MathJax (fallback)
4
- *
5
- * This module provides LaTeX math rendering capabilities by:
6
- * 1. Using KaTeX to render LaTeX to HTML (fast, limited subset)
7
- * 2. Falling back to MathJax SVG output for unsupported LaTeX (full LaTeX support)
8
- * 3. Converting output to canvas via DOM walking / SVG foreignObject
9
- * 4. Creating a THREE.js textured plane mesh
10
- *
11
- * Renderer selection:
12
- * - 'katex' : KaTeX only (fast, limited subset)
13
- * - 'mathjax': MathJax only (slower, full LaTeX including \usepackage, align, etc.)
14
- * - 'auto' : Try KaTeX first; fall back to MathJax if KaTeX throws (default)
15
- */
16
- import * as THREE from 'three';
17
- /**
18
- * Which renderer to use for LaTeX.
19
- * - 'katex' : KaTeX only (fast, but limited LaTeX subset)
20
- * - 'mathjax': MathJax SVG only (slower, full LaTeX support)
21
- * - 'auto' : Try KaTeX first; if it throws, fall back to MathJax
22
- */
23
- export type TexRenderer = 'katex' | 'mathjax' | 'auto';
24
- /**
25
- * Options for creating a MathTex object
26
- */
1
+ import { VGroup } from '../../core/VGroup';
2
+ import { Vector3Tuple } from '../../core/Mobject';
27
3
  export interface MathTexOptions {
28
- /** LaTeX string or array of strings for multi-part expressions.
29
- * When an array is provided, each string becomes a separate sub-mobject
30
- * accessible via getPart(index), matching Python Manim's behavior. */
4
+ /** LaTeX string or array of strings for multi-part expressions. */
31
5
  latex: string | string[];
32
- /** Color as CSS color string. Default: '#ffffff' */
6
+ /** Color as CSS color string. Default: WHITE ('#ffffff') */
33
7
  color?: string;
34
- /** Base font size in pixels. Default: 48 */
8
+ /** Scale factor (1 = standard math size). Default: 1 */
35
9
  fontSize?: number;
36
10
  /** Use display mode (block) vs inline mode. Default: true */
37
11
  displayMode?: boolean;
38
- /** Position in 3D space. Default: [0, 0, 0] */
12
+ /** Position in 3D space. Default: [0,0,0] */
39
13
  position?: Vector3Tuple;
40
- /** Internal: padding in pixels around the rendered content. Default: 10 */
41
- _padding?: number;
42
- /**
43
- * Which renderer to use.
44
- * - 'katex' : KaTeX only (fast)
45
- * - 'mathjax': MathJax SVG only (full LaTeX support)
46
- * - 'auto' : KaTeX first, MathJax fallback (default)
47
- */
48
- renderer?: TexRenderer;
49
- }
50
- /**
51
- * Internal state for async rendering
52
- */
53
- interface RenderState {
54
- canvas: HTMLCanvasElement | null;
55
- texture: THREE.CanvasTexture | null;
56
- mesh: THREE.Mesh | null;
57
- width: number;
58
- height: number;
59
- isRendering: boolean;
60
- renderPromise: Promise<void> | null;
61
- renderError: Error | null;
14
+ /** Stroke width for glyph outlines. Default: 0 */
15
+ strokeWidth?: number;
16
+ /** Fill opacity for glyph interiors. Default: 1 */
17
+ fillOpacity?: number;
18
+ /** Explicit target height in world units. Overrides fontSize scaling. */
19
+ height?: number;
20
+ /** Custom LaTeX macros as { name: expansion }. */
21
+ macros?: Record<string, string>;
62
22
  }
63
- /**
64
- * MathTex - A mobject for rendering LaTeX mathematical expressions
65
- *
66
- * Uses KaTeX for LaTeX parsing and renders to a textured plane in Three.js.
67
- * The rendering is asynchronous but the constructor is synchronous.
68
- *
69
- * @example
70
- * ```typescript
71
- * // Create a simple equation
72
- * const equation = new MathTex({ latex: 'E = mc^2' });
73
- *
74
- * // Create a colored integral
75
- * const integral = new MathTex({
76
- * latex: '\\int_0^\\infty e^{-x^2} dx = \\frac{\\sqrt{\\pi}}{2}',
77
- * color: '#00ff00',
78
- * fontSize: 64
79
- * });
80
- *
81
- * // Wait for rendering to complete before animating
82
- * await integral.waitForRender();
83
- * ```
84
- */
85
- export declare class MathTex extends Mobject {
23
+ export declare class MathTex extends VGroup {
86
24
  protected _latex: string;
87
25
  protected _fontSize: number;
88
26
  protected _displayMode: boolean;
89
- protected _renderState: RenderState;
90
- /** User-requested renderer mode */
91
- protected _renderer: TexRenderer;
92
- /** Which renderer was actually used for the last successful render */
93
- protected _activeRenderer: 'katex' | 'mathjax' | null;
27
+ protected _color: string;
28
+ protected _svgStrokeWidth: number;
29
+ protected _svgFillOpacity: number;
30
+ protected _targetHeight: number | undefined;
31
+ protected _macros: Record<string, string> | undefined;
32
+ protected _svgViewBoxWidth: number;
94
33
  /** Whether this is a multi-part MathTex (created from string[]) */
95
34
  protected _isMultiPart: boolean;
96
- /** Child MathTex parts (only when _isMultiPart is true) */
97
- protected _parts: MathTex[];
98
- /** Promise that resolves when parts are arranged (multi-part only) */
99
- protected _arrangePromise: Promise<void> | null;
100
- /** Padding in pixels around rendered content */
101
- protected _padding: number;
35
+ /** Child part groups (only when _isMultiPart is true) */
36
+ protected _parts: VGroup[];
37
+ /** Promise that resolves when rendering is complete */
38
+ protected _renderPromise: Promise<void> | null;
39
+ /** Error from rendering, if any */
40
+ protected _renderError: Error | null;
102
41
  constructor(options: MathTexOptions);
103
- /**
104
- * Get the renderer mode
105
- */
106
- getRenderer(): TexRenderer;
107
- /**
108
- * Get which renderer was actually used for the current render.
109
- * Returns null if not yet rendered.
110
- */
111
- getActiveRenderer(): 'katex' | 'mathjax' | null;
112
- /**
113
- * Set the renderer mode and re-render.
114
- * @param renderer The renderer to use
115
- * @returns this for chaining
116
- */
117
- setRenderer(renderer: TexRenderer): this;
118
- /**
119
- * Get the LaTeX string
120
- */
121
- getLatex(): string;
122
- /**
123
- * Set the LaTeX string and re-render
124
- * @param latex New LaTeX string
125
- * @returns this for chaining
126
- */
127
- setLatex(latex: string): this;
128
- /**
129
- * Get the font size
130
- */
131
- getFontSize(): number;
132
- /**
133
- * Set the font size and re-render
134
- * @param size New font size in pixels
135
- * @returns this for chaining
136
- */
137
- setFontSize(size: number): this;
138
- /**
139
- * Override setColor — texture is always rendered white, so we only need
140
- * to update the material tint via _syncMaterialToThree (no re-render).
141
- */
142
- setColor(color: string): this;
143
- /**
144
- * Override setOpacity to propagate to multi-part children.
145
- */
146
- setOpacity(opacity: number): this;
147
42
  /**
148
43
  * Wait for the LaTeX to finish rendering.
149
- * For multi-part MathTex, waits for all parts to render and be arranged.
150
- * @returns Promise that resolves when rendering is complete
151
44
  */
152
45
  waitForRender(): Promise<void>;
153
46
  /**
154
- * Get a sub-part of a multi-part MathTex expression.
155
- * Only available when the MathTex was created with a string array.
156
- * @param index Zero-based index of the part
157
- * @returns The MathTex sub-part at the given index
47
+ * Get a sub-part of a multi-part expression.
48
+ * Only available when created with a string array.
49
+ * Returns a VGroup with setColor() support.
158
50
  */
159
- getPart(index: number): MathTex;
51
+ getPart(index: number): VGroup;
160
52
  /**
161
- * Get the number of parts (1 for single-string, N for multi-part).
53
+ * Get the number of parts.
162
54
  */
163
55
  getPartCount(): number;
164
56
  /**
165
- * Arrange child parts horizontally after they all render.
166
- * Positions parts so their content (minus padding) is seamlessly adjacent.
57
+ * Get the LaTeX string.
167
58
  */
168
- private _arrangeParts;
59
+ getLatex(): string;
169
60
  /**
170
- * Check if rendering is in progress
61
+ * Get the render error, if any.
62
+ * Returns null if rendering succeeded or is still in progress.
171
63
  */
172
- isRendering(): boolean;
64
+ getRenderError(): Error | null;
173
65
  /**
174
- * Get the rendered dimensions in world units
175
- * @returns [width, height] or [0, 0] if not yet rendered
66
+ * Override setColor to propagate to all VMobject children (fill + stroke).
176
67
  */
177
- getDimensions(): [number, number];
68
+ setColor(color: string): this;
178
69
  /**
179
- * Start the async rendering process
70
+ * Start the async rendering process.
180
71
  */
181
72
  protected _startRender(): void;
182
73
  /**
183
- * Render the LaTeX to a canvas using the selected renderer.
184
- *
185
- * Renderer selection logic:
186
- * - 'katex' : Use KaTeX directly (throwOnError: false)
187
- * - 'mathjax': Use MathJax SVG output, rendered to canvas via Image
188
- * - 'auto' : Try KaTeX with throwOnError: true. If it throws,
189
- * fall back to MathJax.
190
- */
191
- protected _renderLatex(): Promise<void>;
192
- /**
193
- * Determine which concrete renderer to use for the current LaTeX string.
74
+ * Render the LaTeX to VMobject paths.
194
75
  */
195
- private _resolveRenderer;
76
+ protected _render(): Promise<void>;
196
77
  /**
197
- * Parse an SVG dimension attribute that may use "ex" units and convert
198
- * to pixels. MathJax outputs width/height like "5.002ex"; parseFloat
199
- * strips the suffix, so we detect "ex" and scale appropriately.
78
+ * Restyle all VMobject children for solid glyph rendering.
200
79
  */
201
- private _parseSvgDimension;
80
+ protected _restyleChildren(group: VGroup): void;
202
81
  /**
203
- * Render using MathJax SVG output. The SVG is painted onto a canvas
204
- * texture in the same way the KaTeX path works, keeping the visual
205
- * pipeline consistent.
206
- */
207
- protected _renderLatexViaMathJax(): Promise<void>;
208
- /**
209
- * Render the LaTeX to a canvas by walking the KaTeX DOM
210
- * and drawing each text element at its computed CSS position.
211
- */
212
- protected _renderLatexViaKaTeX(): Promise<void>;
213
- /**
214
- * Walk the KaTeX DOM tree and render text nodes + SVG elements
215
- * at their computed CSS positions onto a canvas.
216
- */
217
- protected _renderDomToCanvas(container: HTMLElement, containerRect: DOMRect, width: number, height: number, padding: number): Promise<HTMLCanvasElement>;
218
- /**
219
- * Update the mesh geometry to match current dimensions
82
+ * Scale and center the assembled paths by transforming point data directly.
83
+ *
84
+ * Unit flow:
85
+ * - MathJax path coordinates arrive in font units (~1000 units per em).
86
+ * - Convert font-size points to world units via DEFAULT_FONT_SIZE_PT baseline.
87
+ * - Convert MathJax units to em by dividing by MATHJAX_SVG_UNITS_PER_EM.
88
+ *
89
+ * This keeps MathTex aligned with Text/MathTexImage behavior at 48pt.
220
90
  */
221
- protected _updateMeshGeometry(): void;
91
+ protected _scaleToTarget(): void;
222
92
  /**
223
- * Create the Three.js backing object
93
+ * Render a multi-part expression by:
94
+ * 1. Rendering the FULL expression as one MathJax call (correct layout)
95
+ * 2. Rendering each part separately to count its glyphs
96
+ * 3. Splitting the full expression's VMobjects into part groups by glyph count
224
97
  */
225
- protected _createThreeObject(): THREE.Object3D;
98
+ private _renderMultiPart;
226
99
  /**
227
- * Sync material properties to Three.js
100
+ * Lightweight VGroup used as a part container in multi-part mode.
101
+ * Supports setColor() for per-part coloring.
228
102
  */
229
- protected _syncMaterialToThree(): void;
103
+ private static _PartGroup;
230
104
  /**
231
- * Create a copy of this MathTex
105
+ * Create a copy of this MathTex.
232
106
  */
233
107
  protected _createCopy(): MathTex;
234
- /**
235
- * Set reveal progress for Write animation (left-to-right wipe).
236
- * @param alpha - Progress from 0 (hidden) to 1 (fully visible)
237
- */
238
- setRevealProgress(alpha: number): void;
239
- /**
240
- * Get the center of this MathTex
241
- */
242
- getCenter(): Vector3Tuple;
243
- /**
244
- * Clean up Three.js resources
245
- */
246
- dispose(): void;
247
108
  }
248
- export {};
109
+ /**
110
+ * @deprecated Use `MathTex` instead. `MathTexSVG` is a backwards-compatible alias.
111
+ */
112
+ export declare const MathTexSVG: typeof MathTex;
113
+ /** @deprecated Use `MathTexOptions` instead. */
114
+ export type MathTexSVGOptions = MathTexOptions;
249
115
  //# sourceMappingURL=MathTex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MathTex.d.ts","sourceRoot":"","sources":["../../../src/mobjects/text/MathTex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MathTex.d.ts","sourceRoot":"","sources":["../../../src/mobjects/text/MathTex.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,KAAK,EAAW,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQhE,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,qBAAa,OAAQ,SAAQ,MAAM;IACjC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC;IAChC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACtD,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAQ;IAE1C,mEAAmE;IACnE,SAAS,CAAC,YAAY,EAAE,OAAO,CAAS;IACxC,yDAAyD;IACzD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAM;IAChC,uDAAuD;IACvD,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAQ;IACtD,mCAAmC;IACnC,SAAS,CAAC,YAAY,EAAE,KAAK,GAAG,IAAI,CAAQ;gBAEhC,OAAO,EAAE,cAAc;IAyCnC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IASpC;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAU9B;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;OAGG;IACH,cAAc,IAAI,KAAK,GAAG,IAAI;IAI9B;;OAEG;IACM,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IA0BtC;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAW9B;;OAEG;cACa,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCxC;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAmB/C;;;;;;;;;OASG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAoDhC;;;;;OAKG;YACW,gBAAgB;IA4E9B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU,CAqBvB;IAEF;;OAEG;cACgB,WAAW,IAAI,OAAO;CAgB1C;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,gBAAU,CAAC;AAClC,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC"}
@@ -0,0 +1,258 @@
1
+ import { Mobject, Vector3Tuple } from '../../core/Mobject';
2
+ /**
3
+ * MathTexImage - Rasterized LaTeX rendering for manimweb using KaTeX (default) or MathJax (fallback)
4
+ *
5
+ * This module provides LaTeX math rendering capabilities by:
6
+ * 1. Using KaTeX to render LaTeX to HTML (fast, limited subset)
7
+ * 2. Falling back to MathJax SVG output for unsupported LaTeX (full LaTeX support)
8
+ * 3. Converting output to canvas via DOM walking / SVG foreignObject
9
+ * 4. Creating a THREE.js textured plane mesh
10
+ *
11
+ * Renderer selection:
12
+ * - 'katex' : KaTeX only (fast, limited subset)
13
+ * - 'mathjax': MathJax only (slower, full LaTeX including \usepackage, align, etc.)
14
+ * - 'auto' : Try KaTeX first; fall back to MathJax if KaTeX throws (default)
15
+ *
16
+ * NOTE: This is the rasterized (texture-based) renderer. For SVG path-based
17
+ * rendering (recommended), use MathTex from './MathTex' instead.
18
+ */
19
+ import * as THREE from 'three';
20
+ /**
21
+ * Which renderer to use for LaTeX.
22
+ * - 'katex' : KaTeX only (fast, but limited LaTeX subset)
23
+ * - 'mathjax': MathJax SVG only (slower, full LaTeX support)
24
+ * - 'auto' : Try KaTeX first; if it throws, fall back to MathJax
25
+ */
26
+ export type TexRenderer = 'katex' | 'mathjax' | 'auto';
27
+ /**
28
+ * Options for creating a MathTexImage object
29
+ */
30
+ export interface MathTexImageOptions {
31
+ /** LaTeX string or array of strings for multi-part expressions.
32
+ * When an array is provided, each string becomes a separate sub-mobject
33
+ * accessible via getPart(index), matching Python Manim's behavior. */
34
+ latex: string | string[];
35
+ /** Color as CSS color string. Default: '#ffffff' */
36
+ color?: string;
37
+ /** Base font size in pixels. Default: 48 */
38
+ fontSize?: number;
39
+ /** Use display mode (block) vs inline mode. Default: true */
40
+ displayMode?: boolean;
41
+ /** Position in 3D space. Default: [0, 0, 0] */
42
+ position?: Vector3Tuple;
43
+ /** Internal: padding in pixels around the rendered content. Default: 10 */
44
+ _padding?: number;
45
+ /**
46
+ * Which renderer to use.
47
+ * - 'katex' : KaTeX only (fast)
48
+ * - 'mathjax': MathJax SVG only (full LaTeX support)
49
+ * - 'auto' : KaTeX first, MathJax fallback (default)
50
+ */
51
+ renderer?: TexRenderer;
52
+ }
53
+ /**
54
+ * Internal state for async rendering
55
+ */
56
+ interface RenderState {
57
+ canvas: HTMLCanvasElement | null;
58
+ texture: THREE.CanvasTexture | null;
59
+ mesh: THREE.Mesh | null;
60
+ width: number;
61
+ height: number;
62
+ isRendering: boolean;
63
+ renderPromise: Promise<void> | null;
64
+ renderError: Error | null;
65
+ }
66
+ /**
67
+ * MathTexImage - A mobject for rendering LaTeX mathematical expressions via rasterization
68
+ *
69
+ * Uses KaTeX for LaTeX parsing and renders to a textured plane in Three.js.
70
+ * The rendering is asynchronous but the constructor is synchronous.
71
+ *
72
+ * NOTE: For SVG path-based rendering (recommended, like Python Manim), use MathTex instead.
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * // Create a simple equation (rasterized)
77
+ * const equation = new MathTexImage({ latex: 'E = mc^2' });
78
+ *
79
+ * // Create a colored integral
80
+ * const integral = new MathTexImage({
81
+ * latex: '\\int_0^\\infty e^{-x^2} dx = \\frac{\\sqrt{\\pi}}{2}',
82
+ * color: '#00ff00',
83
+ * fontSize: 64
84
+ * });
85
+ *
86
+ * // Wait for rendering to complete before animating
87
+ * await integral.waitForRender();
88
+ * ```
89
+ */
90
+ export declare class MathTexImage extends Mobject {
91
+ protected _latex: string;
92
+ protected _fontSize: number;
93
+ protected _displayMode: boolean;
94
+ protected _renderState: RenderState;
95
+ /** User-requested renderer mode */
96
+ protected _renderer: TexRenderer;
97
+ /** Which renderer was actually used for the last successful render */
98
+ protected _activeRenderer: 'katex' | 'mathjax' | null;
99
+ /** Whether this is a multi-part MathTexImage (created from string[]) */
100
+ protected _isMultiPart: boolean;
101
+ /** Child MathTexImage parts (only when _isMultiPart is true) */
102
+ protected _parts: MathTexImage[];
103
+ /** Promise that resolves when parts are arranged (multi-part only) */
104
+ protected _arrangePromise: Promise<void> | null;
105
+ /** Padding in pixels around rendered content */
106
+ protected _padding: number;
107
+ constructor(options: MathTexImageOptions);
108
+ /**
109
+ * Get the renderer mode
110
+ */
111
+ getRenderer(): TexRenderer;
112
+ /**
113
+ * Get which renderer was actually used for the current render.
114
+ * Returns null if not yet rendered.
115
+ */
116
+ getActiveRenderer(): 'katex' | 'mathjax' | null;
117
+ /**
118
+ * Set the renderer mode and re-render.
119
+ * @param renderer The renderer to use
120
+ * @returns this for chaining
121
+ */
122
+ setRenderer(renderer: TexRenderer): this;
123
+ /**
124
+ * Get the LaTeX string
125
+ */
126
+ getLatex(): string;
127
+ /**
128
+ * Set the LaTeX string and re-render
129
+ * @param latex New LaTeX string
130
+ * @returns this for chaining
131
+ */
132
+ setLatex(latex: string): this;
133
+ /**
134
+ * Get the font size
135
+ */
136
+ getFontSize(): number;
137
+ /**
138
+ * Set the font size and re-render
139
+ * @param size New font size in pixels
140
+ * @returns this for chaining
141
+ */
142
+ setFontSize(size: number): this;
143
+ /**
144
+ * Override setColor — texture is always rendered white, so we only need
145
+ * to update the material tint via _syncMaterialToThree (no re-render).
146
+ */
147
+ setColor(color: string): this;
148
+ /**
149
+ * Override setStrokeOpacity to propagate to multi-part children.
150
+ */
151
+ setStrokeOpacity(opacity: number): this;
152
+ /**
153
+ * Wait for the LaTeX to finish rendering.
154
+ * For multi-part MathTexImage, waits for all parts to render and be arranged.
155
+ * @returns Promise that resolves when rendering is complete
156
+ */
157
+ waitForRender(): Promise<void>;
158
+ /**
159
+ * Get a sub-part of a multi-part MathTexImage expression.
160
+ * Only available when the MathTexImage was created with a string array.
161
+ * @param index Zero-based index of the part
162
+ * @returns The MathTexImage sub-part at the given index
163
+ */
164
+ getPart(index: number): MathTexImage;
165
+ /**
166
+ * Get the number of parts (1 for single-string, N for multi-part).
167
+ */
168
+ getPartCount(): number;
169
+ /**
170
+ * Arrange child parts horizontally after they all render.
171
+ * Positions parts so their content (minus padding) is seamlessly adjacent.
172
+ */
173
+ private _arrangeParts;
174
+ /**
175
+ * Check if rendering is in progress
176
+ */
177
+ isRendering(): boolean;
178
+ /**
179
+ * Get the rendered dimensions in world units
180
+ * @returns [width, height] or [0, 0] if not yet rendered
181
+ */
182
+ getDimensions(): [number, number];
183
+ /**
184
+ * Start the async rendering process
185
+ */
186
+ protected _startRender(): void;
187
+ /**
188
+ * Render the LaTeX to a canvas using the selected renderer.
189
+ *
190
+ * Renderer selection logic:
191
+ * - 'katex' : Use KaTeX directly (throwOnError: false)
192
+ * - 'mathjax': Use MathJax SVG output, rendered to canvas via Image
193
+ * - 'auto' : Try KaTeX with throwOnError: true. If it throws,
194
+ * fall back to MathJax.
195
+ */
196
+ protected _renderLatex(): Promise<void>;
197
+ /**
198
+ * Determine which concrete renderer to use for the current LaTeX string.
199
+ */
200
+ private _resolveRenderer;
201
+ /**
202
+ * Parse an SVG dimension attribute that may use "ex" units and convert
203
+ * to pixels. MathJax outputs width/height like "5.002ex"; parseFloat
204
+ * strips the suffix, so we detect "ex" and scale appropriately.
205
+ */
206
+ private _parseSvgDimension;
207
+ /**
208
+ * Render using MathJax SVG output. The SVG is painted onto a canvas
209
+ * texture in the same way the KaTeX path works, keeping the visual
210
+ * pipeline consistent.
211
+ */
212
+ protected _renderLatexViaMathJax(): Promise<void>;
213
+ /**
214
+ * Render the LaTeX to a canvas by walking the KaTeX DOM
215
+ * and drawing each text element at its computed CSS position.
216
+ *
217
+ * IMPORTANT: The canvas dimensions are in pixel space, rendered at the
218
+ * user's fontSize (e.g., fontSize=48 → 48px). The caller must convert
219
+ * these pixel dimensions to world space using scaleFactor = 0.01.
220
+ */
221
+ protected _renderLatexViaKaTeX(): Promise<void>;
222
+ /**
223
+ * Walk the KaTeX DOM tree and render text nodes + SVG elements
224
+ * at their computed CSS positions onto a canvas.
225
+ */
226
+ protected _renderDomToCanvas(container: HTMLElement, containerRect: DOMRect, width: number, height: number, padding: number, scale?: number): Promise<HTMLCanvasElement>;
227
+ /**
228
+ * Update the mesh geometry to match current dimensions
229
+ */
230
+ protected _updateMeshGeometry(): void;
231
+ /**
232
+ * Create the Three.js backing object
233
+ */
234
+ protected _createThreeObject(): THREE.Object3D;
235
+ /**
236
+ * Sync material properties to Three.js
237
+ */
238
+ protected _syncMaterialToThree(): void;
239
+ /**
240
+ * Create a copy of this MathTexImage
241
+ */
242
+ protected _createCopy(): MathTexImage;
243
+ /**
244
+ * Set reveal progress for Write animation (left-to-right wipe).
245
+ * @param alpha - Progress from 0 (hidden) to 1 (fully visible)
246
+ */
247
+ setRevealProgress(alpha: number): void;
248
+ /**
249
+ * Get the center of this MathTexImage
250
+ */
251
+ getCenter(): Vector3Tuple;
252
+ /**
253
+ * Clean up Three.js resources
254
+ */
255
+ dispose(): void;
256
+ }
257
+ export {};
258
+ //# sourceMappingURL=MathTexImage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MathTexImage.d.ts","sourceRoot":"","sources":["../../../src/mobjects/text/MathTexImage.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import { MathTex, MathTexOptions } from './MathTex';
1
+ import { MathTexImage, MathTexImageOptions } from './MathTexImage';
2
2
  import { VGroup } from '../../core/VGroup';
3
- export type SingleStringMathTexOptions = Omit<MathTexOptions, 'latex'>;
3
+ export type SingleStringMathTexOptions = Omit<MathTexImageOptions, 'latex'>;
4
4
  /**
5
- * SingleStringMathTex - A variant of MathTex for single-string LaTeX
5
+ * SingleStringMathTex - A variant of MathTexImage for single-string LaTeX
6
6
  *
7
- * Wraps MathTex but enforces that the LaTeX is treated as a single
7
+ * Wraps MathTexImage but enforces that the LaTeX is treated as a single
8
8
  * indivisible expression (no part splitting).
9
9
  */
10
- export declare class SingleStringMathTex extends MathTex {
10
+ export declare class SingleStringMathTex extends MathTexImage {
11
11
  constructor(latex: string, options?: SingleStringMathTexOptions);
12
12
  /**
13
13
  * Get the LaTeX source string
@@ -21,10 +21,10 @@ export interface MathTexPartOptions {
21
21
  fontSize?: number;
22
22
  }
23
23
  /**
24
- * MathTexPart - Represents a selectable part of a MathTex expression
24
+ * MathTexPart - Represents a selectable part of a MathTexImage expression
25
25
  *
26
- * Allows creating MathTex expressions with individually styleable/animatable parts.
27
- * Each part is a separate MathTex that can be colored or animated independently.
26
+ * Allows creating MathTexImage expressions with individually styleable/animatable parts.
27
+ * Each part is a separate MathTexImage that can be colored or animated independently.
28
28
  *
29
29
  * @example
30
30
  * ```typescript
@@ -55,11 +55,11 @@ export declare class MathTexPart extends VGroup {
55
55
  /**
56
56
  * Get a specific part by index
57
57
  */
58
- getPart(index: number): MathTex | undefined;
58
+ getPart(index: number): MathTexImage | undefined;
59
59
  /**
60
60
  * Get all parts
61
61
  */
62
- getParts(): MathTex[];
62
+ getParts(): MathTexImage[];
63
63
  /**
64
64
  * Get the number of parts
65
65
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MathTexParts.d.ts","sourceRoot":"","sources":["../../../src/mobjects/text/MathTexParts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,OAAO;gBAClC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,0BAA+B;IAInE;;OAEG;IACH,YAAY,IAAI,MAAM;CAGvB;AAED,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,WAAY,SAAQ,MAAM;IACrC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,YAAY,CAAgB;;IAMpC;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAClE,OAAO,GAAE,MAAY,GACpB,WAAW;IAgCd;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI3C;;OAEG;IACH,QAAQ,IAAI,OAAO,EAAE;IAIrB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOhD;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,YAAY,IAAI,MAAM;CAGvB"}
1
+ {"version":3,"file":"MathTexParts.d.ts","sourceRoot":"","sources":["../../../src/mobjects/text/MathTexParts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;gBACvC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,0BAA+B;IAInE;;OAEG;IACH,YAAY,IAAI,MAAM;CAGvB;AAED,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,WAAY,SAAQ,MAAM;IACrC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,YAAY,CAAgB;;IAMpC;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAClE,OAAO,GAAE,MAAY,GACpB,WAAW;IAgCd;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIhD;;OAEG;IACH,QAAQ,IAAI,YAAY,EAAE;IAI1B;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOhD;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,YAAY,IAAI,MAAM;CAGvB"}