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,419 @@
|
|
|
1
|
+
import { LineMaterial } from 'three/examples/jsm/lines/LineMaterial.js';
|
|
2
|
+
import { Mobject, Vector3Tuple } from './Mobject';
|
|
3
|
+
/**
|
|
4
|
+
* Vectorized Mobject - a mobject defined by cubic Bezier curves.
|
|
5
|
+
* This is the base class for all path-based shapes.
|
|
6
|
+
*
|
|
7
|
+
* Points are stored as cubic Bezier control points:
|
|
8
|
+
* [anchor1, handle1, handle2, anchor2, handle3, handle4, anchor3, ...]
|
|
9
|
+
*
|
|
10
|
+
* Each curve segment uses 4 points: anchor -> handle -> handle -> anchor
|
|
11
|
+
* Consecutive segments share the anchor point.
|
|
12
|
+
*/
|
|
13
|
+
import * as THREE from 'three';
|
|
14
|
+
/**
|
|
15
|
+
* 2D Point interface for backward compatibility
|
|
16
|
+
*/
|
|
17
|
+
export interface Point {
|
|
18
|
+
x: number;
|
|
19
|
+
y: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Vectorized mobject class for path-based shapes.
|
|
23
|
+
*/
|
|
24
|
+
export declare class VMobject extends Mobject {
|
|
25
|
+
/**
|
|
26
|
+
* Array of cubic Bezier control points in 3D.
|
|
27
|
+
* Each point is [x, y, z].
|
|
28
|
+
* Stored as: [anchor1, handle1, handle2, anchor2, handle3, handle4, anchor3, ...]
|
|
29
|
+
*/
|
|
30
|
+
protected _points3D: number[][];
|
|
31
|
+
/** Number of points visible (for Create animation) */
|
|
32
|
+
protected _visiblePointCount: number | null;
|
|
33
|
+
/** Three.js stroke material (Line2 LineMaterial for thick strokes) */
|
|
34
|
+
protected _strokeMaterial: LineMaterial | null;
|
|
35
|
+
/** Three.js fill material */
|
|
36
|
+
protected _fillMaterial: THREE.MeshBasicMaterial | null;
|
|
37
|
+
/** Whether geometry needs rebuild (separate from material dirty) */
|
|
38
|
+
protected _geometryDirty: boolean;
|
|
39
|
+
/** Cached Line2 for in-place geometry updates (avoids dispose/recreate) */
|
|
40
|
+
private _cachedLine2;
|
|
41
|
+
/** Cached Line2 array for multi-subpath stroke rendering */
|
|
42
|
+
private _cachedLine2Array;
|
|
43
|
+
/** Cached fill mesh for in-place geometry updates */
|
|
44
|
+
private _cachedFillMesh;
|
|
45
|
+
/** Renderer resolution for LineMaterial (set by Scene) */
|
|
46
|
+
static _rendererWidth: number;
|
|
47
|
+
static _rendererHeight: number;
|
|
48
|
+
/** Camera frame width in world units (set by Scene, for stroke width conversion) */
|
|
49
|
+
static _frameWidth: number;
|
|
50
|
+
/**
|
|
51
|
+
* Convert Manim-compatible strokeWidth to LineMaterial linewidth in pixels.
|
|
52
|
+
* Python Manim uses cairo_line_width_multiple=0.01, so:
|
|
53
|
+
* linewidth_px = strokeWidth * 0.01 * (rendererWidth / frameWidth)
|
|
54
|
+
*/
|
|
55
|
+
static _toLinewidth(strokeWidth: number): number;
|
|
56
|
+
/**
|
|
57
|
+
* When true, VMobjects use GPU Bezier SDF shaders for stroke rendering
|
|
58
|
+
* instead of the default Line2/LineMaterial approach. This produces
|
|
59
|
+
* ManimGL-quality anti-aliased curves with variable stroke width and
|
|
60
|
+
* round caps. Default: false (opt-in).
|
|
61
|
+
*/
|
|
62
|
+
static useShaderCurves: boolean;
|
|
63
|
+
/** Shared BezierRenderer instance (lazy-initialized when useShaderCurves is first used) */
|
|
64
|
+
private static _sharedBezierRenderer;
|
|
65
|
+
/** Per-instance: cached Bezier SDF stroke mesh */
|
|
66
|
+
private _cachedBezierMesh;
|
|
67
|
+
/** Per-instance override for shader curves (null = use static default) */
|
|
68
|
+
private _useShaderCurvesOverride;
|
|
69
|
+
/**
|
|
70
|
+
* When true, render stroke as a mesh ring with miter-joined corners instead
|
|
71
|
+
* of Line2 for closed paths. Falls back to Line2 for open/partial paths
|
|
72
|
+
* (e.g. during Create/Uncreate animations).
|
|
73
|
+
*/
|
|
74
|
+
useStrokeMesh: boolean;
|
|
75
|
+
/** Cached mesh-based stroke ring */
|
|
76
|
+
private _cachedStrokeMesh;
|
|
77
|
+
/** Material for mesh-based stroke */
|
|
78
|
+
private _strokeMeshMaterial;
|
|
79
|
+
/**
|
|
80
|
+
* Get the shared BezierRenderer, creating it if needed.
|
|
81
|
+
*/
|
|
82
|
+
private static _getBezierRenderer;
|
|
83
|
+
constructor();
|
|
84
|
+
/**
|
|
85
|
+
* Check whether this instance should use shader-based Bezier curve rendering.
|
|
86
|
+
* Returns the per-instance override if set, otherwise the class-level default.
|
|
87
|
+
*/
|
|
88
|
+
get shaderCurves(): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Enable or disable shader-based Bezier curve rendering for this instance.
|
|
91
|
+
* Pass `null` to revert to the class-level VMobject.useShaderCurves default.
|
|
92
|
+
*/
|
|
93
|
+
set shaderCurves(value: boolean | null);
|
|
94
|
+
/**
|
|
95
|
+
* Get all points as 2D Point objects (derived from _points3D)
|
|
96
|
+
*/
|
|
97
|
+
get points(): Point[];
|
|
98
|
+
/**
|
|
99
|
+
* Set the points defining this VMobject.
|
|
100
|
+
* Accepts either Point[] ({x, y} objects) or number[][] ([x, y, z] arrays).
|
|
101
|
+
* @param points - Array of points in either format
|
|
102
|
+
* @returns this for chaining
|
|
103
|
+
*/
|
|
104
|
+
setPoints(points: Point[] | number[][]): this;
|
|
105
|
+
/**
|
|
106
|
+
* Set the points defining this VMobject using 3D arrays (alias for setPoints with number[][])
|
|
107
|
+
* @param points - Array of [x, y, z] control points for cubic Bezier curves
|
|
108
|
+
* @returns this for chaining
|
|
109
|
+
*/
|
|
110
|
+
setPoints3D(points: number[][]): this;
|
|
111
|
+
/**
|
|
112
|
+
* Get all points defining this VMobject as 3D arrays
|
|
113
|
+
* @returns Copy of the points array
|
|
114
|
+
*/
|
|
115
|
+
getPoints(): number[][];
|
|
116
|
+
/**
|
|
117
|
+
* Get the number of points
|
|
118
|
+
*/
|
|
119
|
+
get numPoints(): number;
|
|
120
|
+
/**
|
|
121
|
+
* Get the number of visible points (for Create animation)
|
|
122
|
+
*/
|
|
123
|
+
get visiblePointCount(): number;
|
|
124
|
+
/**
|
|
125
|
+
* Set the number of visible points (for Create animation)
|
|
126
|
+
*/
|
|
127
|
+
set visiblePointCount(count: number);
|
|
128
|
+
/**
|
|
129
|
+
* Get points that should be visible (for rendering) as 2D Points
|
|
130
|
+
*/
|
|
131
|
+
getVisiblePoints(): Point[];
|
|
132
|
+
/**
|
|
133
|
+
* Get points that should be visible (for rendering) as 3D arrays
|
|
134
|
+
*/
|
|
135
|
+
getVisiblePoints3D(): number[][];
|
|
136
|
+
/**
|
|
137
|
+
* Add points to this VMobject using 2D Point objects
|
|
138
|
+
*/
|
|
139
|
+
addPoints(...points: Point[]): this;
|
|
140
|
+
/**
|
|
141
|
+
* Set the points to form straight line segments between corner points.
|
|
142
|
+
* Each pair of consecutive corners becomes a cubic Bezier with linear handles.
|
|
143
|
+
* Matches Manim's set_points_as_corners.
|
|
144
|
+
* @param corners Array of [x, y, z] corner points
|
|
145
|
+
* @returns this for chaining
|
|
146
|
+
*/
|
|
147
|
+
setPointsAsCorners(corners: number[][]): this;
|
|
148
|
+
/**
|
|
149
|
+
* Add straight line segments from the last point to each corner.
|
|
150
|
+
* Each corner creates a new cubic Bezier segment with linear handles.
|
|
151
|
+
* Matches Manim's add_points_as_corners.
|
|
152
|
+
* @param corners Array of [x, y, z] corner points to connect to
|
|
153
|
+
* @returns this for chaining
|
|
154
|
+
*/
|
|
155
|
+
addPointsAsCorners(corners: number[][]): this;
|
|
156
|
+
/**
|
|
157
|
+
* Clear all points
|
|
158
|
+
*/
|
|
159
|
+
clearPoints(): this;
|
|
160
|
+
/**
|
|
161
|
+
* Interpolate this VMobject towards a target VMobject
|
|
162
|
+
* @param target - The target VMobject to interpolate towards
|
|
163
|
+
* @param alpha - Progress from 0 (this) to 1 (target)
|
|
164
|
+
* @returns this for chaining
|
|
165
|
+
*/
|
|
166
|
+
interpolate(target: VMobject, alpha: number): this;
|
|
167
|
+
/**
|
|
168
|
+
* Align points between this VMobject and a target so they have the same count.
|
|
169
|
+
* This is necessary for smooth morphing animations.
|
|
170
|
+
* @param target - The target VMobject to align with
|
|
171
|
+
*/
|
|
172
|
+
alignPoints(target: VMobject): void;
|
|
173
|
+
/**
|
|
174
|
+
* Interpolate a 3D point list to have a specific number of points.
|
|
175
|
+
*/
|
|
176
|
+
protected _interpolatePointList3D(points: number[][], targetCount: number): number[][];
|
|
177
|
+
/**
|
|
178
|
+
* Convert Bezier control points to a Three.js Shape for filled rendering.
|
|
179
|
+
* @returns THREE.Shape representing the path
|
|
180
|
+
*/
|
|
181
|
+
protected _pointsToShape(): THREE.Shape;
|
|
182
|
+
/**
|
|
183
|
+
* Convert points to a THREE.CurvePath for stroke rendering
|
|
184
|
+
*/
|
|
185
|
+
protected _pointsToCurvePath(): THREE.CurvePath<THREE.Vector3>;
|
|
186
|
+
/**
|
|
187
|
+
* Build a THREE.BufferGeometry for the filled region using earcut triangulation.
|
|
188
|
+
*
|
|
189
|
+
* Earcut handles concave polygons, self-intersecting paths, and holes far
|
|
190
|
+
* more robustly than Three.js' built-in ShapeGeometry triangulator, which
|
|
191
|
+
* is a simple ear-clipping implementation that struggles with complex SVG
|
|
192
|
+
* outlines.
|
|
193
|
+
*
|
|
194
|
+
* If earcut returns zero triangles (completely degenerate input) we fall
|
|
195
|
+
* back to THREE.ShapeGeometry so existing simple shapes still render.
|
|
196
|
+
*
|
|
197
|
+
* @param points3D - The visible Bezier control points
|
|
198
|
+
* @returns A BufferGeometry ready for use as a fill mesh, or null if the
|
|
199
|
+
* polygon is too degenerate even for fallback.
|
|
200
|
+
*/
|
|
201
|
+
protected _buildEarcutFillGeometry(points3D: number[][]): THREE.BufferGeometry | null;
|
|
202
|
+
/**
|
|
203
|
+
* Build fill geometry for multi-subpath shapes (e.g. boolean XOR).
|
|
204
|
+
* Splits control points by subpath boundaries, samples each independently,
|
|
205
|
+
* and triangulates each subpath as a separate region.
|
|
206
|
+
*/
|
|
207
|
+
private _buildEarcutFillGeometryMulti;
|
|
208
|
+
/**
|
|
209
|
+
* Sample the Bezier path into a 2D polyline suitable for earcut triangulation.
|
|
210
|
+
*
|
|
211
|
+
* This is similar to _sampleBezierPath but returns [x, y] pairs (no z) and
|
|
212
|
+
* skips duplicate-point de-duplication at segment boundaries (earcut handles
|
|
213
|
+
* that correctly and de-dup can introduce off-by-one for hole indices).
|
|
214
|
+
*/
|
|
215
|
+
private _sampleBezierOutline;
|
|
216
|
+
/**
|
|
217
|
+
* Split a sampled outline into separate rings based on subpath control-point
|
|
218
|
+
* lengths. Used for compound paths (outer boundary + holes).
|
|
219
|
+
*
|
|
220
|
+
* Each subpath length is the number of Bezier control points. We compute
|
|
221
|
+
* how many sampled points each subpath produced and split accordingly.
|
|
222
|
+
*/
|
|
223
|
+
/**
|
|
224
|
+
* Create the Three.js backing object for this VMobject.
|
|
225
|
+
* Creates both stroke (using Line2 for thick, smooth strokes) and fill meshes.
|
|
226
|
+
*/
|
|
227
|
+
protected _createThreeObject(): THREE.Object3D;
|
|
228
|
+
/**
|
|
229
|
+
* Update the geometry within the Three.js group.
|
|
230
|
+
* Reuses existing Line2 / Mesh objects when possible to avoid expensive
|
|
231
|
+
* dispose-and-recreate cycles during per-frame animation updates.
|
|
232
|
+
*
|
|
233
|
+
* When `shaderCurves` is enabled, stroke rendering uses GPU Bezier SDF
|
|
234
|
+
* shaders via BezierRenderer instead of the Line2 polyline approach.
|
|
235
|
+
*/
|
|
236
|
+
protected _updateGeometry(group: THREE.Group): void;
|
|
237
|
+
/**
|
|
238
|
+
* Update stroke using the classic Line2 approach (polyline approximation).
|
|
239
|
+
* Supports subpath-aware rendering: when getSubpaths() returns multiple
|
|
240
|
+
* subpaths, each is rendered as a separate Line2 to avoid visible bridge lines.
|
|
241
|
+
*/
|
|
242
|
+
private _updateLine2Stroke;
|
|
243
|
+
/**
|
|
244
|
+
* Render multiple separate Line2 strokes, one per subpath.
|
|
245
|
+
*/
|
|
246
|
+
private _updateLine2StrokeMulti;
|
|
247
|
+
/**
|
|
248
|
+
* Check if the Bezier control points form a closed path (first ≈ last anchor).
|
|
249
|
+
*/
|
|
250
|
+
private _isClosedPath;
|
|
251
|
+
/**
|
|
252
|
+
* Build a mesh-based stroke ring from a closed sampled path.
|
|
253
|
+
* Uses miter joins at corners for pixel-perfect sharp corners.
|
|
254
|
+
* Stroke width is in world units (strokeWidth * 0.005 per side).
|
|
255
|
+
*/
|
|
256
|
+
private _updateMeshStroke;
|
|
257
|
+
/**
|
|
258
|
+
* Remove the cached mesh-based stroke ring.
|
|
259
|
+
*/
|
|
260
|
+
private _removeMeshStroke;
|
|
261
|
+
/**
|
|
262
|
+
* Remove all cached multi-subpath Line2 objects.
|
|
263
|
+
*/
|
|
264
|
+
private _clearCachedLine2Array;
|
|
265
|
+
/**
|
|
266
|
+
* Update stroke using GPU Bezier SDF shader (ManimGL-quality rendering).
|
|
267
|
+
* Each cubic Bezier segment becomes one instanced quad rendered by the
|
|
268
|
+
* BezierShaderMaterial fragment shader.
|
|
269
|
+
*/
|
|
270
|
+
private _updateBezierStroke;
|
|
271
|
+
/**
|
|
272
|
+
* Dispose and remove all children from a Three.js group
|
|
273
|
+
*/
|
|
274
|
+
private _disposeGroupChildren;
|
|
275
|
+
/**
|
|
276
|
+
* Sample Bezier curves for smooth rendering.
|
|
277
|
+
* Uses adaptive sampling: nearly-linear segments (from prepareForNonlinearTransform)
|
|
278
|
+
* use only their endpoints, avoiding expensive per-sample Bezier evaluation.
|
|
279
|
+
*
|
|
280
|
+
* @param points - Bezier control points
|
|
281
|
+
* @param samplesPerSegment - Number of samples per curved Bezier segment
|
|
282
|
+
* @returns Sampled points along the path
|
|
283
|
+
*/
|
|
284
|
+
private _sampleBezierPath;
|
|
285
|
+
/**
|
|
286
|
+
* Check if a cubic Bezier segment is nearly linear by measuring the maximum
|
|
287
|
+
* distance from handles to the chord (p0 → p3).
|
|
288
|
+
*/
|
|
289
|
+
private static _isNearlyLinear;
|
|
290
|
+
/**
|
|
291
|
+
* Sync material properties to Three.js
|
|
292
|
+
*/
|
|
293
|
+
protected _syncMaterialToThree(): void;
|
|
294
|
+
/**
|
|
295
|
+
* Create a copy of this VMobject
|
|
296
|
+
*/
|
|
297
|
+
protected _createCopy(): VMobject;
|
|
298
|
+
/**
|
|
299
|
+
* Get the unit vector from the first to the last point of this VMobject,
|
|
300
|
+
* accounting for the object's current rotation transform.
|
|
301
|
+
*/
|
|
302
|
+
getUnitVector(): Vector3Tuple;
|
|
303
|
+
/**
|
|
304
|
+
* Get the center of this VMobject based on its points.
|
|
305
|
+
* Uses bounding box center (matching Python Manim's get_center behavior)
|
|
306
|
+
* rather than point centroid, which is inaccurate for Bezier control points.
|
|
307
|
+
*/
|
|
308
|
+
getCenter(): Vector3Tuple;
|
|
309
|
+
/**
|
|
310
|
+
* Clean up Three.js resources
|
|
311
|
+
*/
|
|
312
|
+
dispose(): void;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Get the number of curve segments in a VMobject.
|
|
316
|
+
* Each cubic Bezier segment uses 4 points (anchor, handle, handle, anchor),
|
|
317
|
+
* with consecutive segments sharing anchors.
|
|
318
|
+
* @param vmobject - The VMobject to count curves from
|
|
319
|
+
* @returns Number of curve segments
|
|
320
|
+
*/
|
|
321
|
+
export declare function getNumCurves(vmobject: VMobject): number;
|
|
322
|
+
/**
|
|
323
|
+
* Get the nth curve segment from a VMobject as a new VMobject.
|
|
324
|
+
* @param vmobject - The source VMobject
|
|
325
|
+
* @param n - Index of the curve segment (0-based)
|
|
326
|
+
* @returns A new VMobject containing just that curve segment
|
|
327
|
+
*/
|
|
328
|
+
export declare function getNthCurve(vmobject: VMobject, n: number): VMobject;
|
|
329
|
+
/**
|
|
330
|
+
* Split a VMobject's curves into separate VMobject submobjects.
|
|
331
|
+
* Each cubic Bezier curve segment becomes its own VMobject child.
|
|
332
|
+
* Useful for animating parts of a path independently (e.g., staggered animations).
|
|
333
|
+
*
|
|
334
|
+
* @param vmobject - The VMobject to split
|
|
335
|
+
* @returns A new VMobject with each curve as a child submobject
|
|
336
|
+
*
|
|
337
|
+
* @example
|
|
338
|
+
* ```typescript
|
|
339
|
+
* const path = new VMobject();
|
|
340
|
+
* path.setPoints([...complex path with multiple curves...]);
|
|
341
|
+
*
|
|
342
|
+
* // Split into individual curves for staggered animation
|
|
343
|
+
* const curves = curvesAsSubmobjects(path);
|
|
344
|
+
*
|
|
345
|
+
* // Now animate each curve independently
|
|
346
|
+
* for (const curve of curves.children) {
|
|
347
|
+
* scene.play(Create(curve));
|
|
348
|
+
* }
|
|
349
|
+
* ```
|
|
350
|
+
*/
|
|
351
|
+
export declare function curvesAsSubmobjects(vmobject: VMobject): VMobject;
|
|
352
|
+
/**
|
|
353
|
+
* CurvesAsSubmobjects class - Splits a VMobject's curves into separate submobjects.
|
|
354
|
+
*
|
|
355
|
+
* This class extends VMobject and creates children where each child is a single
|
|
356
|
+
* cubic Bezier curve segment from the source VMobject. This is useful for:
|
|
357
|
+
* - Staggered animations (animate each curve segment with delay)
|
|
358
|
+
* - Per-curve styling (color each segment differently)
|
|
359
|
+
* - Selective curve manipulation
|
|
360
|
+
*
|
|
361
|
+
* @example
|
|
362
|
+
* ```typescript
|
|
363
|
+
* const path = new VMobject();
|
|
364
|
+
* path.setPoints([...]);
|
|
365
|
+
*
|
|
366
|
+
* const curves = new CurvesAsSubmobjects(path);
|
|
367
|
+
*
|
|
368
|
+
* // Access individual curves
|
|
369
|
+
* curves.children[0].setColor('red');
|
|
370
|
+
* curves.children[1].setColor('blue');
|
|
371
|
+
* ```
|
|
372
|
+
*/
|
|
373
|
+
export declare class CurvesAsSubmobjects extends VMobject {
|
|
374
|
+
/** The source VMobject this was created from */
|
|
375
|
+
protected _source: VMobject | null;
|
|
376
|
+
/**
|
|
377
|
+
* Create a CurvesAsSubmobjects from a VMobject.
|
|
378
|
+
* @param vmobject - The VMobject to split into curve submobjects
|
|
379
|
+
*/
|
|
380
|
+
constructor(vmobject?: VMobject);
|
|
381
|
+
/**
|
|
382
|
+
* Set up this object from a VMobject, splitting its curves into children.
|
|
383
|
+
* @param vmobject - The source VMobject
|
|
384
|
+
* @returns this for chaining
|
|
385
|
+
*/
|
|
386
|
+
setFromVMobject(vmobject: VMobject): this;
|
|
387
|
+
/**
|
|
388
|
+
* Get the number of curve segments (same as number of children).
|
|
389
|
+
*/
|
|
390
|
+
get numCurves(): number;
|
|
391
|
+
/**
|
|
392
|
+
* Get the nth curve as a VMobject.
|
|
393
|
+
* @param n - Index of the curve (0-based)
|
|
394
|
+
* @returns The curve VMobject at that index
|
|
395
|
+
*/
|
|
396
|
+
getCurve(n: number): VMobject;
|
|
397
|
+
/**
|
|
398
|
+
* Iterate over all curves.
|
|
399
|
+
*/
|
|
400
|
+
[Symbol.iterator](): Iterator<VMobject>;
|
|
401
|
+
/**
|
|
402
|
+
* Apply a function to each curve.
|
|
403
|
+
* @param fn - Function to apply
|
|
404
|
+
* @returns this for chaining
|
|
405
|
+
*/
|
|
406
|
+
forEach(fn: (curve: VMobject, index: number) => void): this;
|
|
407
|
+
/**
|
|
408
|
+
* Map over all curves.
|
|
409
|
+
* @param fn - Mapping function
|
|
410
|
+
* @returns Array of mapped values
|
|
411
|
+
*/
|
|
412
|
+
map<T>(fn: (curve: VMobject, index: number) => T): T[];
|
|
413
|
+
/**
|
|
414
|
+
* Create a copy of this CurvesAsSubmobjects.
|
|
415
|
+
*/
|
|
416
|
+
protected _createCopy(): VMobject;
|
|
417
|
+
}
|
|
418
|
+
export default VMobject;
|
|
419
|
+
//# sourceMappingURL=VMobject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VMobject.d.ts","sourceRoot":"","sources":["../../src/core/VMobject.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { Mobject, type MobjectStyle, type Vector3Tuple } from './Mobject';
|
|
2
|
+
export { VMobject, type Point, CurvesAsSubmobjects, curvesAsSubmobjects, getNumCurves, getNthCurve, } from './VMobject';
|
|
3
|
+
export { Group } from './Group';
|
|
4
|
+
export { VGroup } from './VGroup';
|
|
5
|
+
export { VDict, VectorizedPoint } from './VDict';
|
|
6
|
+
export { Scene, type SceneOptions } from './Scene';
|
|
7
|
+
export { Camera2D, Camera3D, type CameraOptions, type Camera3DOptions } from './Camera';
|
|
8
|
+
export { MovingCamera, ThreeDCamera, MultiCamera, type MovingCameraOptions, type ThreeDCameraOptions, type CameraAnimationOptions, type CameraViewport, type CameraEntry, type MultiCameraOptions, } from './CameraExtensions';
|
|
9
|
+
export { CameraFrame, CameraAnimateProxy, type CameraFrameOptions, type CameraFrameState, type CameraAnimationOptions as CameraFrameAnimationOptions, } from './CameraFrame';
|
|
10
|
+
export { Renderer, type RendererOptions } from './Renderer';
|
|
11
|
+
export { SceneStateManager, serializeMobject, deserializeMobject, saveMobjectState, restoreMobjectState, stateToJSON, stateFromJSON, snapshotToJSON, snapshotFromJSON, type MobjectState, type SceneSnapshot, } from './StateManager';
|
|
12
|
+
export { AudioManager, type AudioTrack, type AddSoundOptions } from './AudioManager';
|
|
13
|
+
export { InteractiveScene, type InteractiveSceneOptions } from './InteractiveScene';
|
|
14
|
+
export { Lighting, type AmbientLightOptions, type DirectionalLightOptions, type PointLightOptions, type SpotLightOptions } from './Lighting';
|
|
15
|
+
export { ThreeDScene, MovingCameraScene, ZoomedScene, VectorScene, LinearTransformationScene, type ThreeDSceneOptions, type MovingCameraSceneOptions, type ZoomedSceneOptions, type VectorSceneOptions, type LinearTransformationSceneOptions, type Matrix2D, } from './SceneExtensions';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EACL,QAAQ,EACR,KAAK,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AACxF,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,IAAI,2BAA2B,GAC3D,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,KAAK,mBAAmB,EAAE,KAAK,uBAAuB,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC7I,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,gCAAgC,EACrC,KAAK,QAAQ,GACd,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"examples.test.d.ts","sourceRoot":"","sources":["../src/examples.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Scene } from '../core/Scene';
|
|
2
|
+
interface GifExportOptions {
|
|
3
|
+
fps?: number;
|
|
4
|
+
quality?: number;
|
|
5
|
+
width?: number;
|
|
6
|
+
height?: number;
|
|
7
|
+
duration?: number;
|
|
8
|
+
workers?: number;
|
|
9
|
+
repeat?: number;
|
|
10
|
+
onProgress?: (progress: number) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare class GifExporter {
|
|
13
|
+
private _scene;
|
|
14
|
+
private _options;
|
|
15
|
+
constructor(scene: Scene, options?: GifExportOptions);
|
|
16
|
+
/**
|
|
17
|
+
* Export the timeline as a GIF
|
|
18
|
+
*/
|
|
19
|
+
exportTimeline(duration?: number): Promise<Blob>;
|
|
20
|
+
/**
|
|
21
|
+
* Get timeline duration if available
|
|
22
|
+
*/
|
|
23
|
+
private _getTimelineDuration;
|
|
24
|
+
/**
|
|
25
|
+
* Get the worker script URL
|
|
26
|
+
* gif.js requires a worker script for encoding
|
|
27
|
+
*/
|
|
28
|
+
private _getWorkerScript;
|
|
29
|
+
/**
|
|
30
|
+
* Download the GIF
|
|
31
|
+
*/
|
|
32
|
+
static download(blob: Blob, filename?: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Convenience method: export and download
|
|
35
|
+
*/
|
|
36
|
+
exportAndDownload(filename?: string, duration?: number): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
export declare function createGifExporter(scene: Scene, options?: GifExportOptions): GifExporter;
|
|
39
|
+
export type { GifExportOptions };
|
|
40
|
+
//# sourceMappingURL=GifExporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GifExporter.d.ts","sourceRoot":"","sources":["../../src/export/GifExporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,UAAU,gBAAgB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAA6B;gBAEjC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAepD;;OAEG;IACG,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDtD;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAE,MAAwB,GAAG,IAAI;IAWrE;;OAEG;IACG,iBAAiB,CAAC,QAAQ,GAAE,MAAwB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAI9F;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,WAAW,CAEvF;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { Scene } from '../core/Scene';
|
|
2
|
+
import { AudioManager } from '../core/AudioManager';
|
|
3
|
+
/**
|
|
4
|
+
* Options for configuring video export.
|
|
5
|
+
*/
|
|
6
|
+
export interface VideoExportOptions {
|
|
7
|
+
/** Frames per second. Defaults to 60. */
|
|
8
|
+
fps?: number;
|
|
9
|
+
/** Quality from 0-1. Defaults to 0.9. */
|
|
10
|
+
quality?: number;
|
|
11
|
+
/** Video format. Defaults to 'webm' (mp4 requires additional browser codec support). */
|
|
12
|
+
format?: 'webm' | 'mp4';
|
|
13
|
+
/** Output width in pixels. Defaults to scene width. */
|
|
14
|
+
width?: number;
|
|
15
|
+
/** Output height in pixels. Defaults to scene height. */
|
|
16
|
+
height?: number;
|
|
17
|
+
/** Duration in seconds. Auto-detects from timeline if not specified. */
|
|
18
|
+
duration?: number;
|
|
19
|
+
/** Progress callback (0-1). */
|
|
20
|
+
onProgress?: (progress: number) => void;
|
|
21
|
+
/**
|
|
22
|
+
* Include audio from the scene's AudioManager in the exported video.
|
|
23
|
+
* Defaults to true when the scene has audio tracks loaded.
|
|
24
|
+
*/
|
|
25
|
+
includeAudio?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Provide an external AudioManager to use for the audio track.
|
|
28
|
+
* If not specified, the scene's audioManager is used.
|
|
29
|
+
*/
|
|
30
|
+
audioManager?: AudioManager;
|
|
31
|
+
}
|
|
32
|
+
interface ResolvedVideoExportOptions {
|
|
33
|
+
fps: number;
|
|
34
|
+
quality: number;
|
|
35
|
+
format: 'webm' | 'mp4';
|
|
36
|
+
width: number;
|
|
37
|
+
height: number;
|
|
38
|
+
duration: number;
|
|
39
|
+
onProgress: (progress: number) => void;
|
|
40
|
+
includeAudio: boolean;
|
|
41
|
+
audioManager: AudioManager | null;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Video exporter for manimweb scenes.
|
|
45
|
+
* Uses the MediaRecorder API for browser-native recording.
|
|
46
|
+
*
|
|
47
|
+
* WebM with VP9 has the best browser support.
|
|
48
|
+
* MP4 encoding requires browser support (limited availability).
|
|
49
|
+
*
|
|
50
|
+
* Frame-by-frame export gives consistent results vs real-time recording.
|
|
51
|
+
*
|
|
52
|
+
* When `includeAudio` is true (default when audio tracks exist), the exported
|
|
53
|
+
* video includes the mixed-down audio from the scene's AudioManager.
|
|
54
|
+
*/
|
|
55
|
+
export declare class VideoExporter {
|
|
56
|
+
private _scene;
|
|
57
|
+
private _options;
|
|
58
|
+
private _mediaRecorder;
|
|
59
|
+
private _recordedChunks;
|
|
60
|
+
private _isRecording;
|
|
61
|
+
/**
|
|
62
|
+
* Create a new VideoExporter.
|
|
63
|
+
* @param scene - The scene to export
|
|
64
|
+
* @param options - Export options
|
|
65
|
+
*/
|
|
66
|
+
constructor(scene: Scene, options?: VideoExportOptions);
|
|
67
|
+
/**
|
|
68
|
+
* Get the AudioManager to use for export.
|
|
69
|
+
* Returns the explicitly provided one, or the scene's manager if it has tracks.
|
|
70
|
+
*/
|
|
71
|
+
private _getAudioManager;
|
|
72
|
+
/**
|
|
73
|
+
* Start recording the scene.
|
|
74
|
+
* If audio is available and `includeAudio` is true, the audio stream
|
|
75
|
+
* is merged into the recording.
|
|
76
|
+
* @throws Error if already recording or format not supported
|
|
77
|
+
*/
|
|
78
|
+
startRecording(): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Stop recording and return the video blob.
|
|
81
|
+
* @returns Promise resolving to the video Blob
|
|
82
|
+
* @throws Error if not recording
|
|
83
|
+
*/
|
|
84
|
+
stopRecording(): Promise<Blob>;
|
|
85
|
+
/**
|
|
86
|
+
* Export a specific duration of the timeline.
|
|
87
|
+
* Renders frame-by-frame for consistent results.
|
|
88
|
+
*
|
|
89
|
+
* If the scene has audio and `includeAudio` is true, audio is included
|
|
90
|
+
* in the exported video file.
|
|
91
|
+
*
|
|
92
|
+
* @param duration - Duration to export in seconds (auto-detects from timeline if not specified)
|
|
93
|
+
* @returns Promise resolving to the video Blob
|
|
94
|
+
*/
|
|
95
|
+
exportTimeline(duration?: number): Promise<Blob>;
|
|
96
|
+
/**
|
|
97
|
+
* Export audio-only as a WAV Blob.
|
|
98
|
+
* Useful when you need the audio track separately (e.g., for external muxing).
|
|
99
|
+
*
|
|
100
|
+
* @param duration - Duration in seconds (defaults to timeline duration)
|
|
101
|
+
* @returns WAV Blob, or null if no audio is available
|
|
102
|
+
*/
|
|
103
|
+
exportAudio(duration?: number): Promise<Blob | null>;
|
|
104
|
+
/**
|
|
105
|
+
* Download a video blob as a file.
|
|
106
|
+
* @param blob - The video blob to download
|
|
107
|
+
* @param filename - The filename (defaults to 'animation.webm')
|
|
108
|
+
*/
|
|
109
|
+
static download(blob: Blob, filename?: string): void;
|
|
110
|
+
/**
|
|
111
|
+
* Convenience method: export timeline and download the result.
|
|
112
|
+
* @param filename - Optional filename (extension auto-added based on format)
|
|
113
|
+
* @param duration - Optional duration override
|
|
114
|
+
*/
|
|
115
|
+
exportAndDownload(filename?: string, duration?: number): Promise<void>;
|
|
116
|
+
/**
|
|
117
|
+
* Check if currently recording.
|
|
118
|
+
* @returns true if recording is in progress
|
|
119
|
+
*/
|
|
120
|
+
isRecording(): boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Get the export options.
|
|
123
|
+
* @returns The resolved export options
|
|
124
|
+
*/
|
|
125
|
+
getOptions(): Readonly<ResolvedVideoExportOptions>;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Factory function to create a VideoExporter.
|
|
129
|
+
* @param scene - The scene to export
|
|
130
|
+
* @param options - Export options
|
|
131
|
+
* @returns A new VideoExporter instance
|
|
132
|
+
*/
|
|
133
|
+
export declare function createVideoExporter(scene: Scene, options?: VideoExportOptions): VideoExporter;
|
|
134
|
+
export {};
|
|
135
|
+
//# sourceMappingURL=VideoExporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoExporter.d.ts","sourceRoot":"","sources":["../../src/export/VideoExporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,UAAU,0BAA0B;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,YAAY,CAAkB;IAEtC;;;;OAIG;gBACS,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAetD;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;;;;OAKG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAiDrC;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBpC;;;;;;;;;OASG;IACG,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuCtD;;;;;;OAMG;IACG,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAQ1D;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAE,MAAyB,GAAG,IAAI;IAWtE;;;;OAIG;IACG,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5E;;;OAGG;IACH,WAAW,IAAI,OAAO;IAItB;;;OAGG;IACH,UAAU,IAAI,QAAQ,CAAC,0BAA0B,CAAC;CAGnD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,aAAa,CAE7F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/export/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
|