manim-web 0.2.0

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 (356) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/dist/animation/Animation.d.ts +69 -0
  4. package/dist/animation/Animation.d.ts.map +1 -0
  5. package/dist/animation/AnimationGroup.d.ts +48 -0
  6. package/dist/animation/AnimationGroup.d.ts.map +1 -0
  7. package/dist/animation/LaggedStart.d.ts +25 -0
  8. package/dist/animation/LaggedStart.d.ts.map +1 -0
  9. package/dist/animation/MaintainPositionRelativeTo.d.ts +23 -0
  10. package/dist/animation/MaintainPositionRelativeTo.d.ts.map +1 -0
  11. package/dist/animation/Succession.d.ts +19 -0
  12. package/dist/animation/Succession.d.ts.map +1 -0
  13. package/dist/animation/Timeline.d.ts +89 -0
  14. package/dist/animation/Timeline.d.ts.map +1 -0
  15. package/dist/animation/UpdateFromAlphaFunc.d.ts +32 -0
  16. package/dist/animation/UpdateFromAlphaFunc.d.ts.map +1 -0
  17. package/dist/animation/UpdateFromFunc.d.ts +30 -0
  18. package/dist/animation/UpdateFromFunc.d.ts.map +1 -0
  19. package/dist/animation/changing/index.d.ts +213 -0
  20. package/dist/animation/changing/index.d.ts.map +1 -0
  21. package/dist/animation/composition/LaggedStartMap.d.ts +47 -0
  22. package/dist/animation/composition/LaggedStartMap.d.ts.map +1 -0
  23. package/dist/animation/composition/index.d.ts +5 -0
  24. package/dist/animation/composition/index.d.ts.map +1 -0
  25. package/dist/animation/creation/Create.d.ts +232 -0
  26. package/dist/animation/creation/Create.d.ts.map +1 -0
  27. package/dist/animation/creation/CreationExtensions.d.ts +127 -0
  28. package/dist/animation/creation/CreationExtensions.d.ts.map +1 -0
  29. package/dist/animation/creation/TypeWithCursor.d.ts +133 -0
  30. package/dist/animation/creation/TypeWithCursor.d.ts.map +1 -0
  31. package/dist/animation/creation/index.d.ts +4 -0
  32. package/dist/animation/creation/index.d.ts.map +1 -0
  33. package/dist/animation/fading/FadeIn.d.ts +31 -0
  34. package/dist/animation/fading/FadeIn.d.ts.map +1 -0
  35. package/dist/animation/fading/FadeOut.d.ts +32 -0
  36. package/dist/animation/fading/FadeOut.d.ts.map +1 -0
  37. package/dist/animation/fading/index.d.ts +3 -0
  38. package/dist/animation/fading/index.d.ts.map +1 -0
  39. package/dist/animation/growing/index.d.ts +103 -0
  40. package/dist/animation/growing/index.d.ts.map +1 -0
  41. package/dist/animation/index.d.ts +20 -0
  42. package/dist/animation/index.d.ts.map +1 -0
  43. package/dist/animation/indication/ApplyWave.d.ts +51 -0
  44. package/dist/animation/indication/ApplyWave.d.ts.map +1 -0
  45. package/dist/animation/indication/Blink.d.ts +34 -0
  46. package/dist/animation/indication/Blink.d.ts.map +1 -0
  47. package/dist/animation/indication/Circumscribe.d.ts +54 -0
  48. package/dist/animation/indication/Circumscribe.d.ts.map +1 -0
  49. package/dist/animation/indication/Flash.d.ts +45 -0
  50. package/dist/animation/indication/Flash.d.ts.map +1 -0
  51. package/dist/animation/indication/FocusOn.d.ts +79 -0
  52. package/dist/animation/indication/FocusOn.d.ts.map +1 -0
  53. package/dist/animation/indication/Indicate.d.ts +30 -0
  54. package/dist/animation/indication/Indicate.d.ts.map +1 -0
  55. package/dist/animation/indication/ShowCreationThenDestruction.d.ts +26 -0
  56. package/dist/animation/indication/ShowCreationThenDestruction.d.ts.map +1 -0
  57. package/dist/animation/indication/ShowPassingFlash.d.ts +47 -0
  58. package/dist/animation/indication/ShowPassingFlash.d.ts.map +1 -0
  59. package/dist/animation/indication/ShowPassingFlashWithThinningStrokeWidth.d.ts +21 -0
  60. package/dist/animation/indication/ShowPassingFlashWithThinningStrokeWidth.d.ts.map +1 -0
  61. package/dist/animation/indication/Wiggle.d.ts +48 -0
  62. package/dist/animation/indication/Wiggle.d.ts.map +1 -0
  63. package/dist/animation/indication/WiggleOutThenIn.d.ts +44 -0
  64. package/dist/animation/indication/WiggleOutThenIn.d.ts.map +1 -0
  65. package/dist/animation/indication/index.d.ts +20 -0
  66. package/dist/animation/indication/index.d.ts.map +1 -0
  67. package/dist/animation/movement/Homotopy.d.ts +204 -0
  68. package/dist/animation/movement/Homotopy.d.ts.map +1 -0
  69. package/dist/animation/movement/MoveAlongPath.d.ts +48 -0
  70. package/dist/animation/movement/MoveAlongPath.d.ts.map +1 -0
  71. package/dist/animation/movement/Rotate.d.ts +47 -0
  72. package/dist/animation/movement/Rotate.d.ts.map +1 -0
  73. package/dist/animation/movement/Scale.d.ts +74 -0
  74. package/dist/animation/movement/Scale.d.ts.map +1 -0
  75. package/dist/animation/movement/Shift.d.ts +74 -0
  76. package/dist/animation/movement/Shift.d.ts.map +1 -0
  77. package/dist/animation/movement/index.d.ts +6 -0
  78. package/dist/animation/movement/index.d.ts.map +1 -0
  79. package/dist/animation/numbers/index.d.ts +152 -0
  80. package/dist/animation/numbers/index.d.ts.map +1 -0
  81. package/dist/animation/speed/index.d.ts +114 -0
  82. package/dist/animation/speed/index.d.ts.map +1 -0
  83. package/dist/animation/transform/ApplyPointwiseFunction.d.ts +23 -0
  84. package/dist/animation/transform/ApplyPointwiseFunction.d.ts.map +1 -0
  85. package/dist/animation/transform/Transform.d.ts +89 -0
  86. package/dist/animation/transform/Transform.d.ts.map +1 -0
  87. package/dist/animation/transform/TransformExtensions.d.ts +444 -0
  88. package/dist/animation/transform/TransformExtensions.d.ts.map +1 -0
  89. package/dist/animation/transform/TransformMatching.d.ts +138 -0
  90. package/dist/animation/transform/TransformMatching.d.ts.map +1 -0
  91. package/dist/animation/transform/index.d.ts +5 -0
  92. package/dist/animation/transform/index.d.ts.map +1 -0
  93. package/dist/animation/utility/index.d.ts +171 -0
  94. package/dist/animation/utility/index.d.ts.map +1 -0
  95. package/dist/constants/colors.d.ts +72 -0
  96. package/dist/constants/colors.d.ts.map +1 -0
  97. package/dist/constants/colors.test.d.ts +2 -0
  98. package/dist/constants/colors.test.d.ts.map +1 -0
  99. package/dist/constants/directions.test.d.ts +2 -0
  100. package/dist/constants/directions.test.d.ts.map +1 -0
  101. package/dist/constants/index.d.ts +16 -0
  102. package/dist/constants/index.d.ts.map +1 -0
  103. package/dist/core/AudioManager.d.ts +203 -0
  104. package/dist/core/AudioManager.d.ts.map +1 -0
  105. package/dist/core/Camera.d.ts +172 -0
  106. package/dist/core/Camera.d.ts.map +1 -0
  107. package/dist/core/Camera2DFrame.d.ts +31 -0
  108. package/dist/core/Camera2DFrame.d.ts.map +1 -0
  109. package/dist/core/CameraExtensions.d.ts +420 -0
  110. package/dist/core/CameraExtensions.d.ts.map +1 -0
  111. package/dist/core/CameraFrame.d.ts +178 -0
  112. package/dist/core/CameraFrame.d.ts.map +1 -0
  113. package/dist/core/Group.d.ts +139 -0
  114. package/dist/core/Group.d.ts.map +1 -0
  115. package/dist/core/InteractiveScene.d.ts +122 -0
  116. package/dist/core/InteractiveScene.d.ts.map +1 -0
  117. package/dist/core/Lighting.d.ts +128 -0
  118. package/dist/core/Lighting.d.ts.map +1 -0
  119. package/dist/core/Mobject.d.ts +488 -0
  120. package/dist/core/Mobject.d.ts.map +1 -0
  121. package/dist/core/Renderer.d.ts +84 -0
  122. package/dist/core/Renderer.d.ts.map +1 -0
  123. package/dist/core/Scene.d.ts +353 -0
  124. package/dist/core/Scene.d.ts.map +1 -0
  125. package/dist/core/SceneExtensions.d.ts +640 -0
  126. package/dist/core/SceneExtensions.d.ts.map +1 -0
  127. package/dist/core/SceneExtensions.test.d.ts +2 -0
  128. package/dist/core/SceneExtensions.test.d.ts.map +1 -0
  129. package/dist/core/StateManager.d.ts +193 -0
  130. package/dist/core/StateManager.d.ts.map +1 -0
  131. package/dist/core/VDict.d.ts +229 -0
  132. package/dist/core/VDict.d.ts.map +1 -0
  133. package/dist/core/VGroup.d.ts +200 -0
  134. package/dist/core/VGroup.d.ts.map +1 -0
  135. package/dist/core/VMobject.d.ts +419 -0
  136. package/dist/core/VMobject.d.ts.map +1 -0
  137. package/dist/core/index.d.ts +16 -0
  138. package/dist/core/index.d.ts.map +1 -0
  139. package/dist/examples.test.d.ts +2 -0
  140. package/dist/examples.test.d.ts.map +1 -0
  141. package/dist/export/GifExporter.d.ts +40 -0
  142. package/dist/export/GifExporter.d.ts.map +1 -0
  143. package/dist/export/VideoExporter.d.ts +135 -0
  144. package/dist/export/VideoExporter.d.ts.map +1 -0
  145. package/dist/export/index.d.ts +3 -0
  146. package/dist/export/index.d.ts.map +1 -0
  147. package/dist/index.d.ts +65 -0
  148. package/dist/index.d.ts.map +1 -0
  149. package/dist/index.js +49064 -0
  150. package/dist/integrations/index.d.ts +1 -0
  151. package/dist/integrations/index.d.ts.map +1 -0
  152. package/dist/integrations/react.d.ts +144 -0
  153. package/dist/integrations/react.d.ts.map +1 -0
  154. package/dist/integrations/react.js +570 -0
  155. package/dist/integrations/vue.d.ts +249 -0
  156. package/dist/integrations/vue.d.ts.map +1 -0
  157. package/dist/integrations/vue.js +560 -0
  158. package/dist/interaction/Clickable.d.ts +71 -0
  159. package/dist/interaction/Clickable.d.ts.map +1 -0
  160. package/dist/interaction/Controls.d.ts +174 -0
  161. package/dist/interaction/Controls.d.ts.map +1 -0
  162. package/dist/interaction/Draggable.d.ts +88 -0
  163. package/dist/interaction/Draggable.d.ts.map +1 -0
  164. package/dist/interaction/Hoverable.d.ts +82 -0
  165. package/dist/interaction/Hoverable.d.ts.map +1 -0
  166. package/dist/interaction/OrbitControls.d.ts +139 -0
  167. package/dist/interaction/OrbitControls.d.ts.map +1 -0
  168. package/dist/interaction/PlaybackControls.d.ts +113 -0
  169. package/dist/interaction/PlaybackControls.d.ts.map +1 -0
  170. package/dist/interaction/SelectionManager.d.ts +125 -0
  171. package/dist/interaction/SelectionManager.d.ts.map +1 -0
  172. package/dist/interaction/index.d.ts +12 -0
  173. package/dist/interaction/index.d.ts.map +1 -0
  174. package/dist/mobjects/fractals/MandelbrotSet.d.ts +92 -0
  175. package/dist/mobjects/fractals/MandelbrotSet.d.ts.map +1 -0
  176. package/dist/mobjects/fractals/NewtonFractal.d.ts +121 -0
  177. package/dist/mobjects/fractals/NewtonFractal.d.ts.map +1 -0
  178. package/dist/mobjects/fractals/index.d.ts +3 -0
  179. package/dist/mobjects/fractals/index.d.ts.map +1 -0
  180. package/dist/mobjects/frame/index.d.ts +188 -0
  181. package/dist/mobjects/frame/index.d.ts.map +1 -0
  182. package/dist/mobjects/geometry/AngleShapes.d.ts +326 -0
  183. package/dist/mobjects/geometry/AngleShapes.d.ts.map +1 -0
  184. package/dist/mobjects/geometry/Arc.d.ts +111 -0
  185. package/dist/mobjects/geometry/Arc.d.ts.map +1 -0
  186. package/dist/mobjects/geometry/ArcBetweenPoints.d.ts +68 -0
  187. package/dist/mobjects/geometry/ArcBetweenPoints.d.ts.map +1 -0
  188. package/dist/mobjects/geometry/ArcShapes.d.ts +659 -0
  189. package/dist/mobjects/geometry/ArcShapes.d.ts.map +1 -0
  190. package/dist/mobjects/geometry/Arrow.d.ts +130 -0
  191. package/dist/mobjects/geometry/Arrow.d.ts.map +1 -0
  192. package/dist/mobjects/geometry/ArrowTips.d.ts +238 -0
  193. package/dist/mobjects/geometry/ArrowTips.d.ts.map +1 -0
  194. package/dist/mobjects/geometry/BooleanOperations.d.ts +163 -0
  195. package/dist/mobjects/geometry/BooleanOperations.d.ts.map +1 -0
  196. package/dist/mobjects/geometry/Circle.d.ts +92 -0
  197. package/dist/mobjects/geometry/Circle.d.ts.map +1 -0
  198. package/dist/mobjects/geometry/CubicBezier.d.ts +126 -0
  199. package/dist/mobjects/geometry/CubicBezier.d.ts.map +1 -0
  200. package/dist/mobjects/geometry/DashedLine.d.ts +109 -0
  201. package/dist/mobjects/geometry/DashedLine.d.ts.map +1 -0
  202. package/dist/mobjects/geometry/DashedVMobject.d.ts +96 -0
  203. package/dist/mobjects/geometry/DashedVMobject.d.ts.map +1 -0
  204. package/dist/mobjects/geometry/Dot.d.ts +100 -0
  205. package/dist/mobjects/geometry/Dot.d.ts.map +1 -0
  206. package/dist/mobjects/geometry/LabeledGeometry.d.ts +372 -0
  207. package/dist/mobjects/geometry/LabeledGeometry.d.ts.map +1 -0
  208. package/dist/mobjects/geometry/Line.d.ts +83 -0
  209. package/dist/mobjects/geometry/Line.d.ts.map +1 -0
  210. package/dist/mobjects/geometry/Polygon.d.ts +155 -0
  211. package/dist/mobjects/geometry/Polygon.d.ts.map +1 -0
  212. package/dist/mobjects/geometry/PolygonExtensions.d.ts +412 -0
  213. package/dist/mobjects/geometry/PolygonExtensions.d.ts.map +1 -0
  214. package/dist/mobjects/geometry/Rectangle.d.ts +123 -0
  215. package/dist/mobjects/geometry/Rectangle.d.ts.map +1 -0
  216. package/dist/mobjects/geometry/ShapeMatchers.d.ts +252 -0
  217. package/dist/mobjects/geometry/ShapeMatchers.d.ts.map +1 -0
  218. package/dist/mobjects/geometry/index.d.ts +25 -0
  219. package/dist/mobjects/geometry/index.d.ts.map +1 -0
  220. package/dist/mobjects/graph/index.d.ts +425 -0
  221. package/dist/mobjects/graph/index.d.ts.map +1 -0
  222. package/dist/mobjects/graphing/Axes.d.ts +254 -0
  223. package/dist/mobjects/graphing/Axes.d.ts.map +1 -0
  224. package/dist/mobjects/graphing/BarChart.d.ts +241 -0
  225. package/dist/mobjects/graphing/BarChart.d.ts.map +1 -0
  226. package/dist/mobjects/graphing/ComplexPlane.d.ts +311 -0
  227. package/dist/mobjects/graphing/ComplexPlane.d.ts.map +1 -0
  228. package/dist/mobjects/graphing/FunctionGraph.d.ts +123 -0
  229. package/dist/mobjects/graphing/FunctionGraph.d.ts.map +1 -0
  230. package/dist/mobjects/graphing/ImplicitFunction.d.ts +131 -0
  231. package/dist/mobjects/graphing/ImplicitFunction.d.ts.map +1 -0
  232. package/dist/mobjects/graphing/NumberLine.d.ts +195 -0
  233. package/dist/mobjects/graphing/NumberLine.d.ts.map +1 -0
  234. package/dist/mobjects/graphing/NumberPlane.d.ts +91 -0
  235. package/dist/mobjects/graphing/NumberPlane.d.ts.map +1 -0
  236. package/dist/mobjects/graphing/ParametricFunction.d.ts +111 -0
  237. package/dist/mobjects/graphing/ParametricFunction.d.ts.map +1 -0
  238. package/dist/mobjects/graphing/Vector.d.ts +121 -0
  239. package/dist/mobjects/graphing/Vector.d.ts.map +1 -0
  240. package/dist/mobjects/graphing/VectorField.d.ts +321 -0
  241. package/dist/mobjects/graphing/VectorField.d.ts.map +1 -0
  242. package/dist/mobjects/graphing/index.d.ts +18 -0
  243. package/dist/mobjects/graphing/index.d.ts.map +1 -0
  244. package/dist/mobjects/image/index.d.ts +223 -0
  245. package/dist/mobjects/image/index.d.ts.map +1 -0
  246. package/dist/mobjects/matrix/Matrix.d.ts +260 -0
  247. package/dist/mobjects/matrix/Matrix.d.ts.map +1 -0
  248. package/dist/mobjects/matrix/index.d.ts +8 -0
  249. package/dist/mobjects/matrix/index.d.ts.map +1 -0
  250. package/dist/mobjects/point/index.d.ts +707 -0
  251. package/dist/mobjects/point/index.d.ts.map +1 -0
  252. package/dist/mobjects/probability/DiceFace.d.ts +137 -0
  253. package/dist/mobjects/probability/DiceFace.d.ts.map +1 -0
  254. package/dist/mobjects/probability/SampleSpace.d.ts +267 -0
  255. package/dist/mobjects/probability/SampleSpace.d.ts.map +1 -0
  256. package/dist/mobjects/probability/index.d.ts +9 -0
  257. package/dist/mobjects/probability/index.d.ts.map +1 -0
  258. package/dist/mobjects/svg/Brace.d.ts +308 -0
  259. package/dist/mobjects/svg/Brace.d.ts.map +1 -0
  260. package/dist/mobjects/svg/SVGMobject.d.ts +64 -0
  261. package/dist/mobjects/svg/SVGMobject.d.ts.map +1 -0
  262. package/dist/mobjects/svg/index.d.ts +10 -0
  263. package/dist/mobjects/svg/index.d.ts.map +1 -0
  264. package/dist/mobjects/table/Table.d.ts +315 -0
  265. package/dist/mobjects/table/Table.d.ts.map +1 -0
  266. package/dist/mobjects/table/index.d.ts +8 -0
  267. package/dist/mobjects/table/index.d.ts.map +1 -0
  268. package/dist/mobjects/text/Code.d.ts +244 -0
  269. package/dist/mobjects/text/Code.d.ts.map +1 -0
  270. package/dist/mobjects/text/DecimalNumber.d.ts +199 -0
  271. package/dist/mobjects/text/DecimalNumber.d.ts.map +1 -0
  272. package/dist/mobjects/text/GlyphVMobject.d.ts +76 -0
  273. package/dist/mobjects/text/GlyphVMobject.d.ts.map +1 -0
  274. package/dist/mobjects/text/MarkupText.d.ts +161 -0
  275. package/dist/mobjects/text/MarkupText.d.ts.map +1 -0
  276. package/dist/mobjects/text/MathJaxRenderer.d.ts +49 -0
  277. package/dist/mobjects/text/MathJaxRenderer.d.ts.map +1 -0
  278. package/dist/mobjects/text/MathTex.d.ts +242 -0
  279. package/dist/mobjects/text/MathTex.d.ts.map +1 -0
  280. package/dist/mobjects/text/Paragraph.d.ts +86 -0
  281. package/dist/mobjects/text/Paragraph.d.ts.map +1 -0
  282. package/dist/mobjects/text/Tex.d.ts +40 -0
  283. package/dist/mobjects/text/Tex.d.ts.map +1 -0
  284. package/dist/mobjects/text/Text.d.ts +171 -0
  285. package/dist/mobjects/text/Text.d.ts.map +1 -0
  286. package/dist/mobjects/text/TextExtensions.d.ts +383 -0
  287. package/dist/mobjects/text/TextExtensions.d.ts.map +1 -0
  288. package/dist/mobjects/text/TextGlyphGroup.d.ts +48 -0
  289. package/dist/mobjects/text/TextGlyphGroup.d.ts.map +1 -0
  290. package/dist/mobjects/text/Variable.d.ts +160 -0
  291. package/dist/mobjects/text/Variable.d.ts.map +1 -0
  292. package/dist/mobjects/text/index.d.ts +21 -0
  293. package/dist/mobjects/text/index.d.ts.map +1 -0
  294. package/dist/mobjects/text/katex-styles.d.ts +23 -0
  295. package/dist/mobjects/text/katex-styles.d.ts.map +1 -0
  296. package/dist/mobjects/text/svgPathParser.d.ts +39 -0
  297. package/dist/mobjects/text/svgPathParser.d.ts.map +1 -0
  298. package/dist/mobjects/three-d/Arrow3D.d.ts +136 -0
  299. package/dist/mobjects/three-d/Arrow3D.d.ts.map +1 -0
  300. package/dist/mobjects/three-d/Cube.d.ts +186 -0
  301. package/dist/mobjects/three-d/Cube.d.ts.map +1 -0
  302. package/dist/mobjects/three-d/Cylinder.d.ts +189 -0
  303. package/dist/mobjects/three-d/Cylinder.d.ts.map +1 -0
  304. package/dist/mobjects/three-d/Line3D.d.ts +100 -0
  305. package/dist/mobjects/three-d/Line3D.d.ts.map +1 -0
  306. package/dist/mobjects/three-d/ParametricSurface.d.ts +86 -0
  307. package/dist/mobjects/three-d/ParametricSurface.d.ts.map +1 -0
  308. package/dist/mobjects/three-d/Polyhedra.d.ts +271 -0
  309. package/dist/mobjects/three-d/Polyhedra.d.ts.map +1 -0
  310. package/dist/mobjects/three-d/Sphere.d.ts +100 -0
  311. package/dist/mobjects/three-d/Sphere.d.ts.map +1 -0
  312. package/dist/mobjects/three-d/Surface3D.d.ts +156 -0
  313. package/dist/mobjects/three-d/Surface3D.d.ts.map +1 -0
  314. package/dist/mobjects/three-d/TexturedSurface.d.ts +208 -0
  315. package/dist/mobjects/three-d/TexturedSurface.d.ts.map +1 -0
  316. package/dist/mobjects/three-d/ThreeDAxes.d.ts +172 -0
  317. package/dist/mobjects/three-d/ThreeDAxes.d.ts.map +1 -0
  318. package/dist/mobjects/three-d/ThreeDExtensions.d.ts +335 -0
  319. package/dist/mobjects/three-d/ThreeDExtensions.d.ts.map +1 -0
  320. package/dist/mobjects/three-d/Torus.d.ts +123 -0
  321. package/dist/mobjects/three-d/Torus.d.ts.map +1 -0
  322. package/dist/mobjects/three-d/index.d.ts +19 -0
  323. package/dist/mobjects/three-d/index.d.ts.map +1 -0
  324. package/dist/mobjects/value-tracker/ValueTracker.d.ts +248 -0
  325. package/dist/mobjects/value-tracker/ValueTracker.d.ts.map +1 -0
  326. package/dist/mobjects/value-tracker/index.d.ts +9 -0
  327. package/dist/mobjects/value-tracker/index.d.ts.map +1 -0
  328. package/dist/rate-functions/index.d.ts +81 -0
  329. package/dist/rate-functions/index.d.ts.map +1 -0
  330. package/dist/rate-functions/rateFunctions.test.d.ts +2 -0
  331. package/dist/rate-functions/rateFunctions.test.d.ts.map +1 -0
  332. package/dist/rendering/BezierRenderer.d.ts +112 -0
  333. package/dist/rendering/BezierRenderer.d.ts.map +1 -0
  334. package/dist/rendering/BezierShaderMaterial.d.ts +50 -0
  335. package/dist/rendering/BezierShaderMaterial.d.ts.map +1 -0
  336. package/dist/rendering/index.d.ts +10 -0
  337. package/dist/rendering/index.d.ts.map +1 -0
  338. package/dist/utils/Performance.d.ts +118 -0
  339. package/dist/utils/Performance.d.ts.map +1 -0
  340. package/dist/utils/featureFlags.d.ts +15 -0
  341. package/dist/utils/featureFlags.d.ts.map +1 -0
  342. package/dist/utils/hungarian.d.ts +66 -0
  343. package/dist/utils/hungarian.d.ts.map +1 -0
  344. package/dist/utils/logger.d.ts +14 -0
  345. package/dist/utils/logger.d.ts.map +1 -0
  346. package/dist/utils/math.d.ts +52 -0
  347. package/dist/utils/math.d.ts.map +1 -0
  348. package/dist/utils/ode.d.ts +135 -0
  349. package/dist/utils/ode.d.ts.map +1 -0
  350. package/dist/utils/skeletonize.d.ts +35 -0
  351. package/dist/utils/skeletonize.d.ts.map +1 -0
  352. package/dist/utils/triangulate.d.ts +54 -0
  353. package/dist/utils/triangulate.d.ts.map +1 -0
  354. package/dist/utils/vectors.d.ts +57 -0
  355. package/dist/utils/vectors.d.ts.map +1 -0
  356. package/package.json +122 -0
@@ -0,0 +1,242 @@
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
+ */
27
+ 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. */
31
+ latex: string | string[];
32
+ /** Color as CSS color string. Default: '#ffffff' */
33
+ color?: string;
34
+ /** Base font size in pixels. Default: 48 */
35
+ fontSize?: number;
36
+ /** Use display mode (block) vs inline mode. Default: true */
37
+ displayMode?: boolean;
38
+ /** Position in 3D space. Default: [0, 0, 0] */
39
+ 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
+ }
62
+ /**
63
+ * MathTex - A mobject for rendering LaTeX mathematical expressions
64
+ *
65
+ * Uses KaTeX for LaTeX parsing and renders to a textured plane in Three.js.
66
+ * The rendering is asynchronous but the constructor is synchronous.
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * // Create a simple equation
71
+ * const equation = new MathTex({ latex: 'E = mc^2' });
72
+ *
73
+ * // Create a colored integral
74
+ * const integral = new MathTex({
75
+ * latex: '\\int_0^\\infty e^{-x^2} dx = \\frac{\\sqrt{\\pi}}{2}',
76
+ * color: '#00ff00',
77
+ * fontSize: 64
78
+ * });
79
+ *
80
+ * // Wait for rendering to complete before animating
81
+ * await integral.waitForRender();
82
+ * ```
83
+ */
84
+ export declare class MathTex extends Mobject {
85
+ protected _latex: string;
86
+ protected _fontSize: number;
87
+ protected _displayMode: boolean;
88
+ protected _renderState: RenderState;
89
+ /** User-requested renderer mode */
90
+ protected _renderer: TexRenderer;
91
+ /** Which renderer was actually used for the last successful render */
92
+ protected _activeRenderer: 'katex' | 'mathjax' | null;
93
+ /** Whether this is a multi-part MathTex (created from string[]) */
94
+ protected _isMultiPart: boolean;
95
+ /** Child MathTex parts (only when _isMultiPart is true) */
96
+ protected _parts: MathTex[];
97
+ /** Promise that resolves when parts are arranged (multi-part only) */
98
+ protected _arrangePromise: Promise<void> | null;
99
+ /** Padding in pixels around rendered content */
100
+ protected _padding: number;
101
+ constructor(options: MathTexOptions);
102
+ /**
103
+ * Get the renderer mode
104
+ */
105
+ getRenderer(): TexRenderer;
106
+ /**
107
+ * Get which renderer was actually used for the current render.
108
+ * Returns null if not yet rendered.
109
+ */
110
+ getActiveRenderer(): 'katex' | 'mathjax' | null;
111
+ /**
112
+ * Set the renderer mode and re-render.
113
+ * @param renderer The renderer to use
114
+ * @returns this for chaining
115
+ */
116
+ setRenderer(renderer: TexRenderer): this;
117
+ /**
118
+ * Get the LaTeX string
119
+ */
120
+ getLatex(): string;
121
+ /**
122
+ * Set the LaTeX string and re-render
123
+ * @param latex New LaTeX string
124
+ * @returns this for chaining
125
+ */
126
+ setLatex(latex: string): this;
127
+ /**
128
+ * Get the font size
129
+ */
130
+ getFontSize(): number;
131
+ /**
132
+ * Set the font size and re-render
133
+ * @param size New font size in pixels
134
+ * @returns this for chaining
135
+ */
136
+ setFontSize(size: number): this;
137
+ /**
138
+ * Override setColor — texture is always rendered white, so we only need
139
+ * to update the material tint via _syncMaterialToThree (no re-render).
140
+ */
141
+ setColor(color: string): this;
142
+ /**
143
+ * Override setOpacity to propagate to multi-part children.
144
+ */
145
+ setOpacity(opacity: number): this;
146
+ /**
147
+ * Wait for the LaTeX to finish rendering.
148
+ * For multi-part MathTex, waits for all parts to render and be arranged.
149
+ * @returns Promise that resolves when rendering is complete
150
+ */
151
+ waitForRender(): Promise<void>;
152
+ /**
153
+ * Get a sub-part of a multi-part MathTex expression.
154
+ * Only available when the MathTex was created with a string array.
155
+ * @param index Zero-based index of the part
156
+ * @returns The MathTex sub-part at the given index
157
+ */
158
+ getPart(index: number): MathTex;
159
+ /**
160
+ * Get the number of parts (1 for single-string, N for multi-part).
161
+ */
162
+ getPartCount(): number;
163
+ /**
164
+ * Arrange child parts horizontally after they all render.
165
+ * Positions parts so their content (minus padding) is seamlessly adjacent.
166
+ */
167
+ private _arrangeParts;
168
+ /**
169
+ * Check if rendering is in progress
170
+ */
171
+ isRendering(): boolean;
172
+ /**
173
+ * Get the rendered dimensions in world units
174
+ * @returns [width, height] or [0, 0] if not yet rendered
175
+ */
176
+ getDimensions(): [number, number];
177
+ /**
178
+ * Start the async rendering process
179
+ */
180
+ protected _startRender(): void;
181
+ /**
182
+ * Render the LaTeX to a canvas using the selected renderer.
183
+ *
184
+ * Renderer selection logic:
185
+ * - 'katex' : Use KaTeX directly (throwOnError: false)
186
+ * - 'mathjax': Use MathJax SVG output, rendered to canvas via Image
187
+ * - 'auto' : Try KaTeX with throwOnError: true. If it throws,
188
+ * fall back to MathJax.
189
+ */
190
+ protected _renderLatex(): Promise<void>;
191
+ /**
192
+ * Determine which concrete renderer to use for the current LaTeX string.
193
+ */
194
+ private _resolveRenderer;
195
+ /**
196
+ * Render using MathJax SVG output. The SVG is painted onto a canvas
197
+ * texture in the same way the KaTeX path works, keeping the visual
198
+ * pipeline consistent.
199
+ */
200
+ protected _renderLatexViaMathJax(): Promise<void>;
201
+ /**
202
+ * Render the LaTeX to a canvas by walking the KaTeX DOM
203
+ * and drawing each text element at its computed CSS position.
204
+ */
205
+ protected _renderLatexViaKaTeX(): Promise<void>;
206
+ /**
207
+ * Walk the KaTeX DOM tree and render text nodes + SVG elements
208
+ * at their computed CSS positions onto a canvas.
209
+ */
210
+ protected _renderDomToCanvas(container: HTMLElement, containerRect: DOMRect, width: number, height: number, padding: number): Promise<HTMLCanvasElement>;
211
+ /**
212
+ * Update the mesh geometry to match current dimensions
213
+ */
214
+ protected _updateMeshGeometry(): void;
215
+ /**
216
+ * Create the Three.js backing object
217
+ */
218
+ protected _createThreeObject(): THREE.Object3D;
219
+ /**
220
+ * Sync material properties to Three.js
221
+ */
222
+ protected _syncMaterialToThree(): void;
223
+ /**
224
+ * Create a copy of this MathTex
225
+ */
226
+ protected _createCopy(): MathTex;
227
+ /**
228
+ * Set reveal progress for Write animation (left-to-right wipe).
229
+ * @param alpha - Progress from 0 (hidden) to 1 (fully visible)
230
+ */
231
+ setRevealProgress(alpha: number): void;
232
+ /**
233
+ * Get the center of this MathTex
234
+ */
235
+ getCenter(): Vector3Tuple;
236
+ /**
237
+ * Clean up Three.js resources
238
+ */
239
+ dispose(): void;
240
+ }
241
+ export default MathTex;
242
+ //# sourceMappingURL=MathTex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MathTex.d.ts","sourceRoot":"","sources":["../../../src/mobjects/text/MathTex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { Text, TextOptions } from './Text';
2
+ /**
3
+ * Options for creating a Paragraph mobject
4
+ */
5
+ export interface ParagraphOptions extends TextOptions {
6
+ /** Maximum width in world units for text wrapping */
7
+ width?: number;
8
+ /** Text alignment within the paragraph. Default: 'left' */
9
+ alignment?: 'left' | 'center' | 'right' | 'justify';
10
+ }
11
+ /**
12
+ * Paragraph - A text mobject with automatic word wrapping
13
+ *
14
+ * Extends Text to add word wrapping functionality. Text is wrapped
15
+ * to fit within a specified width, with configurable alignment.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * // Create a paragraph with max width
20
+ * const para = new Paragraph({
21
+ * text: 'This is a long paragraph that will automatically wrap to fit within the specified width.',
22
+ * width: 4, // 4 world units
23
+ * alignment: 'justify'
24
+ * });
25
+ *
26
+ * // Update width to trigger re-wrap
27
+ * para.setWidth(3);
28
+ * ```
29
+ */
30
+ export declare class Paragraph extends Text {
31
+ protected _maxWidth: number;
32
+ protected _alignment: 'left' | 'center' | 'right' | 'justify';
33
+ protected _wrappedLines: string[];
34
+ constructor(options: ParagraphOptions);
35
+ /**
36
+ * Get the maximum width for text wrapping
37
+ */
38
+ getMaxWidth(): number;
39
+ /**
40
+ * Set maximum width and trigger re-wrap
41
+ * @param width - Maximum width in world units
42
+ * @returns this for chaining
43
+ */
44
+ setWidth(width: number): this;
45
+ /**
46
+ * Get the paragraph alignment
47
+ */
48
+ getAlignment(): 'left' | 'center' | 'right' | 'justify';
49
+ /**
50
+ * Set paragraph alignment
51
+ * @param alignment - Text alignment
52
+ * @returns this for chaining
53
+ */
54
+ setAlignment(alignment: 'left' | 'center' | 'right' | 'justify'): this;
55
+ /**
56
+ * Wrap text to fit within max width
57
+ * @returns Array of wrapped lines
58
+ */
59
+ protected _wrapText(): string[];
60
+ /**
61
+ * Override measure text to use wrapped lines
62
+ */
63
+ protected _measureText(): {
64
+ lines: string[];
65
+ width: number;
66
+ height: number;
67
+ };
68
+ /**
69
+ * Render text to canvas with justification support
70
+ */
71
+ protected _renderToCanvas(): void;
72
+ /**
73
+ * Check if the next line starts a new paragraph (empty line or explicit break)
74
+ */
75
+ protected _isNewParagraph(lines: string[], currentIndex: number): boolean;
76
+ /**
77
+ * Draw a line with justified spacing
78
+ */
79
+ protected _drawJustifiedLine(line: string, startX: number, endX: number, y: number): void;
80
+ /**
81
+ * Create a copy of this Paragraph mobject
82
+ */
83
+ protected _createCopy(): Paragraph;
84
+ }
85
+ export default Paragraph;
86
+ //# sourceMappingURL=Paragraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Paragraph.d.ts","sourceRoot":"","sources":["../../../src/mobjects/text/Paragraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;CACrD;AAQD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,SAAU,SAAQ,IAAI;IACjC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IAC9D,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,CAAM;gBAE3B,OAAO,EAAE,gBAAgB;IAiBrC;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ7B;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS;IAIvD;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI;IAStE;;;OAGG;IACH,SAAS,CAAC,SAAS,IAAI,MAAM,EAAE;IA6C/B;;OAEG;cACgB,YAAY,IAAI;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAqCrF;;OAEG;cACgB,eAAe,IAAI,IAAI;IA2E1C;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAKzE;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAkDzF;;OAEG;cACgB,WAAW,IAAI,SAAS;CAgB5C;AAED,eAAe,SAAS,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { MathTex, MathTexOptions } from './MathTex';
2
+ /**
3
+ * Options for creating a Tex object
4
+ * (Same as MathTexOptions)
5
+ */
6
+ export type TexOptions = MathTexOptions;
7
+ /**
8
+ * Tex - LaTeX rendering for manimweb
9
+ *
10
+ * This is an alias for MathTex to provide Manim API compatibility.
11
+ * Use this class when porting code from the original Manim library.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // Create a formula (Manim-style API)
16
+ * const formula = new Tex({ latex: 'x^2 + y^2 = r^2' });
17
+ *
18
+ * // Create with options
19
+ * const colored = new Tex({
20
+ * latex: '\\frac{d}{dx}\\sin(x) = \\cos(x)',
21
+ * color: '#ffff00',
22
+ * fontSize: 56
23
+ * });
24
+ *
25
+ * // Use MathJax for advanced LaTeX
26
+ * const chem = new Tex({
27
+ * latex: '\\ce{H2O -> H+ + OH-}',
28
+ * renderer: 'mathjax'
29
+ * });
30
+ * ```
31
+ */
32
+ export declare class Tex extends MathTex {
33
+ constructor(options: TexOptions);
34
+ /**
35
+ * Create a copy of this Tex
36
+ */
37
+ protected _createCopy(): Tex;
38
+ }
39
+ export default Tex;
40
+ //# sourceMappingURL=Tex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tex.d.ts","sourceRoot":"","sources":["../../../src/mobjects/text/Tex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,GAAI,SAAQ,OAAO;gBAClB,OAAO,EAAE,UAAU;IAS/B;;OAEG;cACgB,WAAW,IAAI,GAAG;CAUtC;AAED,eAAe,GAAG,CAAC"}
@@ -0,0 +1,171 @@
1
+ import { VMobject } from '../../core/VMobject';
2
+ import { Vector3Tuple } from '../../core/Mobject';
3
+ import { TextGlyphGroup } from './TextGlyphGroup';
4
+ import { SkeletonizeOptions } from '../../utils/skeletonize';
5
+ import * as THREE from 'three';
6
+ /**
7
+ * Options for creating a Text mobject
8
+ */
9
+ export interface TextOptions {
10
+ /** The text content to display */
11
+ text: string;
12
+ /** Font size in pixels. Default: 48 */
13
+ fontSize?: number;
14
+ /** Font family. Default: 'CMU Serif, Georgia, Times New Roman, serif' (Manim-like) */
15
+ fontFamily?: string;
16
+ /** Font weight. Default: 'normal' */
17
+ fontWeight?: string | number;
18
+ /** Font style ('normal' | 'italic'). Default: 'normal' */
19
+ fontStyle?: string;
20
+ /** Text color as CSS color string. Default: '#ffffff' */
21
+ color?: string;
22
+ /** Fill opacity from 0 to 1. Default: 1 */
23
+ fillOpacity?: number;
24
+ /** Stroke width for outlined text. Default: 0 */
25
+ strokeWidth?: number;
26
+ /** Line height multiplier. Default: 1.2 */
27
+ lineHeight?: number;
28
+ /** Letter spacing in pixels. Default: 0 */
29
+ letterSpacing?: number;
30
+ /** Text alignment. Default: 'center' */
31
+ textAlign?: 'left' | 'center' | 'right';
32
+ /** URL to a font file (OTF/TTF) for glyph vector extraction. When provided, loadGlyphs() can extract glyph outlines for stroke-draw animation. */
33
+ fontUrl?: string;
34
+ }
35
+ export declare class Text extends VMobject {
36
+ protected _text: string;
37
+ protected _fontSize: number;
38
+ protected _fontFamily: string;
39
+ protected _fontWeight: string | number;
40
+ protected _fontStyle: string;
41
+ /** Flag to track when canvas content needs re-rendering (text/color/font changes) */
42
+ protected _canvasDirty: boolean;
43
+ protected _lineHeight: number;
44
+ protected _letterSpacing: number;
45
+ protected _textAlign: 'left' | 'center' | 'right';
46
+ /** Optional font URL for glyph vector extraction */
47
+ protected _fontUrl?: string;
48
+ /** Cached glyph group (created lazily by loadGlyphs) */
49
+ protected _glyphGroup: TextGlyphGroup | null;
50
+ /** Off-screen canvas for text rendering */
51
+ protected _canvas: HTMLCanvasElement | null;
52
+ protected _ctx: CanvasRenderingContext2D | null;
53
+ /** Three.js texture from canvas */
54
+ protected _texture: THREE.CanvasTexture | null;
55
+ /** Plane mesh for displaying the texture */
56
+ protected _mesh: THREE.Mesh | null;
57
+ /** Cached dimensions in world units */
58
+ protected _worldWidth: number;
59
+ protected _worldHeight: number;
60
+ constructor(options: TextOptions);
61
+ /**
62
+ * Initialize the off-screen canvas
63
+ */
64
+ protected _initCanvas(): void;
65
+ /**
66
+ * Get the current text content
67
+ */
68
+ getText(): string;
69
+ /**
70
+ * Set new text content and re-render
71
+ * @param text - New text to display
72
+ * @returns this for chaining
73
+ */
74
+ setText(text: string): this;
75
+ /**
76
+ * Get the current font size
77
+ */
78
+ getFontSize(): number;
79
+ /**
80
+ * Set font size and re-render
81
+ * @param size - Font size in pixels
82
+ * @returns this for chaining
83
+ */
84
+ setFontSize(size: number): this;
85
+ /**
86
+ * Get the current font family
87
+ */
88
+ getFontFamily(): string;
89
+ /**
90
+ * Set font family and re-render
91
+ * @param family - CSS font family string
92
+ * @returns this for chaining
93
+ */
94
+ setFontFamily(family: string): this;
95
+ /**
96
+ * Get text width in world units
97
+ */
98
+ getWidth(): number;
99
+ /**
100
+ * Get text height in world units
101
+ */
102
+ getHeight(): number;
103
+ /**
104
+ * Build the CSS font string
105
+ */
106
+ protected _buildFontString(): string;
107
+ /**
108
+ * Split text into lines and measure dimensions
109
+ * @returns Object with lines array and canvas dimensions
110
+ */
111
+ protected _measureText(): {
112
+ lines: string[];
113
+ width: number;
114
+ height: number;
115
+ };
116
+ /**
117
+ * Render text to the off-screen canvas
118
+ */
119
+ protected _renderToCanvas(): void;
120
+ /**
121
+ * Draw text with custom letter spacing
122
+ */
123
+ protected _drawTextWithLetterSpacing(text: string, startX: number, y: number, _fontSize: number): void;
124
+ /**
125
+ * Update the mesh geometry to match new dimensions
126
+ */
127
+ protected _updateMesh(): void;
128
+ /**
129
+ * Create the Three.js backing object
130
+ */
131
+ protected _createThreeObject(): THREE.Object3D;
132
+ /**
133
+ * Sync material properties to Three.js
134
+ */
135
+ protected _syncMaterialToThree(): void;
136
+ /**
137
+ * Get the cached TextGlyphGroup (null until loadGlyphs() resolves).
138
+ */
139
+ getGlyphGroup(): TextGlyphGroup | null;
140
+ /**
141
+ * Lazily create a TextGlyphGroup from the font file at _fontUrl.
142
+ * Returns null if no fontUrl was provided.
143
+ *
144
+ * @param options.useSkeletonStroke When true, each glyph computes its
145
+ * skeleton (medial axis) for center-line stroke animation. Default: false.
146
+ * @param options.skeletonOptions Fine-tuning options for the skeletonization
147
+ * algorithm (grid resolution, smoothing, etc.).
148
+ */
149
+ loadGlyphs(options?: {
150
+ useSkeletonStroke?: boolean;
151
+ skeletonOptions?: SkeletonizeOptions;
152
+ }): Promise<TextGlyphGroup | null>;
153
+ /**
154
+ * Get the texture mesh (for animation cross-fade access).
155
+ */
156
+ getTextureMesh(): THREE.Mesh | null;
157
+ /**
158
+ * Get the center of this text mobject
159
+ */
160
+ getCenter(): Vector3Tuple;
161
+ /**
162
+ * Create a copy of this Text mobject
163
+ */
164
+ protected _createCopy(): Text;
165
+ /**
166
+ * Clean up Three.js and canvas resources
167
+ */
168
+ dispose(): void;
169
+ }
170
+ export default Text;
171
+ //# sourceMappingURL=Text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/mobjects/text/Text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,kJAAkJ;IAClJ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA+DD,qBAAa,IAAK,SAAQ,QAAQ;IAChC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,qFAAqF;IACrF,SAAS,CAAC,YAAY,EAAE,OAAO,CAAQ;IACvC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAElD,oDAAoD;IACpD,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,SAAS,CAAC,WAAW,EAAE,cAAc,GAAG,IAAI,CAAQ;IAEpD,2CAA2C;IAC3C,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IACnD,SAAS,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAAQ;IAEvD,mCAAmC;IACnC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI,CAAQ;IAEtD,4CAA4C;IAC5C,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAQ;IAE1C,uCAAuC;IACvC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAK;IAClC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAK;gBAEvB,OAAO,EAAE,WAAW;IAqChC;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAQ7B;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS3B;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS/B;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASnC;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,SAAS,CAAC,gBAAgB,IAAI,MAAM;IASpC;;;OAGG;IACH,SAAS,CAAC,YAAY,IAAI;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IA6B5E;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,IAAI;IA0EjC;;OAEG;IACH,SAAS,CAAC,0BAA0B,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,CAAC,EAAE,MAAM,EACT,SAAS,EAAE,MAAM,GAChB,IAAI;IAuCP;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAW7B;;OAEG;cACgB,kBAAkB,IAAI,KAAK,CAAC,QAAQ;IAkCvD;;OAEG;cACgB,oBAAoB,IAAI,IAAI;IAc/C;;OAEG;IACH,aAAa,IAAI,cAAc,GAAG,IAAI;IAItC;;;;;;;;OAQG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE;QACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,eAAe,CAAC,EAAE,kBAAkB,CAAC;KACtC,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAyBlC;;OAEG;IACH,cAAc,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI;IAInC;;OAEG;IACM,SAAS,IAAI,YAAY;IAIlC;;OAEG;cACgB,WAAW,IAAI,IAAI;IAiBtC;;OAEG;IACM,OAAO,IAAI,IAAI;CAUzB;AAED,eAAe,IAAI,CAAC"}