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.
- package/LICENSE +21 -0
- package/README.md +109 -0
- package/dist/animation/Animation.d.ts +69 -0
- package/dist/animation/Animation.d.ts.map +1 -0
- package/dist/animation/AnimationGroup.d.ts +48 -0
- package/dist/animation/AnimationGroup.d.ts.map +1 -0
- package/dist/animation/LaggedStart.d.ts +25 -0
- package/dist/animation/LaggedStart.d.ts.map +1 -0
- package/dist/animation/MaintainPositionRelativeTo.d.ts +23 -0
- package/dist/animation/MaintainPositionRelativeTo.d.ts.map +1 -0
- package/dist/animation/Succession.d.ts +19 -0
- package/dist/animation/Succession.d.ts.map +1 -0
- package/dist/animation/Timeline.d.ts +89 -0
- package/dist/animation/Timeline.d.ts.map +1 -0
- package/dist/animation/UpdateFromAlphaFunc.d.ts +32 -0
- package/dist/animation/UpdateFromAlphaFunc.d.ts.map +1 -0
- package/dist/animation/UpdateFromFunc.d.ts +30 -0
- package/dist/animation/UpdateFromFunc.d.ts.map +1 -0
- package/dist/animation/changing/index.d.ts +213 -0
- package/dist/animation/changing/index.d.ts.map +1 -0
- package/dist/animation/composition/LaggedStartMap.d.ts +47 -0
- package/dist/animation/composition/LaggedStartMap.d.ts.map +1 -0
- package/dist/animation/composition/index.d.ts +5 -0
- package/dist/animation/composition/index.d.ts.map +1 -0
- package/dist/animation/creation/Create.d.ts +232 -0
- package/dist/animation/creation/Create.d.ts.map +1 -0
- package/dist/animation/creation/CreationExtensions.d.ts +127 -0
- package/dist/animation/creation/CreationExtensions.d.ts.map +1 -0
- package/dist/animation/creation/TypeWithCursor.d.ts +133 -0
- package/dist/animation/creation/TypeWithCursor.d.ts.map +1 -0
- package/dist/animation/creation/index.d.ts +4 -0
- package/dist/animation/creation/index.d.ts.map +1 -0
- package/dist/animation/fading/FadeIn.d.ts +31 -0
- package/dist/animation/fading/FadeIn.d.ts.map +1 -0
- package/dist/animation/fading/FadeOut.d.ts +32 -0
- package/dist/animation/fading/FadeOut.d.ts.map +1 -0
- package/dist/animation/fading/index.d.ts +3 -0
- package/dist/animation/fading/index.d.ts.map +1 -0
- package/dist/animation/growing/index.d.ts +103 -0
- package/dist/animation/growing/index.d.ts.map +1 -0
- package/dist/animation/index.d.ts +20 -0
- package/dist/animation/index.d.ts.map +1 -0
- package/dist/animation/indication/ApplyWave.d.ts +51 -0
- package/dist/animation/indication/ApplyWave.d.ts.map +1 -0
- package/dist/animation/indication/Blink.d.ts +34 -0
- package/dist/animation/indication/Blink.d.ts.map +1 -0
- package/dist/animation/indication/Circumscribe.d.ts +54 -0
- package/dist/animation/indication/Circumscribe.d.ts.map +1 -0
- package/dist/animation/indication/Flash.d.ts +45 -0
- package/dist/animation/indication/Flash.d.ts.map +1 -0
- package/dist/animation/indication/FocusOn.d.ts +79 -0
- package/dist/animation/indication/FocusOn.d.ts.map +1 -0
- package/dist/animation/indication/Indicate.d.ts +30 -0
- package/dist/animation/indication/Indicate.d.ts.map +1 -0
- package/dist/animation/indication/ShowCreationThenDestruction.d.ts +26 -0
- package/dist/animation/indication/ShowCreationThenDestruction.d.ts.map +1 -0
- package/dist/animation/indication/ShowPassingFlash.d.ts +47 -0
- package/dist/animation/indication/ShowPassingFlash.d.ts.map +1 -0
- package/dist/animation/indication/ShowPassingFlashWithThinningStrokeWidth.d.ts +21 -0
- package/dist/animation/indication/ShowPassingFlashWithThinningStrokeWidth.d.ts.map +1 -0
- package/dist/animation/indication/Wiggle.d.ts +48 -0
- package/dist/animation/indication/Wiggle.d.ts.map +1 -0
- package/dist/animation/indication/WiggleOutThenIn.d.ts +44 -0
- package/dist/animation/indication/WiggleOutThenIn.d.ts.map +1 -0
- package/dist/animation/indication/index.d.ts +20 -0
- package/dist/animation/indication/index.d.ts.map +1 -0
- package/dist/animation/movement/Homotopy.d.ts +204 -0
- package/dist/animation/movement/Homotopy.d.ts.map +1 -0
- package/dist/animation/movement/MoveAlongPath.d.ts +48 -0
- package/dist/animation/movement/MoveAlongPath.d.ts.map +1 -0
- package/dist/animation/movement/Rotate.d.ts +47 -0
- package/dist/animation/movement/Rotate.d.ts.map +1 -0
- package/dist/animation/movement/Scale.d.ts +74 -0
- package/dist/animation/movement/Scale.d.ts.map +1 -0
- package/dist/animation/movement/Shift.d.ts +74 -0
- package/dist/animation/movement/Shift.d.ts.map +1 -0
- package/dist/animation/movement/index.d.ts +6 -0
- package/dist/animation/movement/index.d.ts.map +1 -0
- package/dist/animation/numbers/index.d.ts +152 -0
- package/dist/animation/numbers/index.d.ts.map +1 -0
- package/dist/animation/speed/index.d.ts +114 -0
- package/dist/animation/speed/index.d.ts.map +1 -0
- package/dist/animation/transform/ApplyPointwiseFunction.d.ts +23 -0
- package/dist/animation/transform/ApplyPointwiseFunction.d.ts.map +1 -0
- package/dist/animation/transform/Transform.d.ts +89 -0
- package/dist/animation/transform/Transform.d.ts.map +1 -0
- package/dist/animation/transform/TransformExtensions.d.ts +444 -0
- package/dist/animation/transform/TransformExtensions.d.ts.map +1 -0
- package/dist/animation/transform/TransformMatching.d.ts +138 -0
- package/dist/animation/transform/TransformMatching.d.ts.map +1 -0
- package/dist/animation/transform/index.d.ts +5 -0
- package/dist/animation/transform/index.d.ts.map +1 -0
- package/dist/animation/utility/index.d.ts +171 -0
- package/dist/animation/utility/index.d.ts.map +1 -0
- package/dist/constants/colors.d.ts +72 -0
- package/dist/constants/colors.d.ts.map +1 -0
- package/dist/constants/colors.test.d.ts +2 -0
- package/dist/constants/colors.test.d.ts.map +1 -0
- package/dist/constants/directions.test.d.ts +2 -0
- package/dist/constants/directions.test.d.ts.map +1 -0
- package/dist/constants/index.d.ts +16 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/core/AudioManager.d.ts +203 -0
- package/dist/core/AudioManager.d.ts.map +1 -0
- package/dist/core/Camera.d.ts +172 -0
- package/dist/core/Camera.d.ts.map +1 -0
- package/dist/core/Camera2DFrame.d.ts +31 -0
- package/dist/core/Camera2DFrame.d.ts.map +1 -0
- package/dist/core/CameraExtensions.d.ts +420 -0
- package/dist/core/CameraExtensions.d.ts.map +1 -0
- package/dist/core/CameraFrame.d.ts +178 -0
- package/dist/core/CameraFrame.d.ts.map +1 -0
- package/dist/core/Group.d.ts +139 -0
- package/dist/core/Group.d.ts.map +1 -0
- package/dist/core/InteractiveScene.d.ts +122 -0
- package/dist/core/InteractiveScene.d.ts.map +1 -0
- package/dist/core/Lighting.d.ts +128 -0
- package/dist/core/Lighting.d.ts.map +1 -0
- package/dist/core/Mobject.d.ts +488 -0
- package/dist/core/Mobject.d.ts.map +1 -0
- package/dist/core/Renderer.d.ts +84 -0
- package/dist/core/Renderer.d.ts.map +1 -0
- package/dist/core/Scene.d.ts +353 -0
- package/dist/core/Scene.d.ts.map +1 -0
- package/dist/core/SceneExtensions.d.ts +640 -0
- package/dist/core/SceneExtensions.d.ts.map +1 -0
- package/dist/core/SceneExtensions.test.d.ts +2 -0
- package/dist/core/SceneExtensions.test.d.ts.map +1 -0
- package/dist/core/StateManager.d.ts +193 -0
- package/dist/core/StateManager.d.ts.map +1 -0
- package/dist/core/VDict.d.ts +229 -0
- package/dist/core/VDict.d.ts.map +1 -0
- package/dist/core/VGroup.d.ts +200 -0
- package/dist/core/VGroup.d.ts.map +1 -0
- package/dist/core/VMobject.d.ts +419 -0
- package/dist/core/VMobject.d.ts.map +1 -0
- package/dist/core/index.d.ts +16 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/examples.test.d.ts +2 -0
- package/dist/examples.test.d.ts.map +1 -0
- package/dist/export/GifExporter.d.ts +40 -0
- package/dist/export/GifExporter.d.ts.map +1 -0
- package/dist/export/VideoExporter.d.ts +135 -0
- package/dist/export/VideoExporter.d.ts.map +1 -0
- package/dist/export/index.d.ts +3 -0
- package/dist/export/index.d.ts.map +1 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49064 -0
- package/dist/integrations/index.d.ts +1 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/react.d.ts +144 -0
- package/dist/integrations/react.d.ts.map +1 -0
- package/dist/integrations/react.js +570 -0
- package/dist/integrations/vue.d.ts +249 -0
- package/dist/integrations/vue.d.ts.map +1 -0
- package/dist/integrations/vue.js +560 -0
- package/dist/interaction/Clickable.d.ts +71 -0
- package/dist/interaction/Clickable.d.ts.map +1 -0
- package/dist/interaction/Controls.d.ts +174 -0
- package/dist/interaction/Controls.d.ts.map +1 -0
- package/dist/interaction/Draggable.d.ts +88 -0
- package/dist/interaction/Draggable.d.ts.map +1 -0
- package/dist/interaction/Hoverable.d.ts +82 -0
- package/dist/interaction/Hoverable.d.ts.map +1 -0
- package/dist/interaction/OrbitControls.d.ts +139 -0
- package/dist/interaction/OrbitControls.d.ts.map +1 -0
- package/dist/interaction/PlaybackControls.d.ts +113 -0
- package/dist/interaction/PlaybackControls.d.ts.map +1 -0
- package/dist/interaction/SelectionManager.d.ts +125 -0
- package/dist/interaction/SelectionManager.d.ts.map +1 -0
- package/dist/interaction/index.d.ts +12 -0
- package/dist/interaction/index.d.ts.map +1 -0
- package/dist/mobjects/fractals/MandelbrotSet.d.ts +92 -0
- package/dist/mobjects/fractals/MandelbrotSet.d.ts.map +1 -0
- package/dist/mobjects/fractals/NewtonFractal.d.ts +121 -0
- package/dist/mobjects/fractals/NewtonFractal.d.ts.map +1 -0
- package/dist/mobjects/fractals/index.d.ts +3 -0
- package/dist/mobjects/fractals/index.d.ts.map +1 -0
- package/dist/mobjects/frame/index.d.ts +188 -0
- package/dist/mobjects/frame/index.d.ts.map +1 -0
- package/dist/mobjects/geometry/AngleShapes.d.ts +326 -0
- package/dist/mobjects/geometry/AngleShapes.d.ts.map +1 -0
- package/dist/mobjects/geometry/Arc.d.ts +111 -0
- package/dist/mobjects/geometry/Arc.d.ts.map +1 -0
- package/dist/mobjects/geometry/ArcBetweenPoints.d.ts +68 -0
- package/dist/mobjects/geometry/ArcBetweenPoints.d.ts.map +1 -0
- package/dist/mobjects/geometry/ArcShapes.d.ts +659 -0
- package/dist/mobjects/geometry/ArcShapes.d.ts.map +1 -0
- package/dist/mobjects/geometry/Arrow.d.ts +130 -0
- package/dist/mobjects/geometry/Arrow.d.ts.map +1 -0
- package/dist/mobjects/geometry/ArrowTips.d.ts +238 -0
- package/dist/mobjects/geometry/ArrowTips.d.ts.map +1 -0
- package/dist/mobjects/geometry/BooleanOperations.d.ts +163 -0
- package/dist/mobjects/geometry/BooleanOperations.d.ts.map +1 -0
- package/dist/mobjects/geometry/Circle.d.ts +92 -0
- package/dist/mobjects/geometry/Circle.d.ts.map +1 -0
- package/dist/mobjects/geometry/CubicBezier.d.ts +126 -0
- package/dist/mobjects/geometry/CubicBezier.d.ts.map +1 -0
- package/dist/mobjects/geometry/DashedLine.d.ts +109 -0
- package/dist/mobjects/geometry/DashedLine.d.ts.map +1 -0
- package/dist/mobjects/geometry/DashedVMobject.d.ts +96 -0
- package/dist/mobjects/geometry/DashedVMobject.d.ts.map +1 -0
- package/dist/mobjects/geometry/Dot.d.ts +100 -0
- package/dist/mobjects/geometry/Dot.d.ts.map +1 -0
- package/dist/mobjects/geometry/LabeledGeometry.d.ts +372 -0
- package/dist/mobjects/geometry/LabeledGeometry.d.ts.map +1 -0
- package/dist/mobjects/geometry/Line.d.ts +83 -0
- package/dist/mobjects/geometry/Line.d.ts.map +1 -0
- package/dist/mobjects/geometry/Polygon.d.ts +155 -0
- package/dist/mobjects/geometry/Polygon.d.ts.map +1 -0
- package/dist/mobjects/geometry/PolygonExtensions.d.ts +412 -0
- package/dist/mobjects/geometry/PolygonExtensions.d.ts.map +1 -0
- package/dist/mobjects/geometry/Rectangle.d.ts +123 -0
- package/dist/mobjects/geometry/Rectangle.d.ts.map +1 -0
- package/dist/mobjects/geometry/ShapeMatchers.d.ts +252 -0
- package/dist/mobjects/geometry/ShapeMatchers.d.ts.map +1 -0
- package/dist/mobjects/geometry/index.d.ts +25 -0
- package/dist/mobjects/geometry/index.d.ts.map +1 -0
- package/dist/mobjects/graph/index.d.ts +425 -0
- package/dist/mobjects/graph/index.d.ts.map +1 -0
- package/dist/mobjects/graphing/Axes.d.ts +254 -0
- package/dist/mobjects/graphing/Axes.d.ts.map +1 -0
- package/dist/mobjects/graphing/BarChart.d.ts +241 -0
- package/dist/mobjects/graphing/BarChart.d.ts.map +1 -0
- package/dist/mobjects/graphing/ComplexPlane.d.ts +311 -0
- package/dist/mobjects/graphing/ComplexPlane.d.ts.map +1 -0
- package/dist/mobjects/graphing/FunctionGraph.d.ts +123 -0
- package/dist/mobjects/graphing/FunctionGraph.d.ts.map +1 -0
- package/dist/mobjects/graphing/ImplicitFunction.d.ts +131 -0
- package/dist/mobjects/graphing/ImplicitFunction.d.ts.map +1 -0
- package/dist/mobjects/graphing/NumberLine.d.ts +195 -0
- package/dist/mobjects/graphing/NumberLine.d.ts.map +1 -0
- package/dist/mobjects/graphing/NumberPlane.d.ts +91 -0
- package/dist/mobjects/graphing/NumberPlane.d.ts.map +1 -0
- package/dist/mobjects/graphing/ParametricFunction.d.ts +111 -0
- package/dist/mobjects/graphing/ParametricFunction.d.ts.map +1 -0
- package/dist/mobjects/graphing/Vector.d.ts +121 -0
- package/dist/mobjects/graphing/Vector.d.ts.map +1 -0
- package/dist/mobjects/graphing/VectorField.d.ts +321 -0
- package/dist/mobjects/graphing/VectorField.d.ts.map +1 -0
- package/dist/mobjects/graphing/index.d.ts +18 -0
- package/dist/mobjects/graphing/index.d.ts.map +1 -0
- package/dist/mobjects/image/index.d.ts +223 -0
- package/dist/mobjects/image/index.d.ts.map +1 -0
- package/dist/mobjects/matrix/Matrix.d.ts +260 -0
- package/dist/mobjects/matrix/Matrix.d.ts.map +1 -0
- package/dist/mobjects/matrix/index.d.ts +8 -0
- package/dist/mobjects/matrix/index.d.ts.map +1 -0
- package/dist/mobjects/point/index.d.ts +707 -0
- package/dist/mobjects/point/index.d.ts.map +1 -0
- package/dist/mobjects/probability/DiceFace.d.ts +137 -0
- package/dist/mobjects/probability/DiceFace.d.ts.map +1 -0
- package/dist/mobjects/probability/SampleSpace.d.ts +267 -0
- package/dist/mobjects/probability/SampleSpace.d.ts.map +1 -0
- package/dist/mobjects/probability/index.d.ts +9 -0
- package/dist/mobjects/probability/index.d.ts.map +1 -0
- package/dist/mobjects/svg/Brace.d.ts +308 -0
- package/dist/mobjects/svg/Brace.d.ts.map +1 -0
- package/dist/mobjects/svg/SVGMobject.d.ts +64 -0
- package/dist/mobjects/svg/SVGMobject.d.ts.map +1 -0
- package/dist/mobjects/svg/index.d.ts +10 -0
- package/dist/mobjects/svg/index.d.ts.map +1 -0
- package/dist/mobjects/table/Table.d.ts +315 -0
- package/dist/mobjects/table/Table.d.ts.map +1 -0
- package/dist/mobjects/table/index.d.ts +8 -0
- package/dist/mobjects/table/index.d.ts.map +1 -0
- package/dist/mobjects/text/Code.d.ts +244 -0
- package/dist/mobjects/text/Code.d.ts.map +1 -0
- package/dist/mobjects/text/DecimalNumber.d.ts +199 -0
- package/dist/mobjects/text/DecimalNumber.d.ts.map +1 -0
- package/dist/mobjects/text/GlyphVMobject.d.ts +76 -0
- package/dist/mobjects/text/GlyphVMobject.d.ts.map +1 -0
- package/dist/mobjects/text/MarkupText.d.ts +161 -0
- package/dist/mobjects/text/MarkupText.d.ts.map +1 -0
- package/dist/mobjects/text/MathJaxRenderer.d.ts +49 -0
- package/dist/mobjects/text/MathJaxRenderer.d.ts.map +1 -0
- package/dist/mobjects/text/MathTex.d.ts +242 -0
- package/dist/mobjects/text/MathTex.d.ts.map +1 -0
- package/dist/mobjects/text/Paragraph.d.ts +86 -0
- package/dist/mobjects/text/Paragraph.d.ts.map +1 -0
- package/dist/mobjects/text/Tex.d.ts +40 -0
- package/dist/mobjects/text/Tex.d.ts.map +1 -0
- package/dist/mobjects/text/Text.d.ts +171 -0
- package/dist/mobjects/text/Text.d.ts.map +1 -0
- package/dist/mobjects/text/TextExtensions.d.ts +383 -0
- package/dist/mobjects/text/TextExtensions.d.ts.map +1 -0
- package/dist/mobjects/text/TextGlyphGroup.d.ts +48 -0
- package/dist/mobjects/text/TextGlyphGroup.d.ts.map +1 -0
- package/dist/mobjects/text/Variable.d.ts +160 -0
- package/dist/mobjects/text/Variable.d.ts.map +1 -0
- package/dist/mobjects/text/index.d.ts +21 -0
- package/dist/mobjects/text/index.d.ts.map +1 -0
- package/dist/mobjects/text/katex-styles.d.ts +23 -0
- package/dist/mobjects/text/katex-styles.d.ts.map +1 -0
- package/dist/mobjects/text/svgPathParser.d.ts +39 -0
- package/dist/mobjects/text/svgPathParser.d.ts.map +1 -0
- package/dist/mobjects/three-d/Arrow3D.d.ts +136 -0
- package/dist/mobjects/three-d/Arrow3D.d.ts.map +1 -0
- package/dist/mobjects/three-d/Cube.d.ts +186 -0
- package/dist/mobjects/three-d/Cube.d.ts.map +1 -0
- package/dist/mobjects/three-d/Cylinder.d.ts +189 -0
- package/dist/mobjects/three-d/Cylinder.d.ts.map +1 -0
- package/dist/mobjects/three-d/Line3D.d.ts +100 -0
- package/dist/mobjects/three-d/Line3D.d.ts.map +1 -0
- package/dist/mobjects/three-d/ParametricSurface.d.ts +86 -0
- package/dist/mobjects/three-d/ParametricSurface.d.ts.map +1 -0
- package/dist/mobjects/three-d/Polyhedra.d.ts +271 -0
- package/dist/mobjects/three-d/Polyhedra.d.ts.map +1 -0
- package/dist/mobjects/three-d/Sphere.d.ts +100 -0
- package/dist/mobjects/three-d/Sphere.d.ts.map +1 -0
- package/dist/mobjects/three-d/Surface3D.d.ts +156 -0
- package/dist/mobjects/three-d/Surface3D.d.ts.map +1 -0
- package/dist/mobjects/three-d/TexturedSurface.d.ts +208 -0
- package/dist/mobjects/three-d/TexturedSurface.d.ts.map +1 -0
- package/dist/mobjects/three-d/ThreeDAxes.d.ts +172 -0
- package/dist/mobjects/three-d/ThreeDAxes.d.ts.map +1 -0
- package/dist/mobjects/three-d/ThreeDExtensions.d.ts +335 -0
- package/dist/mobjects/three-d/ThreeDExtensions.d.ts.map +1 -0
- package/dist/mobjects/three-d/Torus.d.ts +123 -0
- package/dist/mobjects/three-d/Torus.d.ts.map +1 -0
- package/dist/mobjects/three-d/index.d.ts +19 -0
- package/dist/mobjects/three-d/index.d.ts.map +1 -0
- package/dist/mobjects/value-tracker/ValueTracker.d.ts +248 -0
- package/dist/mobjects/value-tracker/ValueTracker.d.ts.map +1 -0
- package/dist/mobjects/value-tracker/index.d.ts +9 -0
- package/dist/mobjects/value-tracker/index.d.ts.map +1 -0
- package/dist/rate-functions/index.d.ts +81 -0
- package/dist/rate-functions/index.d.ts.map +1 -0
- package/dist/rate-functions/rateFunctions.test.d.ts +2 -0
- package/dist/rate-functions/rateFunctions.test.d.ts.map +1 -0
- package/dist/rendering/BezierRenderer.d.ts +112 -0
- package/dist/rendering/BezierRenderer.d.ts.map +1 -0
- package/dist/rendering/BezierShaderMaterial.d.ts +50 -0
- package/dist/rendering/BezierShaderMaterial.d.ts.map +1 -0
- package/dist/rendering/index.d.ts +10 -0
- package/dist/rendering/index.d.ts.map +1 -0
- package/dist/utils/Performance.d.ts +118 -0
- package/dist/utils/Performance.d.ts.map +1 -0
- package/dist/utils/featureFlags.d.ts +15 -0
- package/dist/utils/featureFlags.d.ts.map +1 -0
- package/dist/utils/hungarian.d.ts +66 -0
- package/dist/utils/hungarian.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +14 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/math.d.ts +52 -0
- package/dist/utils/math.d.ts.map +1 -0
- package/dist/utils/ode.d.ts +135 -0
- package/dist/utils/ode.d.ts.map +1 -0
- package/dist/utils/skeletonize.d.ts +35 -0
- package/dist/utils/skeletonize.d.ts.map +1 -0
- package/dist/utils/triangulate.d.ts +54 -0
- package/dist/utils/triangulate.d.ts.map +1 -0
- package/dist/utils/vectors.d.ts +57 -0
- package/dist/utils/vectors.d.ts.map +1 -0
- 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":"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"}
|