manim-web 0.3.21 → 0.3.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/README.md +20 -0
  2. package/dist/{svg-swSF_J59.js → MathJaxBundle-xSidSV0E.js} +18571 -7242
  3. package/dist/animation/Animation.d.ts.map +1 -1
  4. package/dist/animation/AnimationGroup.d.ts.map +1 -1
  5. package/dist/animation/MasterTimeline.d.ts +88 -1
  6. package/dist/animation/MasterTimeline.d.ts.map +1 -1
  7. package/dist/animation/Timeline.d.ts.map +1 -1
  8. package/dist/animation/changing/index.d.ts +2 -2
  9. package/dist/animation/changing/index.d.ts.map +1 -1
  10. package/dist/animation/creation/Create.d.ts.map +1 -1
  11. package/dist/animation/growing/index.d.ts +8 -5
  12. package/dist/animation/growing/index.d.ts.map +1 -1
  13. package/dist/animation/movement/Homotopy.d.ts +37 -7
  14. package/dist/animation/movement/Homotopy.d.ts.map +1 -1
  15. package/dist/animation/movement/MoveAlongPath.d.ts.map +1 -1
  16. package/dist/animation/movement/Rotate.d.ts +2 -7
  17. package/dist/animation/movement/Rotate.d.ts.map +1 -1
  18. package/dist/animation/speed/index.d.ts.map +1 -1
  19. package/dist/animation/transform/ApplyPointwiseFunction.d.ts.map +1 -1
  20. package/dist/animation/transform/ApplyPointwiseFunctionToCenter.d.ts.map +1 -1
  21. package/dist/animation/transform/ApplyTransforms.d.ts.map +1 -1
  22. package/dist/animation/transform/MorphStrategy.d.ts +23 -0
  23. package/dist/animation/transform/MorphStrategy.d.ts.map +1 -1
  24. package/dist/animation/transform/PointCloudMorphStrategy.d.ts +18 -0
  25. package/dist/animation/transform/PointCloudMorphStrategy.d.ts.map +1 -0
  26. package/dist/animation/transform/PointMorphStrategy.d.ts +26 -0
  27. package/dist/animation/transform/PointMorphStrategy.d.ts.map +1 -1
  28. package/dist/animation/transform/Transform.d.ts +2 -0
  29. package/dist/animation/transform/Transform.d.ts.map +1 -1
  30. package/dist/animation/transform/TransformMatching.d.ts.map +1 -1
  31. package/dist/animation/utility/index.d.ts +6 -2
  32. package/dist/animation/utility/index.d.ts.map +1 -1
  33. package/dist/core/AnimateProxy.d.ts +3 -5
  34. package/dist/core/AnimateProxy.d.ts.map +1 -1
  35. package/dist/core/Camera.d.ts +40 -0
  36. package/dist/core/Camera.d.ts.map +1 -1
  37. package/dist/core/Camera2DFrame.d.ts +1 -1
  38. package/dist/core/Camera2DFrame.d.ts.map +1 -1
  39. package/dist/core/CameraExtensions.d.ts +33 -1
  40. package/dist/core/CameraExtensions.d.ts.map +1 -1
  41. package/dist/core/CameraFrame.d.ts.map +1 -1
  42. package/dist/core/Group.d.ts +11 -39
  43. package/dist/core/Group.d.ts.map +1 -1
  44. package/dist/core/InteractiveScene.d.ts.map +1 -1
  45. package/dist/core/Lighting.d.ts.map +1 -1
  46. package/dist/core/Mobject.d.ts +246 -11
  47. package/dist/core/Mobject.d.ts.map +1 -1
  48. package/dist/core/MobjectPositioning.d.ts +0 -8
  49. package/dist/core/MobjectPositioning.d.ts.map +1 -1
  50. package/dist/core/MobjectState.d.ts.map +1 -1
  51. package/dist/core/MobjectTraversal.d.ts +3 -0
  52. package/dist/core/MobjectTraversal.d.ts.map +1 -1
  53. package/dist/core/MobjectTypes.d.ts +29 -4
  54. package/dist/core/MobjectTypes.d.ts.map +1 -1
  55. package/dist/core/PointBounds.d.ts +39 -0
  56. package/dist/core/PointBounds.d.ts.map +1 -0
  57. package/dist/core/Renderer.d.ts +3 -0
  58. package/dist/core/Renderer.d.ts.map +1 -1
  59. package/dist/core/Scene.d.ts +82 -0
  60. package/dist/core/Scene.d.ts.map +1 -1
  61. package/dist/core/TexturedMobject.d.ts +12 -0
  62. package/dist/core/TexturedMobject.d.ts.map +1 -1
  63. package/dist/core/ThreeDScene.d.ts +9 -1
  64. package/dist/core/ThreeDScene.d.ts.map +1 -1
  65. package/dist/core/VDict.d.ts +1 -9
  66. package/dist/core/VDict.d.ts.map +1 -1
  67. package/dist/core/VGroup.d.ts +58 -42
  68. package/dist/core/VGroup.d.ts.map +1 -1
  69. package/dist/core/VMobject.d.ts +102 -28
  70. package/dist/core/VMobject.d.ts.map +1 -1
  71. package/dist/core/VMobjectCurveUtils.d.ts +1 -1
  72. package/dist/core/VMobjectCurveUtils.d.ts.map +1 -1
  73. package/dist/core/VMobjectGeometry.d.ts +20 -10
  74. package/dist/core/VMobjectGeometry.d.ts.map +1 -1
  75. package/dist/core/VMobjectRendering.d.ts +5 -0
  76. package/dist/core/VMobjectRendering.d.ts.map +1 -1
  77. package/dist/core/VMobjectStrokeGeometry.d.ts.map +1 -1
  78. package/dist/core/VMobjectTransformAlignment.d.ts +9 -0
  79. package/dist/core/VMobjectTransformAlignment.d.ts.map +1 -1
  80. package/dist/core/ZoomedScene.d.ts +2 -1
  81. package/dist/core/ZoomedScene.d.ts.map +1 -1
  82. package/dist/export/GifExporter.d.ts.map +1 -1
  83. package/dist/export/VideoExporter.d.ts.map +1 -1
  84. package/dist/index.d.ts +5 -4
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +2 -4
  87. package/dist/integrations/react.js +16 -18
  88. package/dist/integrations/vue.js +15 -17
  89. package/dist/interaction/Draggable.d.ts +12 -0
  90. package/dist/interaction/Draggable.d.ts.map +1 -1
  91. package/dist/interaction/OrbitControls.d.ts +1 -1
  92. package/dist/interaction/OrbitControls.d.ts.map +1 -1
  93. package/dist/manim-web.browser.js +12510 -10445
  94. package/dist/mobjects/fractals/MandelbrotSet.d.ts +2 -1
  95. package/dist/mobjects/fractals/MandelbrotSet.d.ts.map +1 -1
  96. package/dist/mobjects/fractals/NewtonFractal.d.ts +2 -1
  97. package/dist/mobjects/fractals/NewtonFractal.d.ts.map +1 -1
  98. package/dist/mobjects/frame/index.d.ts +3 -12
  99. package/dist/mobjects/frame/index.d.ts.map +1 -1
  100. package/dist/mobjects/geometry/AngleShapes.d.ts +4 -8
  101. package/dist/mobjects/geometry/AngleShapes.d.ts.map +1 -1
  102. package/dist/mobjects/geometry/AnnularSector.d.ts +4 -74
  103. package/dist/mobjects/geometry/AnnularSector.d.ts.map +1 -1
  104. package/dist/mobjects/geometry/Annulus.d.ts +1 -62
  105. package/dist/mobjects/geometry/Annulus.d.ts.map +1 -1
  106. package/dist/mobjects/geometry/Arc.d.ts +3 -1
  107. package/dist/mobjects/geometry/Arc.d.ts.map +1 -1
  108. package/dist/mobjects/geometry/ArcBetweenPoints.d.ts +1 -1
  109. package/dist/mobjects/geometry/ArcBetweenPoints.d.ts.map +1 -1
  110. package/dist/mobjects/geometry/ArcPolygon.d.ts +1 -1
  111. package/dist/mobjects/geometry/ArcPolygon.d.ts.map +1 -1
  112. package/dist/mobjects/geometry/Arrow.d.ts +130 -23
  113. package/dist/mobjects/geometry/Arrow.d.ts.map +1 -1
  114. package/dist/mobjects/geometry/ArrowTips.d.ts +7 -7
  115. package/dist/mobjects/geometry/ArrowTips.d.ts.map +1 -1
  116. package/dist/mobjects/geometry/BooleanOperations.d.ts.map +1 -1
  117. package/dist/mobjects/geometry/Circle.d.ts +20 -23
  118. package/dist/mobjects/geometry/Circle.d.ts.map +1 -1
  119. package/dist/mobjects/geometry/CubicBezier.d.ts +1 -1
  120. package/dist/mobjects/geometry/CubicBezier.d.ts.map +1 -1
  121. package/dist/mobjects/geometry/CurvedArrow.d.ts +1 -1
  122. package/dist/mobjects/geometry/CurvedArrow.d.ts.map +1 -1
  123. package/dist/mobjects/geometry/CurvedDoubleArrow.d.ts +1 -1
  124. package/dist/mobjects/geometry/CurvedDoubleArrow.d.ts.map +1 -1
  125. package/dist/mobjects/geometry/DashedLine.d.ts +3 -2
  126. package/dist/mobjects/geometry/DashedLine.d.ts.map +1 -1
  127. package/dist/mobjects/geometry/DashedVMobject.d.ts +3 -2
  128. package/dist/mobjects/geometry/DashedVMobject.d.ts.map +1 -1
  129. package/dist/mobjects/geometry/Dot.d.ts +4 -15
  130. package/dist/mobjects/geometry/Dot.d.ts.map +1 -1
  131. package/dist/mobjects/geometry/Ellipse.d.ts +3 -47
  132. package/dist/mobjects/geometry/Ellipse.d.ts.map +1 -1
  133. package/dist/mobjects/geometry/LabeledGeometry.d.ts +5 -5
  134. package/dist/mobjects/geometry/LabeledGeometry.d.ts.map +1 -1
  135. package/dist/mobjects/geometry/Line.d.ts +15 -9
  136. package/dist/mobjects/geometry/Line.d.ts.map +1 -1
  137. package/dist/mobjects/geometry/Polygon.d.ts +1 -1
  138. package/dist/mobjects/geometry/Polygon.d.ts.map +1 -1
  139. package/dist/mobjects/geometry/PolygonExtensions.d.ts +11 -67
  140. package/dist/mobjects/geometry/PolygonExtensions.d.ts.map +1 -1
  141. package/dist/mobjects/geometry/Polygram.d.ts +1 -1
  142. package/dist/mobjects/geometry/Polygram.d.ts.map +1 -1
  143. package/dist/mobjects/geometry/Rectangle.d.ts +4 -5
  144. package/dist/mobjects/geometry/Rectangle.d.ts.map +1 -1
  145. package/dist/mobjects/geometry/Sector.d.ts +5 -69
  146. package/dist/mobjects/geometry/Sector.d.ts.map +1 -1
  147. package/dist/mobjects/geometry/ShapeMatchers.d.ts +6 -5
  148. package/dist/mobjects/geometry/ShapeMatchers.d.ts.map +1 -1
  149. package/dist/mobjects/geometry/TangentialArc.d.ts +1 -1
  150. package/dist/mobjects/geometry/TangentialArc.d.ts.map +1 -1
  151. package/dist/mobjects/geometry/segment.d.ts +24 -0
  152. package/dist/mobjects/geometry/segment.d.ts.map +1 -0
  153. package/dist/mobjects/graph/DiGraph.d.ts +1 -4
  154. package/dist/mobjects/graph/DiGraph.d.ts.map +1 -1
  155. package/dist/mobjects/graph/GenericGraph.d.ts +2 -1
  156. package/dist/mobjects/graph/GenericGraph.d.ts.map +1 -1
  157. package/dist/mobjects/graph/Graph.d.ts +1 -4
  158. package/dist/mobjects/graph/Graph.d.ts.map +1 -1
  159. package/dist/mobjects/graph/layoutAlgorithms.d.ts.map +1 -1
  160. package/dist/mobjects/graphing/Axes.d.ts +1 -4
  161. package/dist/mobjects/graphing/Axes.d.ts.map +1 -1
  162. package/dist/mobjects/graphing/BarChart.d.ts +1 -4
  163. package/dist/mobjects/graphing/BarChart.d.ts.map +1 -1
  164. package/dist/mobjects/graphing/ComplexPlane.d.ts +43 -9
  165. package/dist/mobjects/graphing/ComplexPlane.d.ts.map +1 -1
  166. package/dist/mobjects/graphing/FunctionGraph.d.ts +1 -4
  167. package/dist/mobjects/graphing/FunctionGraph.d.ts.map +1 -1
  168. package/dist/mobjects/graphing/ImplicitFunction.d.ts +1 -4
  169. package/dist/mobjects/graphing/ImplicitFunction.d.ts.map +1 -1
  170. package/dist/mobjects/graphing/NumberLine.d.ts +2 -8
  171. package/dist/mobjects/graphing/NumberLine.d.ts.map +1 -1
  172. package/dist/mobjects/graphing/NumberPlane.d.ts +1 -4
  173. package/dist/mobjects/graphing/NumberPlane.d.ts.map +1 -1
  174. package/dist/mobjects/graphing/ParametricFunction.d.ts +1 -4
  175. package/dist/mobjects/graphing/ParametricFunction.d.ts.map +1 -1
  176. package/dist/mobjects/graphing/Vector.d.ts +1 -4
  177. package/dist/mobjects/graphing/Vector.d.ts.map +1 -1
  178. package/dist/mobjects/graphing/VectorField.d.ts +3 -12
  179. package/dist/mobjects/graphing/VectorField.d.ts.map +1 -1
  180. package/dist/mobjects/image/index.d.ts +6 -4
  181. package/dist/mobjects/image/index.d.ts.map +1 -1
  182. package/dist/mobjects/matrix/Matrix.d.ts +4 -16
  183. package/dist/mobjects/matrix/Matrix.d.ts.map +1 -1
  184. package/dist/mobjects/point/Mobject1D.d.ts +1 -4
  185. package/dist/mobjects/point/Mobject1D.d.ts.map +1 -1
  186. package/dist/mobjects/point/Mobject2D.d.ts +1 -1
  187. package/dist/mobjects/point/Mobject2D.d.ts.map +1 -1
  188. package/dist/mobjects/point/PGroup.d.ts +2 -4
  189. package/dist/mobjects/point/PGroup.d.ts.map +1 -1
  190. package/dist/mobjects/point/PMobject.d.ts +49 -13
  191. package/dist/mobjects/point/PMobject.d.ts.map +1 -1
  192. package/dist/mobjects/point/PointCloudDot.d.ts +1 -4
  193. package/dist/mobjects/point/PointCloudDot.d.ts.map +1 -1
  194. package/dist/mobjects/point/PointMobject.d.ts +13 -17
  195. package/dist/mobjects/point/PointMobject.d.ts.map +1 -1
  196. package/dist/mobjects/probability/DiceFace.d.ts +1 -5
  197. package/dist/mobjects/probability/DiceFace.d.ts.map +1 -1
  198. package/dist/mobjects/probability/SampleSpace.d.ts +1 -5
  199. package/dist/mobjects/probability/SampleSpace.d.ts.map +1 -1
  200. package/dist/mobjects/svg/Brace.d.ts +5 -20
  201. package/dist/mobjects/svg/Brace.d.ts.map +1 -1
  202. package/dist/mobjects/svg/SVGMobject.d.ts +2 -2
  203. package/dist/mobjects/svg/SVGMobject.d.ts.map +1 -1
  204. package/dist/mobjects/table/Table.d.ts +1 -5
  205. package/dist/mobjects/table/Table.d.ts.map +1 -1
  206. package/dist/mobjects/text/Code.d.ts +1 -4
  207. package/dist/mobjects/text/Code.d.ts.map +1 -1
  208. package/dist/mobjects/text/CodeHighlighting.d.ts.map +1 -1
  209. package/dist/mobjects/text/CodeLanguageData.d.ts.map +1 -1
  210. package/dist/mobjects/text/DecimalNumber.d.ts +2 -8
  211. package/dist/mobjects/text/DecimalNumber.d.ts.map +1 -1
  212. package/dist/mobjects/text/GlyphVMobject.d.ts +1 -1
  213. package/dist/mobjects/text/GlyphVMobject.d.ts.map +1 -1
  214. package/dist/mobjects/text/MarkupText.d.ts +1 -1
  215. package/dist/mobjects/text/MarkupText.d.ts.map +1 -1
  216. package/dist/mobjects/text/MathJaxBundle.d.ts +7 -0
  217. package/dist/mobjects/text/MathJaxBundle.d.ts.map +1 -0
  218. package/dist/mobjects/text/MathJaxRenderer.d.ts +9 -0
  219. package/dist/mobjects/text/MathJaxRenderer.d.ts.map +1 -1
  220. package/dist/mobjects/text/MathTex.d.ts +17 -4
  221. package/dist/mobjects/text/MathTex.d.ts.map +1 -1
  222. package/dist/mobjects/text/MathTexImage.d.ts +19 -4
  223. package/dist/mobjects/text/MathTexImage.d.ts.map +1 -1
  224. package/dist/mobjects/text/Paragraph.d.ts +1 -1
  225. package/dist/mobjects/text/Paragraph.d.ts.map +1 -1
  226. package/dist/mobjects/text/Tex.d.ts +2 -5
  227. package/dist/mobjects/text/Tex.d.ts.map +1 -1
  228. package/dist/mobjects/text/Text.d.ts +17 -1
  229. package/dist/mobjects/text/Text.d.ts.map +1 -1
  230. package/dist/mobjects/text/TextExtensions.d.ts +3 -12
  231. package/dist/mobjects/text/TextExtensions.d.ts.map +1 -1
  232. package/dist/mobjects/text/TextGlyphGroup.d.ts.map +1 -1
  233. package/dist/mobjects/text/Variable.d.ts +2 -4
  234. package/dist/mobjects/text/Variable.d.ts.map +1 -1
  235. package/dist/mobjects/text/katexStyles.d.ts.map +1 -1
  236. package/dist/mobjects/text/svgPathParser.d.ts.map +1 -1
  237. package/dist/mobjects/three-d/Arrow3D.d.ts +4 -3
  238. package/dist/mobjects/three-d/Arrow3D.d.ts.map +1 -1
  239. package/dist/mobjects/three-d/ConvexHull3D.d.ts +4 -3
  240. package/dist/mobjects/three-d/ConvexHull3D.d.ts.map +1 -1
  241. package/dist/mobjects/three-d/Cube.d.ts +6 -11
  242. package/dist/mobjects/three-d/Cube.d.ts.map +1 -1
  243. package/dist/mobjects/three-d/Cylinder.d.ts +5 -10
  244. package/dist/mobjects/three-d/Cylinder.d.ts.map +1 -1
  245. package/dist/mobjects/three-d/Line3D.d.ts +14 -59
  246. package/dist/mobjects/three-d/Line3D.d.ts.map +1 -1
  247. package/dist/mobjects/three-d/Mobject3D.d.ts +19 -0
  248. package/dist/mobjects/three-d/Mobject3D.d.ts.map +1 -0
  249. package/dist/mobjects/three-d/ParametricSurface.d.ts +1 -1
  250. package/dist/mobjects/three-d/ParametricSurface.d.ts.map +1 -1
  251. package/dist/mobjects/three-d/Polyhedra.d.ts +7 -6
  252. package/dist/mobjects/three-d/Polyhedra.d.ts.map +1 -1
  253. package/dist/mobjects/three-d/Sphere.d.ts +4 -6
  254. package/dist/mobjects/three-d/Sphere.d.ts.map +1 -1
  255. package/dist/mobjects/three-d/Surface3D.d.ts +41 -4
  256. package/dist/mobjects/three-d/Surface3D.d.ts.map +1 -1
  257. package/dist/mobjects/three-d/TexturedSurface.d.ts +4 -3
  258. package/dist/mobjects/three-d/TexturedSurface.d.ts.map +1 -1
  259. package/dist/mobjects/three-d/ThreeDAxes.d.ts +1 -1
  260. package/dist/mobjects/three-d/ThreeDAxes.d.ts.map +1 -1
  261. package/dist/mobjects/three-d/ThreeDExtensions.d.ts +7 -15
  262. package/dist/mobjects/three-d/ThreeDExtensions.d.ts.map +1 -1
  263. package/dist/mobjects/three-d/Torus.d.ts +4 -6
  264. package/dist/mobjects/three-d/Torus.d.ts.map +1 -1
  265. package/dist/mobjects/three-d/index.d.ts +1 -0
  266. package/dist/mobjects/three-d/index.d.ts.map +1 -1
  267. package/dist/mobjects/value-tracker/ValueTracker.d.ts +4 -2
  268. package/dist/mobjects/value-tracker/ValueTracker.d.ts.map +1 -1
  269. package/dist/player/Player.d.ts +36 -29
  270. package/dist/player/Player.d.ts.map +1 -1
  271. package/dist/player/PlayerUI.d.ts.map +1 -1
  272. package/dist/player/RecordingScene.d.ts +37 -0
  273. package/dist/player/RecordingScene.d.ts.map +1 -0
  274. package/dist/{src-CW4pfZdP.js → src-Bm3ebFjQ.js} +11003 -8942
  275. package/dist/test-setup/vitest-setup.d.ts +20 -0
  276. package/dist/test-setup/vitest-setup.d.ts.map +1 -0
  277. package/dist/utils/axis.d.ts +4 -0
  278. package/dist/utils/axis.d.ts.map +1 -0
  279. package/dist/utils/logger.d.ts +37 -0
  280. package/dist/utils/logger.d.ts.map +1 -1
  281. package/dist/utils/math.d.ts +4 -0
  282. package/dist/utils/math.d.ts.map +1 -1
  283. package/dist/utils/vectors.d.ts +54 -1
  284. package/dist/utils/vectors.d.ts.map +1 -1
  285. package/package.json +13 -8
  286. package/dist/AmsConfiguration-BMyoprhk.js +0 -847
  287. package/dist/AmsConfiguration-BdxxYRby.js +0 -847
  288. package/dist/ConfigMacrosConfiguration-B8X_JSVI.js +0 -46
  289. package/dist/ConfigMacrosConfiguration-DUxp6DUV.js +0 -46
  290. package/dist/Entities-B1o7gN0J.js +0 -429
  291. package/dist/Entities-C82lnCux.js +0 -429
  292. package/dist/Factory-BKM7FEO-.js +0 -107
  293. package/dist/Factory-D-whCqrb.js +0 -107
  294. package/dist/GifExporter-BrxY_q7e.js +0 -338
  295. package/dist/GifExporter-S2pbxMc5.js +0 -338
  296. package/dist/HtmlNode-BLmQ2r7U.js +0 -981
  297. package/dist/HtmlNode-DXGeKrcW.js +0 -981
  298. package/dist/InputJax-DL9oUQY4.js +0 -41
  299. package/dist/InputJax-DnDWM3Y0.js +0 -41
  300. package/dist/NewcommandConfiguration-BPjclFig.js +0 -32
  301. package/dist/NewcommandConfiguration-bJ6P1rBY.js +0 -32
  302. package/dist/NewcommandMethods-C_E3iLoK.js +0 -187
  303. package/dist/NewcommandMethods-Cb7yFm5P.js +0 -187
  304. package/dist/Options-DRlTi0G8.js +0 -63
  305. package/dist/Options-XPptO-6X.js +0 -63
  306. package/dist/ParseMethods-BMPfzfQC.js +0 -2636
  307. package/dist/ParseMethods-D3_HeS1K.js +0 -2636
  308. package/dist/Styles-Dky5jZUe.js +0 -293
  309. package/dist/Styles-J-6R3Vr8.js +0 -293
  310. package/dist/VideoExporter-6ikT3u9H.js +0 -102
  311. package/dist/VideoExporter-D_RxVahH.js +0 -102
  312. package/dist/html-DU38zqaN.js +0 -829
  313. package/dist/html-DjkQuIHJ.js +0 -829
  314. package/dist/lengths-CP7zmbxJ.js +0 -54
  315. package/dist/lengths-D4tR1gYA.js +0 -54
  316. package/dist/liteAdaptor-BLgze3o2.js +0 -616
  317. package/dist/liteAdaptor-zXv-jsO1.js +0 -616
  318. package/dist/mathjax-7LgaTjtj.js +0 -121
  319. package/dist/mathjax-CoSFlQ0H.js +0 -121
  320. package/dist/mo-C5uLT3Z9.js +0 -2675
  321. package/dist/mo-CNYDGAsg.js +0 -2675
  322. package/dist/rolldown-runtime-DnwLefa7.js +0 -23
  323. package/dist/svg-CYweEoZ1.js +0 -28698
  324. package/dist/tex-C4_queV-.js +0 -1423
  325. package/dist/tex-CA5MLeEe.js +0 -1423
@@ -5,6 +5,7 @@ import { Animation } from '../animation/Animation';
5
5
  import { Timeline } from '../animation/Timeline';
6
6
  import { SceneStateManager, SceneSnapshot } from './StateManager';
7
7
  import { AudioManager, AddSoundOptions, AudioTrack } from './AudioManager';
8
+ import { MultiCamera } from './CameraExtensions';
8
9
  import * as THREE from 'three';
9
10
  /**
10
11
  * Options for scene.export() convenience method.
@@ -54,6 +55,13 @@ export interface SceneOptions {
54
55
  backgroundOpacity?: number;
55
56
  /** Enable headless mode (no WebGL renderer). Useful for testing scene logic without a DOM. */
56
57
  headless?: boolean;
58
+ /**
59
+ * Automatically resize the canvas when its container (or the window, on
60
+ * mobile rotation) changes size. Only active when both `width` and `height`
61
+ * are omitted — passing either dimension is treated as a request for a
62
+ * pinned canvas size, so auto-resize stays off. Defaults to true.
63
+ */
64
+ autoResize?: boolean;
57
65
  }
58
66
  /**
59
67
  * Scene orchestrator for manimweb.
@@ -81,9 +89,16 @@ export declare class Scene {
81
89
  private _projScreenMatrix;
82
90
  private static _tempBox3;
83
91
  protected _autoRender: boolean;
92
+ private _pendingRender;
93
+ private _suppressAutoRender;
84
94
  private _renderOrderCounter;
85
95
  private _stateManager;
86
96
  private _audioManager;
97
+ private _multiCamera;
98
+ private _container;
99
+ private _resizeObserver;
100
+ private _resizeRafId;
101
+ private _onWindowResize;
87
102
  /**
88
103
  * Create a new Scene.
89
104
  * @param container - DOM element to render into, or null for headless mode
@@ -102,6 +117,18 @@ export declare class Scene {
102
117
  * Get the renderer.
103
118
  */
104
119
  get renderer(): IRenderer;
120
+ /**
121
+ * Get the active MultiCamera, or null if single-camera rendering is in use.
122
+ */
123
+ get multiCamera(): MultiCamera | null;
124
+ /**
125
+ * Attach (or detach) a MultiCamera for split-screen, picture-in-picture, or
126
+ * quad-view rendering. Pass `null` to revert to single-camera rendering.
127
+ * Has no effect in headless mode (the NullRenderer cannot scissor viewports).
128
+ * @param mc - MultiCamera instance, or null to restore the default render path
129
+ * @returns this for chaining
130
+ */
131
+ useMultiCamera(mc: MultiCamera | null): this;
105
132
  /**
106
133
  * Whether this scene is running in headless mode (no WebGL renderer).
107
134
  */
@@ -131,6 +158,14 @@ export declare class Scene {
131
158
  * Used by ThreeDScene to avoid duplicate orbit rAF loops.
132
159
  */
133
160
  protected get _hasActiveLoop(): boolean;
161
+ /**
162
+ * Whether a continuous render loop is currently driving frames every
163
+ * tick: play(), or wait() with per-frame rendering (updaters present).
164
+ * A static wait() (render-once + timeout) does NOT count — manual
165
+ * renders are still needed there. Interaction helpers (e.g. Draggable)
166
+ * use this to skip redundant renders.
167
+ */
168
+ get isRenderLoopActive(): boolean;
134
169
  /**
135
170
  * Get the current playback time.
136
171
  */
@@ -216,6 +251,13 @@ export declare class Scene {
216
251
  * Recursively collect all leaf animations from animation groups.
217
252
  */
218
253
  private _collectAllAnimations;
254
+ /**
255
+ * Shared animation playback logic for play() and playWithTimestamps().
256
+ * Handles async render waits, dirty sync, begin(), scene add, timeline setup,
257
+ * and cleanup. The scheduleOnTimeline callback defines how animations are
258
+ * scheduled on the timeline (parallel vs. timestamped).
259
+ */
260
+ private _runAnimations;
219
261
  /**
220
262
  * Play animations in parallel (all at once).
221
263
  * Matches Manim's scene.play() behavior where multiple animations run simultaneously.
@@ -224,6 +266,23 @@ export declare class Scene {
224
266
  * @returns Promise that resolves when all animations complete
225
267
  */
226
268
  play(...animations: Animation[]): Promise<void>;
269
+ /**
270
+ * Play animations with explicit per-animation start/end times (seconds).
271
+ *
272
+ * NOTE: this is a manim-widget wire-format feature — Python manim has no
273
+ * equivalent per-animation timing API. It is used by the player when
274
+ * deserializing AnimationGroup descriptors that carry `start`/`end` fields.
275
+ *
276
+ * Each entry's `end - start` overrides the animation's own duration so the
277
+ * Timeline schedules it for the correct window. WARNING: this permanently
278
+ * mutates the Animation object's `duration` property. Reusing the same
279
+ * animation instance in multiple calls will use the last set duration.
280
+ */
281
+ playWithTimestamps(entries: {
282
+ animation: Animation;
283
+ start: number;
284
+ end: number;
285
+ }[]): Promise<void>;
227
286
  /**
228
287
  * Play multiple animations in parallel (all at once).
229
288
  * Alias for play() - delegates to play() to avoid duplicated logic.
@@ -272,12 +331,28 @@ export declare class Scene {
272
331
  * can override to also check for ambient camera rotation, etc.
273
332
  */
274
333
  protected _needsPerFrameRendering(): boolean;
334
+ /**
335
+ * Queue a render to run on the next microtask. Multiple calls within the
336
+ * same tick coalesce. If `_cancelPendingRender()` is called or
337
+ * `_suppressAutoRender` is set before the microtask fires, the render is
338
+ * skipped. Used by `add()` so a chained `play()` can suppress the
339
+ * pre-animation flash described in issue #317.
340
+ */
341
+ protected _scheduleRender(): void;
342
+ protected _cancelPendingRender(): void;
275
343
  /**
276
344
  * Render a single frame.
277
345
  * Syncs only dirty mobjects before rendering for performance.
278
346
  * Protected so subclasses (e.g. ZoomedScene) can override for multi-pass rendering.
279
347
  */
280
348
  protected _render(): void;
349
+ /**
350
+ * Render via the attached MultiCamera. Clears the full canvas first so
351
+ * arbitrary viewport layouts (e.g. picture-in-picture) don't leak stale
352
+ * pixels, and restores renderer state via try/finally even if a camera
353
+ * render throws.
354
+ */
355
+ protected _renderMultiCamera(): void;
281
356
  /**
282
357
  * Sync only mobjects that have been modified (dirty flag optimization).
283
358
  */
@@ -350,6 +425,13 @@ export declare class Scene {
350
425
  * @param height - New height in pixels
351
426
  */
352
427
  resize(width: number, height: number): this;
428
+ /**
429
+ * Install ResizeObserver on the container and a window resize/orientation
430
+ * fallback. All triggers funnel through a single rAF-debounced measurement
431
+ * so a rotation that fires multiple events resizes once per frame.
432
+ */
433
+ private _installAutoResize;
434
+ private _disposeAutoResize;
353
435
  /**
354
436
  * Get the canvas element.
355
437
  * @returns The HTMLCanvasElement used for rendering
@@ -1 +1 @@
1
- {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../../src/core/Scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../../src/core/Scene.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,18 @@ export declare abstract class TexturedMobject extends Mobject {
30
30
  * future sync cycles and API reads (e.g. getText()) reflect the target's content.
31
31
  */
32
32
  abstract applyContentFrom(other: TexturedMobject): void;
33
+ /**
34
+ * Flatten a textured leaf. Its geometry is a Three.js display mesh, not
35
+ * bakeable points, so — like {@link Mobject3D} — it absolutizes rather than
36
+ * resetting to identity: the local transform is set equal to the incoming
37
+ * world matrix and re-applied to the mesh on every `_syncToThree`. Keeping the
38
+ * scale on `scaleVector` (instead of folding it into the plane size and
39
+ * resetting, as #417 had to) is inherently durable across async load / canvas
40
+ * re-render, since those rebuild the geometry but not the Mobject transform.
41
+ *
42
+ * @post old.getBounds() === this.getBounds() // world geometry preserved
43
+ */
44
+ normalizeTransform(worldMatrix?: THREE.Matrix4): this;
33
45
  /**
34
46
  * Sets material.map, marks material dirty, and disposes previous texture when replaced.
35
47
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TexturedMobject.d.ts","sourceRoot":"","sources":["../../src/core/TexturedMobject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;GAKG;AACH,8BAAsB,eAAgB,SAAQ,OAAO;IACnD;;;OAGG;aACe,gBAAgB,IAAI,KAAK,CAAC,IAAI,EAAE;IAElD;;OAEG;aACe,oBAAoB,IAAI,MAAM;IAEhD;;OAEG;IACH,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAEvD;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAE7D;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAEvD;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAC1B,QAAQ,EAAE,KAAK,CAAC,iBAAiB,EACjC,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,EACjC,eAAe,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,GACpC,IAAI;CAOR"}
1
+ {"version":3,"file":"TexturedMobject.d.ts","sourceRoot":"","sources":["../../src/core/TexturedMobject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;GAKG;AACH,8BAAsB,eAAgB,SAAQ,OAAO;IACnD;;;OAGG;aACe,gBAAgB,IAAI,KAAK,CAAC,IAAI,EAAE;IAElD;;OAEG;aACe,oBAAoB,IAAI,MAAM;IAEhD;;OAEG;IACH,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAEvD;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAE7D;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAEvD;;;;;;;;;;OAUG;IACM,kBAAkB,CAAC,WAAW,GAAE,KAAK,CAAC,OAA2B,GAAG,IAAI;IAIjF;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAC1B,QAAQ,EAAE,KAAK,CAAC,iBAAiB,EACjC,WAAW,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,EACjC,eAAe,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,GACpC,IAAI;CAOR"}
@@ -64,8 +64,10 @@ export declare class ThreeDScene extends Scene {
64
64
  * distance instead of add order (base Scene stamps an incrementing
65
65
  * renderOrder for 2D z-ordering, which defeats 3D depth sort)
66
66
  *
67
- * Auto-render is suppressed inside super.add() and run once at the end,
67
+ * Auto-render is suppressed inside super.add() and scheduled once at the end,
68
68
  * after settings are applied, so the first visible frame is correct.
69
+ * Render is deferred via the scheduler (issue #317) so a chained `play()`
70
+ * can suppress it and avoid a pre-animation flash.
69
71
  */
70
72
  add(...mobjects: Mobject[]): this;
71
73
  /**
@@ -217,6 +219,12 @@ export declare class ThreeDScene extends Scene {
217
219
  * @param height - New height in pixels
218
220
  */
219
221
  resize(width: number, height: number): this;
222
+ /**
223
+ * The orbit-controls rAF loop also renders every frame while it runs,
224
+ * so count it as an active render loop (e.g. so Draggable doesn't
225
+ * issue redundant renders while orbiting/dragging).
226
+ */
227
+ get isRenderLoopActive(): boolean;
220
228
  /**
221
229
  * Start a lightweight rAF loop for orbit controls when the scene
222
230
  * isn't already rendering (no active animations/waits).
@@ -1 +1 @@
1
- {"version":3,"file":"ThreeDScene.d.ts","sourceRoot":"","sources":["../../src/core/ThreeDScene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ThreeDScene.d.ts","sourceRoot":"","sources":["../../src/core/ThreeDScene.ts"],"names":[],"mappings":"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"}
@@ -113,14 +113,10 @@ export declare class VDict extends VGroup {
113
113
  asProxy(): VDict & {
114
114
  [key: string]: VMobject | undefined;
115
115
  };
116
- /**
117
- * Create a copy of this VDict.
118
- */
119
- protected _createCopy(): VMobject;
120
116
  /**
121
117
  * Override copy to properly handle the dictionary mapping.
122
118
  */
123
- copy(): VMobject;
119
+ copy(): VDict;
124
120
  /**
125
121
  * Add a named VMobject to this VDict (alias for set).
126
122
  * @param name - Name/key for the VMobject
@@ -219,10 +215,6 @@ export declare class VectorizedPoint extends VMobject {
219
215
  /**
220
216
  * Create a copy of this VectorizedPoint.
221
217
  */
222
- protected _createCopy(): VMobject;
223
- /**
224
- * Copy this VectorizedPoint.
225
- */
226
218
  copy(): VMobject;
227
219
  }
228
220
  //# sourceMappingURL=VDict.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VDict.d.ts","sourceRoot":"","sources":["../../src/core/VDict.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,KAAM,SAAQ,MAAM;IAC/B;;OAEG;IACH,OAAO,CAAC,KAAK,CAAoC;IAEjD;;;OAGG;gBACS,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAM;IAQhD;;;;;OAKG;IACM,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS;IAQ/D;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAW1C;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAU5B;;;OAGG;IACH,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAIhC;;;OAGG;IACH,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC;IAIpC;;;OAGG;IACH,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAI/C;;;;;OAKG;IACM,OAAO,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIvE;;;;OAIG;IACH,YAAY,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAK9E;;;OAGG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;OAKG;IACH,OAAO,IAAI,KAAK,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAA;KAAE;IAyB1D;;OAEG;cACgB,WAAW,IAAI,QAAQ;IAI1C;;OAEG;IACM,IAAI,IAAI,QAAQ;IA2BzB;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIhD;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK/B;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI3C;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;CAG9C;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C;;;OAGG;gBACS,QAAQ,GAAE,YAAwB;IAc9C;;;OAGG;IACH,WAAW,IAAI,YAAY;IAQ3B;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAOtC;;;OAGG;IACM,SAAS,IAAI,YAAY;IAIlC;;;;OAIG;IACM,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAI1C;;;;OAIG;IACM,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAKzC;;;OAGG;cACgB,kBAAkB,IAAI,KAAK,CAAC,QAAQ;IAQvD;;OAEG;cACgB,oBAAoB,IAAI,IAAI;IAO/C;;OAEG;cACgB,WAAW,IAAI,QAAQ;IAI1C;;OAEG;IACM,IAAI,IAAI,QAAQ;CAG1B"}
1
+ {"version":3,"file":"VDict.d.ts","sourceRoot":"","sources":["../../src/core/VDict.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,KAAM,SAAQ,MAAM;IAC/B;;OAEG;IACH,OAAO,CAAC,KAAK,CAAoC;IAEjD;;;OAGG;gBACS,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAM;IAQhD;;;;;OAKG;IACM,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS;IAQ/D;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAW1C;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAU5B;;;OAGG;IACH,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAIhC;;;OAGG;IACH,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC;IAIpC;;;OAGG;IACH,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAI/C;;;;;OAKG;IACM,OAAO,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIvE;;;;OAIG;IACH,YAAY,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAK9E;;;OAGG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;OAKG;IACH,OAAO,IAAI,KAAK,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAA;KAAE;IAyB1D;;OAEG;IACM,IAAI,IAAI,KAAK;IAmBtB;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIhD;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK/B;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI3C;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;CAG9C;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C;;;OAGG;gBACS,QAAQ,GAAE,YAAwB;IAc9C;;;OAGG;IACH,WAAW,IAAI,YAAY;IAQ3B;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAOtC;;;OAGG;IACM,SAAS,IAAI,YAAY;IAIlC;;;;OAIG;IACM,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAI1C;;;;OAIG;IACM,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAKzC;;;OAGG;cACgB,kBAAkB,IAAI,KAAK,CAAC,QAAQ;IAQvD;;OAEG;cACgB,oBAAoB,IAAI,IAAI;IAO/C;;OAEG;IACM,IAAI,IAAI,QAAQ;CAK1B"}
@@ -10,6 +10,17 @@ import * as THREE from 'three';
10
10
  * Operations apply to all children, and paths can be combined.
11
11
  */
12
12
  export declare class VGroup extends VMobject {
13
+ /**
14
+ * True when this VGroup (recursively) has no renderable geometry.
15
+ */
16
+ isEmpty(): boolean;
17
+ /**
18
+ * World-space center from descendant geometry.
19
+ *
20
+ * @throws this.isEmpty() — an empty group has no geometry, so no center.
21
+ * @post !this.isEmpty() => super.getCenter()
22
+ */
23
+ getCenter(): Vector3Tuple;
13
24
  /**
14
25
  * Create a new VGroup containing the given mobjects.
15
26
  * Accepts both VMobjects and general Mobjects (e.g., Axes, Group).
@@ -45,42 +56,6 @@ export declare class VGroup extends VMobject {
45
56
  * @returns this for chaining
46
57
  */
47
58
  remove(...mobjects: Mobject[]): this;
48
- /**
49
- * Get the center of the group (average of all children centers).
50
- * @returns Center position as [x, y, z]
51
- */
52
- getCenter(): Vector3Tuple;
53
- /**
54
- * Shift all children by the given delta.
55
- * Only shifts children's internal positions, not the group's own position,
56
- * to avoid double-counting in THREE.js hierarchy.
57
- * @param delta - Translation vector [x, y, z]
58
- * @returns this for chaining
59
- */
60
- shift(delta: Vector3Tuple): this;
61
- /**
62
- * Move the group center to the given point, or align with another Mobject.
63
- * @param target - Target position [x, y, z] or Mobject to align with
64
- * @param alignedEdge - Optional edge direction to align (e.g., UL aligns upper-left edges)
65
- * @returns this for chaining
66
- */
67
- moveTo(target: Vector3Tuple | Mobject, alignedEdge?: Vector3Tuple): this;
68
- /**
69
- * Rotate all children around an axis.
70
- * @param angle - Rotation angle in radians
71
- * @param axis - Axis of rotation [x, y, z], defaults to Z axis
72
- * @returns this for chaining
73
- */
74
- rotate(angle: number, axis?: Vector3Tuple): this;
75
- /**
76
- * Scale all children about the group's center.
77
- * Each child's size is scaled, and their positions are repositioned
78
- * relative to the group center — matching Manim Python behavior.
79
- * Does not change the group's own scaleVector.
80
- * @param factor - Scale factor (number for uniform, tuple for non-uniform)
81
- * @returns this for chaining
82
- */
83
- scale(factor: number | Vector3Tuple): this;
84
59
  /**
85
60
  * Set the color of all children.
86
61
  * @param color - CSS color string
@@ -127,6 +102,28 @@ export declare class VGroup extends VMobject {
127
102
  * @returns this for chaining
128
103
  */
129
104
  arrange(direction?: Vector3Tuple, buff?: number, center?: boolean): this;
105
+ /**
106
+ * Recenter the arrangement by shifting the CHILDREN so the group's bbox
107
+ * center returns to `originalCenter`, leaving the container's own `position`
108
+ * untouched.
109
+ *
110
+ * Background: #417 removed VGroup's `moveTo`/`shift` child-shifting overrides,
111
+ * so `this.moveTo(...)` now moves only the container's `position` and leaves
112
+ * children in place. Arrange used `moveTo` to recenter, which silently became
113
+ * a no-op on the children — breaking callers that add the children directly
114
+ * (e.g. opening_manim) or rely on the children being physically centered.
115
+ * Shifting the children restores the pre-#417 arrange contract.
116
+ *
117
+ * Frame note: `getCenter()` returns WORLD coordinates, but `child.shift()`
118
+ * applies its delta in the child's PARENT-local frame — which is this VGroup's
119
+ * own local frame. We therefore map both world endpoints into that frame (via a
120
+ * child's world→parent-local conversion, which all children share) before
121
+ * taking the difference. For an identity, parentless VGroup the conversion is
122
+ * the identity, so this matches the previous world-delta behavior; for a
123
+ * transformed/nested VGroup it stays correct (the delta is no longer scaled or
124
+ * rotated by the group's transform).
125
+ */
126
+ private _recenterChildrenTo;
130
127
  /**
131
128
  * Arrange children in a grid layout.
132
129
  * @param rows - Number of rows (if not specified, auto-calculated)
@@ -153,10 +150,7 @@ export declare class VGroup extends VMobject {
153
150
  * A VGroup is simply a THREE.Group that contains children.
154
151
  */
155
152
  protected _createThreeObject(): THREE.Object3D;
156
- /**
157
- * Create a copy of this VGroup.
158
- */
159
- protected _createCopy(): VMobject;
153
+ copy(): VGroup;
160
154
  /**
161
155
  * Get the number of vmobjects in this group.
162
156
  */
@@ -195,8 +189,30 @@ export declare class VGroup extends VMobject {
195
189
  */
196
190
  get points(): Point[];
197
191
  /**
198
- * Get all 3D points from the VGroup.
192
+ * Local-space points aggregated from all VMobject children.
193
+ *
194
+ * @post result === flatMap(vmobjectChildren, c => c.getLocalPoints())
195
+ */
196
+ getLocalPoints(): number[][];
197
+ /**
198
+ * World-space points from this VGroup and all VMobject descendants.
199
+ *
200
+ * @post result === flatMap(allVMobjectDescendants, c => c.getPoints())
201
+ */
202
+ getAllPoints(): number[][];
203
+ /**
204
+ * Distribute a flat point array back onto the children.
205
+ *
206
+ * A VGroup stores no geometry of its own — {@link getLocalPoints} aggregates the
207
+ * children. The inherited VMobject.setPoints would write to the container's
208
+ * unused `_points3D`, so a read-modify-write (Homotopy, ApplyPointwiseFunction,
209
+ * ApplyWave, …) on a VGroup would be a silent no-op. This override partitions the
210
+ * array in the same order getCombinedPoints concatenated it and assigns each slice
211
+ * to its child, so the round-trip actually moves the children.
212
+ *
213
+ * @pre points.length === sum over VMobject children of child.getLocalPoints().length
214
+ * @post for each child i: child.getLocalPoints() === the i-th slice of points
199
215
  */
200
- getPoints(): number[][];
216
+ setPoints(points: Point[] | number[][]): this;
201
217
  }
202
218
  //# sourceMappingURL=VGroup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VGroup.d.ts","sourceRoot":"","sources":["../../src/core/VGroup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VGroup.d.ts","sourceRoot":"","sources":["../../src/core/VGroup.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,17 @@
1
1
  import { Vector3Tuple } from './Mobject';
2
2
  import { VMobjectRendering } from './VMobjectRendering';
3
3
  import { Point } from './VMobjectCurves';
4
+ /**
5
+ * Vectorized Mobject - a mobject defined by cubic Bezier curves.
6
+ * This is the base class for all path-based shapes.
7
+ *
8
+ * Points are stored as cubic Bezier control points:
9
+ * [anchor1, handle1, handle2, anchor2, handle3, handle4, anchor3, ...]
10
+ *
11
+ * Each curve segment uses 4 points: anchor -> handle -> handle -> anchor
12
+ * Consecutive segments share the anchor point.
13
+ */
14
+ import * as THREE from 'three';
4
15
  export type { Point } from './VMobjectCurves';
5
16
  /**
6
17
  * Vectorized mobject class for path-based shapes.
@@ -19,6 +30,7 @@ export declare class VMobject extends VMobjectRendering {
19
30
  /** Transform-time override for subpath lengths (compound-path metadata). */
20
31
  protected _transformSubpathLengths?: number[];
21
32
  constructor();
33
+ isEmpty(): boolean;
22
34
  /**
23
35
  * Get all points as 2D Point objects (derived from _points3D)
24
36
  */
@@ -37,10 +49,34 @@ export declare class VMobject extends VMobjectRendering {
37
49
  */
38
50
  setPoints3D(points: number[][]): this;
39
51
  /**
40
- * Get all points defining this VMobject as 3D arrays
41
- * @returns Copy of the points array
52
+ * Own points in parent-local space — raw _points3D, no ancestor transforms.
53
+ *
54
+ * @post result[i] === _points3D[i]
55
+ */
56
+ getLocalPoints(): number[][];
57
+ /**
58
+ * Own points in world coordinates (full ancestor S/R/T chain; render-only
59
+ * z-layering offset excluded). Children's points are not included — use
60
+ * {@link getAllPoints} for the full subtree.
61
+ *
62
+ * @post result[i] === worldMatrix * _points3D[i]
63
+ * @post this.parent === null => result === getLocalPoints()
42
64
  */
43
65
  getPoints(): number[][];
66
+ /**
67
+ * World-space points from this node and all VMobject descendants recursively.
68
+ *
69
+ * Equivalent to Python manim's get_all_points(). Use this for bounding-box
70
+ * and center queries that must cover the full subtree.
71
+ *
72
+ * @post result === flatMap(this + vmobjectDescendants, m => m.getPoints())
73
+ */
74
+ getAllPoints(): number[][];
75
+ /**
76
+ * @pre fn(pts).length === pts.length
77
+ * @post getPoints()[i] === fn(old.getPoints().map(p => p - aboutPoint))[i] + aboutPoint
78
+ */
79
+ protected _applyFunctionAboutPoint(fn: (pts: number[][]) => number[][], aboutPoint: number[]): void;
44
80
  /**
45
81
  * Get the number of points
46
82
  */
@@ -94,6 +130,18 @@ export declare class VMobject extends VMobjectRendering {
94
130
  * Clear all points
95
131
  */
96
132
  clearPoints(): this;
133
+ /**
134
+ * Flatten this VMobject into absolute coordinates: bake `worldMatrix` into
135
+ * `_points3D` (translation, rotation and scale together — one matrix, no
136
+ * inverse), reset the local transform to identity, and recurse into children.
137
+ *
138
+ * Seeds with this node's own matrix when called with no argument, so the bake
139
+ * preserves world appearance whether or not there are ancestors.
140
+ *
141
+ * @post !this.isEmpty() => old.getPoints()[i] === this.getPoints()[i] // world geometry preserved
142
+ * @post this._computeOwnMatrix() === Identity
143
+ */
144
+ normalizeTransform(worldMatrix?: THREE.Matrix4): this;
97
145
  /**
98
146
  * Set base subpath-length metadata for this VMobject.
99
147
  * Represents intrinsic topology (e.g. outer contour + holes from SVG parsing).
@@ -152,37 +200,73 @@ export declare class VMobject extends VMobjectRendering {
152
200
  private static _bestRotation;
153
201
  /**
154
202
  * Interpolate a 3D point list to have a specific number of points.
203
+ *
204
+ * Delegates to the bezier-aware `resamplePointList3D` so that valid cubic
205
+ * Bezier chains are densified by de Casteljau subdivision rather than
206
+ * piecewise-linear interpolation. Linear lerp on cubic control points
207
+ * silently produces invalid handles (handle = midpoint of two adjacent
208
+ * controls), which renders as flat polygonal segments mid-`Transform`.
155
209
  */
156
210
  protected _interpolatePointList3D(points: number[][], targetCount: number): number[][];
211
+ protected _copyBaseAttributesInto(clone: VMobject, options?: {
212
+ copyChildren?: boolean;
213
+ copyPosition?: boolean;
214
+ }): void;
157
215
  /**
158
- * Create a copy of this VMobject.
159
- * Subclasses override _createCopy() to produce an instance of the right
160
- * concrete type (Circle, Square, etc.), but those constructors typically
161
- * regenerate points from their own parameters (radius, sideLength, ...).
162
- * After a Transform animation has morphed the point data, the regenerated
163
- * points no longer match the actual visual state. We therefore always
164
- * overwrite the clone's _points3D with the source's current data.
216
+ * Copy this VMobject, preserving point data state after morphs/transforms.
217
+ *
218
+ * For subclasses (Circle, Square, etc.): constructors regenerate points from
219
+ * parameters (radius, sideLength, ...). After a Transform animation has morphed
220
+ * the data, the regenerated points no longer match the visual state. Subclasses
221
+ * must override copy(), build a new instance with their constructor params, call
222
+ * _copyBaseAttributesInto, and then overwrite _points3D with the current state.
223
+ *
224
+ * For direct VMobject (rare): just builds and copies.
165
225
  */
166
226
  copy(): VMobject;
167
- /**
168
- * Create a copy of this VMobject
169
- */
170
- protected _createCopy(): VMobject;
171
227
  /**
172
228
  * Get the unit vector from the first to the last point of this VMobject,
173
229
  * accounting for the object's current rotation transform.
174
230
  */
175
231
  getUnitVector(): Vector3Tuple;
176
232
  /**
177
- * Get the center of this VMobject based on its own local points.
178
- * Uses bounding box center (matching Python Manim's get_center behavior)
179
- * rather than point centroid, which is inaccurate for Bezier control points.
233
+ * World-space bounding box computed from bezier control points.
234
+ *
235
+ * Overrides Mobject.getBounds() to avoid Box3.setFromObject(), which does
236
+ * not work for Line2 geometries. See PointBounds.ts for the full explanation.
237
+ *
238
+ * @pre !this.isEmpty()
239
+ * @post result.min <= result.max component-wise
240
+ */
241
+ getBounds(): {
242
+ min: {
243
+ x: number;
244
+ y: number;
245
+ z: number;
246
+ };
247
+ max: {
248
+ x: number;
249
+ y: number;
250
+ z: number;
251
+ };
252
+ };
253
+ /**
254
+ * World-space bounding-box center derived from getAllPoints().
255
+ *
256
+ * Matches Python manim: the center is always the midpoint of the axis-aligned
257
+ * bounding box of every point in the family — no per-shape construction-point
258
+ * overrides. For the vertex centroid (which differs for asymmetric shapes like
259
+ * sectors), use {@link getCenterOfMass}.
180
260
  */
181
261
  getCenter(): Vector3Tuple;
182
262
  /**
183
- * Compute local bounding-box center for a list of points.
263
+ * Get center of mass in world coordinates by averaging all world-space points.
264
+ *
265
+ * Unlike {@link getCenter} (which uses bbox midpoint), this is the true
266
+ * centroid — equal to getCenter() only when points are symmetrically distributed.
184
267
  */
185
- private static _boundingBoxCenter;
268
+ getCenterOfMass(): Vector3Tuple;
269
+ moveCenterOfMassTo(target: Vector3Tuple): this;
186
270
  /**
187
271
  * Compute local bounding-box center across this VMobject and all descendants
188
272
  * that expose point data.
@@ -198,16 +282,6 @@ export declare class VMobject extends VMobjectRendering {
198
282
  * @returns this for chaining
199
283
  */
200
284
  centerPointsAroundPosition(): this;
201
- /** @internal Check if a Bezier segment is nearly linear. */
202
- protected static _isNearlyLinear(p0: number[], p1: number[], p2: number[], p3: number[]): boolean;
203
- /** @internal Ray-casting point-in-polygon test. */
204
- protected static _pointInPolygon(point: number[], ring: number[][]): boolean;
205
- /** @internal Sample Bezier outline for earcut triangulation. */
206
- protected _sampleBezierOutline(points: number[][], samplesPerSegment: number): number[][];
207
- /** @internal Sample Bezier path for stroke rendering. */
208
- protected _sampleBezierPath(points: number[][], samplesPerSegment?: number): number[][];
209
- /** @internal Check if Bezier control points form a closed path. */
210
- protected _isClosedPath(points3D: number[][]): boolean;
211
285
  /**
212
286
  * Clean up Three.js resources
213
287
  */
@@ -1 +1 @@
1
- {"version":3,"file":"VMobject.d.ts","sourceRoot":"","sources":["../../src/core/VMobject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VMobject.d.ts","sourceRoot":"","sources":["../../src/core/VMobject.ts"],"names":[],"mappings":"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"}