manim-web 0.3.22 → 0.3.24

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 (291) hide show
  1. package/dist/{svg-DNS5Hwhk.js → MathJaxBundle-xSidSV0E.js} +18687 -7373
  2. package/dist/animation/Animation.d.ts.map +1 -1
  3. package/dist/animation/AnimationGroup.d.ts.map +1 -1
  4. package/dist/animation/MasterTimeline.d.ts.map +1 -1
  5. package/dist/animation/Timeline.d.ts.map +1 -1
  6. package/dist/animation/changing/index.d.ts +2 -2
  7. package/dist/animation/changing/index.d.ts.map +1 -1
  8. package/dist/animation/creation/Create.d.ts.map +1 -1
  9. package/dist/animation/growing/index.d.ts +8 -5
  10. package/dist/animation/growing/index.d.ts.map +1 -1
  11. package/dist/animation/movement/Homotopy.d.ts +37 -7
  12. package/dist/animation/movement/Homotopy.d.ts.map +1 -1
  13. package/dist/animation/movement/MoveAlongPath.d.ts.map +1 -1
  14. package/dist/animation/speed/index.d.ts.map +1 -1
  15. package/dist/animation/transform/ApplyPointwiseFunction.d.ts.map +1 -1
  16. package/dist/animation/transform/ApplyPointwiseFunctionToCenter.d.ts.map +1 -1
  17. package/dist/animation/transform/ApplyTransforms.d.ts.map +1 -1
  18. package/dist/animation/transform/MorphStrategy.d.ts +23 -0
  19. package/dist/animation/transform/MorphStrategy.d.ts.map +1 -1
  20. package/dist/animation/transform/PointCloudMorphStrategy.d.ts +18 -0
  21. package/dist/animation/transform/PointCloudMorphStrategy.d.ts.map +1 -0
  22. package/dist/animation/transform/PointMorphStrategy.d.ts +26 -0
  23. package/dist/animation/transform/PointMorphStrategy.d.ts.map +1 -1
  24. package/dist/animation/transform/Transform.d.ts +2 -0
  25. package/dist/animation/transform/Transform.d.ts.map +1 -1
  26. package/dist/animation/transform/TransformMatching.d.ts.map +1 -1
  27. package/dist/animation/utility/index.d.ts +6 -2
  28. package/dist/animation/utility/index.d.ts.map +1 -1
  29. package/dist/core/Camera.d.ts +3 -0
  30. package/dist/core/Camera.d.ts.map +1 -1
  31. package/dist/core/Camera2DFrame.d.ts +1 -1
  32. package/dist/core/Camera2DFrame.d.ts.map +1 -1
  33. package/dist/core/CameraExtensions.d.ts.map +1 -1
  34. package/dist/core/CameraFrame.d.ts.map +1 -1
  35. package/dist/core/Group.d.ts +13 -33
  36. package/dist/core/Group.d.ts.map +1 -1
  37. package/dist/core/InteractiveScene.d.ts.map +1 -1
  38. package/dist/core/Lighting.d.ts.map +1 -1
  39. package/dist/core/Mobject.d.ts +230 -21
  40. package/dist/core/Mobject.d.ts.map +1 -1
  41. package/dist/core/MobjectPositioning.d.ts +1 -6
  42. package/dist/core/MobjectPositioning.d.ts.map +1 -1
  43. package/dist/core/MobjectState.d.ts.map +1 -1
  44. package/dist/core/MobjectTraversal.d.ts +3 -0
  45. package/dist/core/MobjectTraversal.d.ts.map +1 -1
  46. package/dist/core/MobjectTypes.d.ts +8 -0
  47. package/dist/core/MobjectTypes.d.ts.map +1 -1
  48. package/dist/core/PointBounds.d.ts +39 -0
  49. package/dist/core/PointBounds.d.ts.map +1 -0
  50. package/dist/core/Renderer.d.ts.map +1 -1
  51. package/dist/core/Scene.d.ts +36 -1
  52. package/dist/core/Scene.d.ts.map +1 -1
  53. package/dist/core/TexturedMobject.d.ts +12 -0
  54. package/dist/core/TexturedMobject.d.ts.map +1 -1
  55. package/dist/core/ThreeDScene.d.ts +33 -0
  56. package/dist/core/ThreeDScene.d.ts.map +1 -1
  57. package/dist/core/VDict.d.ts +1 -9
  58. package/dist/core/VDict.d.ts.map +1 -1
  59. package/dist/core/VGroup.d.ts +54 -30
  60. package/dist/core/VGroup.d.ts.map +1 -1
  61. package/dist/core/VMobject.d.ts +93 -32
  62. package/dist/core/VMobject.d.ts.map +1 -1
  63. package/dist/core/VMobjectCurveUtils.d.ts +1 -1
  64. package/dist/core/VMobjectCurveUtils.d.ts.map +1 -1
  65. package/dist/core/VMobjectGeometry.d.ts.map +1 -1
  66. package/dist/core/VMobjectStrokeGeometry.d.ts.map +1 -1
  67. package/dist/core/VMobjectTransformAlignment.d.ts.map +1 -1
  68. package/dist/core/ZoomedScene.d.ts +2 -1
  69. package/dist/core/ZoomedScene.d.ts.map +1 -1
  70. package/dist/export/GifExporter.d.ts.map +1 -1
  71. package/dist/export/VideoExporter.d.ts.map +1 -1
  72. package/dist/index.d.ts +2 -1
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +2 -2
  75. package/dist/integrations/react.js +16 -16
  76. package/dist/integrations/vue.js +15 -15
  77. package/dist/interaction/Draggable.d.ts +12 -0
  78. package/dist/interaction/Draggable.d.ts.map +1 -1
  79. package/dist/interaction/OrbitControls.d.ts.map +1 -1
  80. package/dist/manim-web.browser.js +15620 -10180
  81. package/dist/mobjects/fractals/MandelbrotSet.d.ts +2 -1
  82. package/dist/mobjects/fractals/MandelbrotSet.d.ts.map +1 -1
  83. package/dist/mobjects/fractals/NewtonFractal.d.ts +2 -1
  84. package/dist/mobjects/fractals/NewtonFractal.d.ts.map +1 -1
  85. package/dist/mobjects/frame/index.d.ts +3 -12
  86. package/dist/mobjects/frame/index.d.ts.map +1 -1
  87. package/dist/mobjects/geometry/AngleShapes.d.ts +4 -4
  88. package/dist/mobjects/geometry/AngleShapes.d.ts.map +1 -1
  89. package/dist/mobjects/geometry/AnnularSector.d.ts +4 -74
  90. package/dist/mobjects/geometry/AnnularSector.d.ts.map +1 -1
  91. package/dist/mobjects/geometry/Annulus.d.ts +1 -62
  92. package/dist/mobjects/geometry/Annulus.d.ts.map +1 -1
  93. package/dist/mobjects/geometry/Arc.d.ts +3 -1
  94. package/dist/mobjects/geometry/Arc.d.ts.map +1 -1
  95. package/dist/mobjects/geometry/ArcBetweenPoints.d.ts +1 -1
  96. package/dist/mobjects/geometry/ArcBetweenPoints.d.ts.map +1 -1
  97. package/dist/mobjects/geometry/ArcPolygon.d.ts +1 -1
  98. package/dist/mobjects/geometry/ArcPolygon.d.ts.map +1 -1
  99. package/dist/mobjects/geometry/Arrow.d.ts +130 -23
  100. package/dist/mobjects/geometry/Arrow.d.ts.map +1 -1
  101. package/dist/mobjects/geometry/ArrowTips.d.ts +7 -7
  102. package/dist/mobjects/geometry/ArrowTips.d.ts.map +1 -1
  103. package/dist/mobjects/geometry/BooleanOperations.d.ts.map +1 -1
  104. package/dist/mobjects/geometry/Circle.d.ts +20 -23
  105. package/dist/mobjects/geometry/Circle.d.ts.map +1 -1
  106. package/dist/mobjects/geometry/CubicBezier.d.ts +1 -1
  107. package/dist/mobjects/geometry/CubicBezier.d.ts.map +1 -1
  108. package/dist/mobjects/geometry/CurvedArrow.d.ts +1 -1
  109. package/dist/mobjects/geometry/CurvedArrow.d.ts.map +1 -1
  110. package/dist/mobjects/geometry/CurvedDoubleArrow.d.ts +1 -1
  111. package/dist/mobjects/geometry/CurvedDoubleArrow.d.ts.map +1 -1
  112. package/dist/mobjects/geometry/DashedLine.d.ts +3 -2
  113. package/dist/mobjects/geometry/DashedLine.d.ts.map +1 -1
  114. package/dist/mobjects/geometry/DashedVMobject.d.ts +3 -2
  115. package/dist/mobjects/geometry/DashedVMobject.d.ts.map +1 -1
  116. package/dist/mobjects/geometry/Dot.d.ts +4 -15
  117. package/dist/mobjects/geometry/Dot.d.ts.map +1 -1
  118. package/dist/mobjects/geometry/Ellipse.d.ts +3 -47
  119. package/dist/mobjects/geometry/Ellipse.d.ts.map +1 -1
  120. package/dist/mobjects/geometry/LabeledGeometry.d.ts +5 -5
  121. package/dist/mobjects/geometry/LabeledGeometry.d.ts.map +1 -1
  122. package/dist/mobjects/geometry/Line.d.ts +15 -9
  123. package/dist/mobjects/geometry/Line.d.ts.map +1 -1
  124. package/dist/mobjects/geometry/Polygon.d.ts +1 -1
  125. package/dist/mobjects/geometry/Polygon.d.ts.map +1 -1
  126. package/dist/mobjects/geometry/PolygonExtensions.d.ts +11 -67
  127. package/dist/mobjects/geometry/PolygonExtensions.d.ts.map +1 -1
  128. package/dist/mobjects/geometry/Polygram.d.ts +1 -1
  129. package/dist/mobjects/geometry/Polygram.d.ts.map +1 -1
  130. package/dist/mobjects/geometry/Rectangle.d.ts +4 -5
  131. package/dist/mobjects/geometry/Rectangle.d.ts.map +1 -1
  132. package/dist/mobjects/geometry/Sector.d.ts +5 -69
  133. package/dist/mobjects/geometry/Sector.d.ts.map +1 -1
  134. package/dist/mobjects/geometry/ShapeMatchers.d.ts +6 -5
  135. package/dist/mobjects/geometry/ShapeMatchers.d.ts.map +1 -1
  136. package/dist/mobjects/geometry/TangentialArc.d.ts +1 -1
  137. package/dist/mobjects/geometry/TangentialArc.d.ts.map +1 -1
  138. package/dist/mobjects/geometry/segment.d.ts +24 -0
  139. package/dist/mobjects/geometry/segment.d.ts.map +1 -0
  140. package/dist/mobjects/graph/DiGraph.d.ts +1 -4
  141. package/dist/mobjects/graph/DiGraph.d.ts.map +1 -1
  142. package/dist/mobjects/graph/GenericGraph.d.ts +2 -1
  143. package/dist/mobjects/graph/GenericGraph.d.ts.map +1 -1
  144. package/dist/mobjects/graph/Graph.d.ts +1 -4
  145. package/dist/mobjects/graph/Graph.d.ts.map +1 -1
  146. package/dist/mobjects/graph/layoutAlgorithms.d.ts.map +1 -1
  147. package/dist/mobjects/graphing/Axes.d.ts +1 -4
  148. package/dist/mobjects/graphing/Axes.d.ts.map +1 -1
  149. package/dist/mobjects/graphing/BarChart.d.ts +1 -4
  150. package/dist/mobjects/graphing/BarChart.d.ts.map +1 -1
  151. package/dist/mobjects/graphing/ComplexPlane.d.ts +2 -8
  152. package/dist/mobjects/graphing/ComplexPlane.d.ts.map +1 -1
  153. package/dist/mobjects/graphing/FunctionGraph.d.ts +1 -4
  154. package/dist/mobjects/graphing/FunctionGraph.d.ts.map +1 -1
  155. package/dist/mobjects/graphing/ImplicitFunction.d.ts +1 -4
  156. package/dist/mobjects/graphing/ImplicitFunction.d.ts.map +1 -1
  157. package/dist/mobjects/graphing/NumberLine.d.ts +2 -8
  158. package/dist/mobjects/graphing/NumberLine.d.ts.map +1 -1
  159. package/dist/mobjects/graphing/NumberPlane.d.ts +1 -4
  160. package/dist/mobjects/graphing/NumberPlane.d.ts.map +1 -1
  161. package/dist/mobjects/graphing/ParametricFunction.d.ts +1 -4
  162. package/dist/mobjects/graphing/ParametricFunction.d.ts.map +1 -1
  163. package/dist/mobjects/graphing/Vector.d.ts +1 -4
  164. package/dist/mobjects/graphing/Vector.d.ts.map +1 -1
  165. package/dist/mobjects/graphing/VectorField.d.ts +3 -12
  166. package/dist/mobjects/graphing/VectorField.d.ts.map +1 -1
  167. package/dist/mobjects/image/index.d.ts +6 -4
  168. package/dist/mobjects/image/index.d.ts.map +1 -1
  169. package/dist/mobjects/matrix/Matrix.d.ts +4 -16
  170. package/dist/mobjects/matrix/Matrix.d.ts.map +1 -1
  171. package/dist/mobjects/point/Mobject1D.d.ts +1 -4
  172. package/dist/mobjects/point/Mobject1D.d.ts.map +1 -1
  173. package/dist/mobjects/point/Mobject2D.d.ts +1 -1
  174. package/dist/mobjects/point/Mobject2D.d.ts.map +1 -1
  175. package/dist/mobjects/point/PGroup.d.ts +2 -4
  176. package/dist/mobjects/point/PGroup.d.ts.map +1 -1
  177. package/dist/mobjects/point/PMobject.d.ts +45 -15
  178. package/dist/mobjects/point/PMobject.d.ts.map +1 -1
  179. package/dist/mobjects/point/PointCloudDot.d.ts +1 -4
  180. package/dist/mobjects/point/PointCloudDot.d.ts.map +1 -1
  181. package/dist/mobjects/point/PointMobject.d.ts +13 -17
  182. package/dist/mobjects/point/PointMobject.d.ts.map +1 -1
  183. package/dist/mobjects/probability/DiceFace.d.ts +1 -5
  184. package/dist/mobjects/probability/DiceFace.d.ts.map +1 -1
  185. package/dist/mobjects/probability/SampleSpace.d.ts +1 -5
  186. package/dist/mobjects/probability/SampleSpace.d.ts.map +1 -1
  187. package/dist/mobjects/svg/Brace.d.ts +5 -20
  188. package/dist/mobjects/svg/Brace.d.ts.map +1 -1
  189. package/dist/mobjects/svg/SVGMobject.d.ts +2 -2
  190. package/dist/mobjects/svg/SVGMobject.d.ts.map +1 -1
  191. package/dist/mobjects/table/Table.d.ts +1 -5
  192. package/dist/mobjects/table/Table.d.ts.map +1 -1
  193. package/dist/mobjects/text/Code.d.ts +1 -4
  194. package/dist/mobjects/text/Code.d.ts.map +1 -1
  195. package/dist/mobjects/text/CodeHighlighting.d.ts.map +1 -1
  196. package/dist/mobjects/text/CodeLanguageData.d.ts.map +1 -1
  197. package/dist/mobjects/text/DecimalNumber.d.ts +2 -8
  198. package/dist/mobjects/text/DecimalNumber.d.ts.map +1 -1
  199. package/dist/mobjects/text/GlyphVMobject.d.ts +1 -1
  200. package/dist/mobjects/text/GlyphVMobject.d.ts.map +1 -1
  201. package/dist/mobjects/text/MarkupText.d.ts +1 -1
  202. package/dist/mobjects/text/MarkupText.d.ts.map +1 -1
  203. package/dist/mobjects/text/MathJaxBundle.d.ts +7 -0
  204. package/dist/mobjects/text/MathJaxBundle.d.ts.map +1 -0
  205. package/dist/mobjects/text/MathJaxRenderer.d.ts +9 -0
  206. package/dist/mobjects/text/MathJaxRenderer.d.ts.map +1 -1
  207. package/dist/mobjects/text/MathTex.d.ts +8 -4
  208. package/dist/mobjects/text/MathTex.d.ts.map +1 -1
  209. package/dist/mobjects/text/MathTexImage.d.ts +19 -4
  210. package/dist/mobjects/text/MathTexImage.d.ts.map +1 -1
  211. package/dist/mobjects/text/Paragraph.d.ts +1 -1
  212. package/dist/mobjects/text/Paragraph.d.ts.map +1 -1
  213. package/dist/mobjects/text/Tex.d.ts +2 -5
  214. package/dist/mobjects/text/Tex.d.ts.map +1 -1
  215. package/dist/mobjects/text/Text.d.ts +17 -1
  216. package/dist/mobjects/text/Text.d.ts.map +1 -1
  217. package/dist/mobjects/text/TextExtensions.d.ts +3 -12
  218. package/dist/mobjects/text/TextExtensions.d.ts.map +1 -1
  219. package/dist/mobjects/text/Variable.d.ts +2 -4
  220. package/dist/mobjects/text/Variable.d.ts.map +1 -1
  221. package/dist/mobjects/text/katexStyles.d.ts.map +1 -1
  222. package/dist/mobjects/text/svgPathParser.d.ts.map +1 -1
  223. package/dist/mobjects/three-d/Arrow3D.d.ts +4 -3
  224. package/dist/mobjects/three-d/Arrow3D.d.ts.map +1 -1
  225. package/dist/mobjects/three-d/ConvexHull3D.d.ts +4 -3
  226. package/dist/mobjects/three-d/ConvexHull3D.d.ts.map +1 -1
  227. package/dist/mobjects/three-d/Cube.d.ts +6 -11
  228. package/dist/mobjects/three-d/Cube.d.ts.map +1 -1
  229. package/dist/mobjects/three-d/Cylinder.d.ts +5 -10
  230. package/dist/mobjects/three-d/Cylinder.d.ts.map +1 -1
  231. package/dist/mobjects/three-d/Line3D.d.ts +4 -3
  232. package/dist/mobjects/three-d/Line3D.d.ts.map +1 -1
  233. package/dist/mobjects/three-d/Mobject3D.d.ts +19 -0
  234. package/dist/mobjects/three-d/Mobject3D.d.ts.map +1 -0
  235. package/dist/mobjects/three-d/ParametricSurface.d.ts +1 -1
  236. package/dist/mobjects/three-d/ParametricSurface.d.ts.map +1 -1
  237. package/dist/mobjects/three-d/Polyhedra.d.ts +7 -6
  238. package/dist/mobjects/three-d/Polyhedra.d.ts.map +1 -1
  239. package/dist/mobjects/three-d/Sphere.d.ts +4 -6
  240. package/dist/mobjects/three-d/Sphere.d.ts.map +1 -1
  241. package/dist/mobjects/three-d/Surface3D.d.ts +41 -4
  242. package/dist/mobjects/three-d/Surface3D.d.ts.map +1 -1
  243. package/dist/mobjects/three-d/TexturedSurface.d.ts +4 -3
  244. package/dist/mobjects/three-d/TexturedSurface.d.ts.map +1 -1
  245. package/dist/mobjects/three-d/ThreeDAxes.d.ts +1 -1
  246. package/dist/mobjects/three-d/ThreeDAxes.d.ts.map +1 -1
  247. package/dist/mobjects/three-d/ThreeDExtensions.d.ts +7 -15
  248. package/dist/mobjects/three-d/ThreeDExtensions.d.ts.map +1 -1
  249. package/dist/mobjects/three-d/Torus.d.ts +4 -6
  250. package/dist/mobjects/three-d/Torus.d.ts.map +1 -1
  251. package/dist/mobjects/three-d/index.d.ts +1 -0
  252. package/dist/mobjects/three-d/index.d.ts.map +1 -1
  253. package/dist/mobjects/value-tracker/ValueTracker.d.ts +4 -2
  254. package/dist/mobjects/value-tracker/ValueTracker.d.ts.map +1 -1
  255. package/dist/player/Player.d.ts.map +1 -1
  256. package/dist/player/PlayerUI.d.ts.map +1 -1
  257. package/dist/{src-BlTk3Bta.js → src-Cc3xTIkV.js} +5888 -5309
  258. package/dist/utils/logger.d.ts.map +1 -1
  259. package/package.json +8 -5
  260. package/dist/AmsConfiguration-OUoC_kJ0.js +0 -847
  261. package/dist/AmsConfiguration-tdje_HlF.js +0 -847
  262. package/dist/ConfigMacrosConfiguration-4OaQYvlr.js +0 -46
  263. package/dist/ConfigMacrosConfiguration-DM3-S5M8.js +0 -46
  264. package/dist/Entities-Dw6381dl.js +0 -429
  265. package/dist/Entities-bJKKDYjE.js +0 -429
  266. package/dist/Factory-Ba6Nqb3M.js +0 -107
  267. package/dist/HtmlNode-1mFtYQ9G.js +0 -981
  268. package/dist/HtmlNode-CQqo5we-.js +0 -981
  269. package/dist/InputJax-D5R2pqUk.js +0 -41
  270. package/dist/InputJax-jNvwWU5P.js +0 -41
  271. package/dist/NewcommandConfiguration-BN_OlLcO.js +0 -32
  272. package/dist/NewcommandConfiguration-DZ3mSCpD.js +0 -32
  273. package/dist/NewcommandMethods-D5bueYYE.js +0 -187
  274. package/dist/NewcommandMethods-DTf_dan5.js +0 -187
  275. package/dist/Options-DMK2wYar.js +0 -63
  276. package/dist/ParseMethods-Deqa7kJ6.js +0 -2636
  277. package/dist/ParseMethods-Dt5bYDSZ.js +0 -2636
  278. package/dist/Styles-BILrGVps.js +0 -293
  279. package/dist/Styles-DQSruwWe.js +0 -293
  280. package/dist/html-Bza5WY1y.js +0 -829
  281. package/dist/html-bhzMuE8p.js +0 -829
  282. package/dist/lengths-D2zTYMUu.js +0 -54
  283. package/dist/liteAdaptor-BkxB5CGC.js +0 -616
  284. package/dist/liteAdaptor-LMKuWwg1.js +0 -616
  285. package/dist/mathjax-CPQWkQEv.js +0 -121
  286. package/dist/mathjax-b-GTdZgw.js +0 -121
  287. package/dist/mo-D4wFHS6V.js +0 -2675
  288. package/dist/mo-hAX79Dzl.js +0 -2675
  289. package/dist/svg-DVUoAdmC.js +0 -28713
  290. package/dist/tex-BQCLd0dF.js +0 -1427
  291. package/dist/tex-Cd_bTYKG.js +0 -1427
@@ -158,6 +158,14 @@ export declare class Scene {
158
158
  * Used by ThreeDScene to avoid duplicate orbit rAF loops.
159
159
  */
160
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;
161
169
  /**
162
170
  * Get the current playback time.
163
171
  */
@@ -228,8 +236,11 @@ export declare class Scene {
228
236
  private _setSceneContextRecursive;
229
237
  /**
230
238
  * Check if a THREE object is already part of this scene's graph.
239
+ * Protected so subclasses with additional render graphs (e.g.
240
+ * ThreeDScene's HUD scene) can extend this check — otherwise `add()`
241
+ * reparents objects that are already correctly placed elsewhere.
231
242
  */
232
- private _isInSceneGraph;
243
+ protected _isInSceneGraph(obj: THREE.Object3D): boolean;
233
244
  /**
234
245
  * Clear all mobjects from the scene.
235
246
  * @param options.render - Whether to auto-render after clearing. Default: true.
@@ -243,6 +254,13 @@ export declare class Scene {
243
254
  * Recursively collect all leaf animations from animation groups.
244
255
  */
245
256
  private _collectAllAnimations;
257
+ /**
258
+ * Shared animation playback logic for play() and playWithTimestamps().
259
+ * Handles async render waits, dirty sync, begin(), scene add, timeline setup,
260
+ * and cleanup. The scheduleOnTimeline callback defines how animations are
261
+ * scheduled on the timeline (parallel vs. timestamped).
262
+ */
263
+ private _runAnimations;
246
264
  /**
247
265
  * Play animations in parallel (all at once).
248
266
  * Matches Manim's scene.play() behavior where multiple animations run simultaneously.
@@ -251,6 +269,23 @@ export declare class Scene {
251
269
  * @returns Promise that resolves when all animations complete
252
270
  */
253
271
  play(...animations: Animation[]): Promise<void>;
272
+ /**
273
+ * Play animations with explicit per-animation start/end times (seconds).
274
+ *
275
+ * NOTE: this is a manim-widget wire-format feature — Python manim has no
276
+ * equivalent per-animation timing API. It is used by the player when
277
+ * deserializing AnimationGroup descriptors that carry `start`/`end` fields.
278
+ *
279
+ * Each entry's `end - start` overrides the animation's own duration so the
280
+ * Timeline schedules it for the correct window. WARNING: this permanently
281
+ * mutates the Animation object's `duration` property. Reusing the same
282
+ * animation instance in multiple calls will use the last set duration.
283
+ */
284
+ playWithTimestamps(entries: {
285
+ animation: Animation;
286
+ start: number;
287
+ end: number;
288
+ }[]): Promise<void>;
254
289
  /**
255
290
  * Play multiple animations in parallel (all at once).
256
291
  * Alias for play() - delegates to play() to avoid duplicated logic.
@@ -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"}
@@ -3,6 +3,7 @@ import { Camera3D } from './Camera';
3
3
  import { Lighting } from './Lighting';
4
4
  import { OrbitControls, OrbitControlsOptions } from '../interaction/OrbitControls';
5
5
  import { Mobject, Vector3Tuple } from './Mobject';
6
+ import * as THREE from 'three';
6
7
  /**
7
8
  * Options for configuring a ThreeDScene.
8
9
  */
@@ -40,6 +41,7 @@ export declare class ThreeDScene extends Scene {
40
41
  private _hudScene;
41
42
  private _hudCamera;
42
43
  private _fixedMobjects;
44
+ private _pendingFixedMode;
43
45
  private _fixedOrientationMobjects;
44
46
  private _ambientRotationRate;
45
47
  private _lastRenderTime;
@@ -55,6 +57,15 @@ export declare class ThreeDScene extends Scene {
55
57
  * @param options - Scene configuration options
56
58
  */
57
59
  constructor(container: HTMLElement | null, options?: ThreeDSceneOptions);
60
+ /**
61
+ * Extend the base "already placed" check to also recognize objects parked
62
+ * in the HUD scene. Without this, `Scene.add()` treats a fixed-in-frame
63
+ * mobject as not-yet-placed and reparents it out of `_hudScene` into the
64
+ * main 3D scene root — silently undoing `addFixedInFrameMobjects()` the
65
+ * moment the mobject is (re-)added, e.g. via `Scene.play()`'s own
66
+ * "add if not yet tracked" step for an animation target (#505).
67
+ */
68
+ protected _isInSceneGraph(obj: THREE.Object3D): boolean;
58
69
  /**
59
70
  * Override add for 3D-correct material/render setup (issue #255):
60
71
  * - depthTest=true on every material (base Scene disables it for 2D layering)
@@ -68,6 +79,12 @@ export declare class ThreeDScene extends Scene {
68
79
  * after settings are applied, so the first visible frame is correct.
69
80
  * Render is deferred via the scheduler (issue #317) so a chained `play()`
70
81
  * can suppress it and avoid a pre-animation flash.
82
+ *
83
+ * Also resolves any pending fixed-in-frame request recorded by
84
+ * addFixedInFrameMobjects() while the mobject wasn't yet tracked: the
85
+ * mobject lands here (via super.add()) only after begin() has already run
86
+ * for whatever animation introduces it, so moving it into the HUD scene
87
+ * at this point carries no risk of flashing its pre-animation state (#505).
71
88
  */
72
89
  add(...mobjects: Mobject[]): this;
73
90
  /**
@@ -164,6 +181,16 @@ export declare class ThreeDScene extends Scene {
164
181
  /**
165
182
  * Pin mobjects to the screen (HUD) so they don't move with the 3D camera.
166
183
  * Equivalent to Python Manim's add_fixed_in_frame_mobjects.
184
+ *
185
+ * If a mobject isn't tracked by the scene yet (i.e. it hasn't been added
186
+ * via `add()`), this only records the intent — it does NOT reparent into
187
+ * the HUD scene or render. Real Manim's `add_fixed_in_frame_mobjects` is
188
+ * inert metadata with zero scene-graph side effects, callable any time
189
+ * before `self.play(...)` regardless of whether the mobject is on stage
190
+ * yet; committing the reparent eagerly here instead would risk rendering
191
+ * the mobject's already-finalized state in the HUD before its own intro
192
+ * animation's begin() has reset it for the reveal (#505). The deferred
193
+ * placement happens in add() once the mobject actually lands.
167
194
  * @param mobjects - Mobjects to fix in screen space
168
195
  * @returns this for chaining
169
196
  */
@@ -219,6 +246,12 @@ export declare class ThreeDScene extends Scene {
219
246
  * @param height - New height in pixels
220
247
  */
221
248
  resize(width: number, height: number): this;
249
+ /**
250
+ * The orbit-controls rAF loop also renders every frame while it runs,
251
+ * so count it as an active render loop (e.g. so Draggable doesn't
252
+ * issue redundant renders while orbiting/dragging).
253
+ */
254
+ get isRenderLoopActive(): boolean;
222
255
  /**
223
256
  * Start a lightweight rAF loop for orbit controls when the scene
224
257
  * 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"}
@@ -14,6 +14,13 @@ export declare class VGroup extends VMobject {
14
14
  * True when this VGroup (recursively) has no renderable geometry.
15
15
  */
16
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;
17
24
  /**
18
25
  * Create a new VGroup containing the given mobjects.
19
26
  * Accepts both VMobjects and general Mobjects (e.g., Axes, Group).
@@ -49,30 +56,6 @@ export declare class VGroup extends VMobject {
49
56
  * @returns this for chaining
50
57
  */
51
58
  remove(...mobjects: Mobject[]): this;
52
- getCenter(): Vector3Tuple;
53
- /**
54
- * Normalize group transform by forwarding direct group translation/rotation to children.
55
- * This keeps VGroup semantics child-driven and avoids double-counting.
56
- */
57
- normalizeTransform(): this;
58
- /**
59
- * Shift all children by the given delta.
60
- * Only shifts children's internal positions, not the group's own position,
61
- * to avoid double-counting in THREE.js hierarchy.
62
- *
63
- * When the group has no children yet (e.g. async-rendered text glyphs),
64
- * store translation on the group so it is not dropped.
65
- * @param delta - Translation vector [x, y, z]
66
- * @returns this for chaining
67
- */
68
- shift(delta: Vector3Tuple): this;
69
- /**
70
- * Move the group center to the given point, or align with another Mobject.
71
- * @param target - Target position [x, y, z] or Mobject to align with
72
- * @param alignedEdge - Optional edge direction to align (e.g., UL aligns upper-left edges)
73
- * @returns this for chaining
74
- */
75
- moveTo(target: Vector3Tuple | Mobject, alignedEdge?: Vector3Tuple): this;
76
59
  /**
77
60
  * Set the color of all children.
78
61
  * @param color - CSS color string
@@ -119,6 +102,28 @@ export declare class VGroup extends VMobject {
119
102
  * @returns this for chaining
120
103
  */
121
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;
122
127
  /**
123
128
  * Arrange children in a grid layout.
124
129
  * @param rows - Number of rows (if not specified, auto-calculated)
@@ -145,10 +150,7 @@ export declare class VGroup extends VMobject {
145
150
  * A VGroup is simply a THREE.Group that contains children.
146
151
  */
147
152
  protected _createThreeObject(): THREE.Object3D;
148
- /**
149
- * Create a copy of this VGroup.
150
- */
151
- protected _createCopy(): VMobject;
153
+ copy(): VGroup;
152
154
  /**
153
155
  * Get the number of vmobjects in this group.
154
156
  */
@@ -187,8 +189,30 @@ export declare class VGroup extends VMobject {
187
189
  */
188
190
  get points(): Point[];
189
191
  /**
190
- * 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
191
215
  */
192
- getPoints(): number[][];
216
+ setPoints(points: Point[] | number[][]): this;
193
217
  }
194
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 (local-space)
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
  */
@@ -95,12 +131,17 @@ export declare class VMobject extends VMobjectRendering {
95
131
  */
96
132
  clearPoints(): this;
97
133
  /**
98
- * Fold local scaleVector into canonical child/point state and reset scaleVector.
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.
99
140
  *
100
- * Matches VGroup normalization semantics: propagate scale to children,
101
- * then clear parent scale anchor.
141
+ * @post !this.isEmpty() => old.getPoints()[i] === this.getPoints()[i] // world geometry preserved
142
+ * @post this._computeOwnMatrix() === Identity
102
143
  */
103
- normalizeTransform(): this;
144
+ normalizeTransform(worldMatrix?: THREE.Matrix4): this;
104
145
  /**
105
146
  * Set base subpath-length metadata for this VMobject.
106
147
  * Represents intrinsic topology (e.g. outer contour + holes from SVG parsing).
@@ -167,35 +208,65 @@ export declare class VMobject extends VMobjectRendering {
167
208
  * controls), which renders as flat polygonal segments mid-`Transform`.
168
209
  */
169
210
  protected _interpolatePointList3D(points: number[][], targetCount: number): number[][];
211
+ protected _copyBaseAttributesInto(clone: VMobject, options?: {
212
+ copyChildren?: boolean;
213
+ copyPosition?: boolean;
214
+ }): void;
170
215
  /**
171
- * Create a copy of this VMobject.
172
- * Subclasses override _createCopy() to produce an instance of the right
173
- * concrete type (Circle, Square, etc.), but those constructors typically
174
- * regenerate points from their own parameters (radius, sideLength, ...).
175
- * After a Transform animation has morphed the point data, the regenerated
176
- * points no longer match the actual visual state. We therefore always
177
- * 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.
178
225
  */
179
226
  copy(): VMobject;
180
- /**
181
- * Create a copy of this VMobject
182
- */
183
- protected _createCopy(): VMobject;
184
227
  /**
185
228
  * Get the unit vector from the first to the last point of this VMobject,
186
229
  * accounting for the object's current rotation transform.
187
230
  */
188
231
  getUnitVector(): Vector3Tuple;
189
232
  /**
190
- * Get the center of this VMobject based on its own local points.
191
- * Uses bounding box center (matching Python Manim's get_center behavior)
192
- * 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}.
193
260
  */
194
261
  getCenter(): Vector3Tuple;
195
262
  /**
196
- * 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.
197
267
  */
198
- private static _boundingBoxCenter;
268
+ getCenterOfMass(): Vector3Tuple;
269
+ moveCenterOfMassTo(target: Vector3Tuple): this;
199
270
  /**
200
271
  * Compute local bounding-box center across this VMobject and all descendants
201
272
  * that expose point data.
@@ -211,16 +282,6 @@ export declare class VMobject extends VMobjectRendering {
211
282
  * @returns this for chaining
212
283
  */
213
284
  centerPointsAroundPosition(): this;
214
- /** @internal Check if a Bezier segment is nearly linear. */
215
- protected static _isNearlyLinear(p0: number[], p1: number[], p2: number[], p3: number[]): boolean;
216
- /** @internal Ray-casting point-in-polygon test. */
217
- protected static _pointInPolygon(point: number[], ring: number[][]): boolean;
218
- /** @internal Sample Bezier outline for earcut triangulation. */
219
- protected _sampleBezierOutline(points: number[][], samplesPerSegment: number): number[][];
220
- /** @internal Sample Bezier path for stroke rendering. */
221
- protected _sampleBezierPath(points: number[][], samplesPerSegment?: number): number[][];
222
- /** @internal Check if Bezier control points form a closed path. */
223
- protected _isClosedPath(points3D: number[][]): boolean;
224
285
  /**
225
286
  * Clean up Three.js resources
226
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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"}
@@ -101,6 +101,6 @@ export declare class CurvesAsSubmobjects extends VMobject {
101
101
  /**
102
102
  * Create a copy of this CurvesAsSubmobjects.
103
103
  */
104
- protected _createCopy(): VMobject;
104
+ copy(): VMobject;
105
105
  }
106
106
  //# sourceMappingURL=VMobjectCurveUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VMobjectCurveUtils.d.ts","sourceRoot":"","sources":["../../src/core/VMobjectCurveUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,CAoBnE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAkBhE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;IAC/C,gDAAgD;IAChD,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAE1C;;;OAGG;gBACS,QAAQ,CAAC,EAAE,QAAQ;IAY/B;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IA2BzC;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;;OAIG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ;IAO7B;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAIvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAK3D;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE;IAItD;;OAEG;cACgB,WAAW,IAAI,QAAQ;CAK3C"}
1
+ {"version":3,"file":"VMobjectCurveUtils.d.ts","sourceRoot":"","sources":["../../src/core/VMobjectCurveUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,CAoBnE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAkBhE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;IAC/C,gDAAgD;IAChD,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAE1C;;;OAGG;gBACS,QAAQ,CAAC,EAAE,QAAQ;IAY/B;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IA2BzC;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;;OAIG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ;IAO7B;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAIvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAK3D;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE;IAItD;;OAEG;IACM,IAAI,IAAI,QAAQ;CAM1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"VMobjectGeometry.d.ts","sourceRoot":"","sources":["../../src/core/VMobjectGeometry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA4B9C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAoB9F;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,GAAE,MAAU,GAAG,MAAM,EAAE,EAAE,CA0B9F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAkC7F;AAqHD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAazE;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,CA8BjE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAoD7F;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAAE,EAAE,EACpB,aAAa,EAAE,KAAK,EAAE,EACtB,iBAAiB,CAAC,EAAE,MAAM,MAAM,EAAE,GACjC,KAAK,CAAC,cAAc,GAAG,IAAI,CAqC7B;AAsJD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAQ1D"}
1
+ {"version":3,"file":"VMobjectGeometry.d.ts","sourceRoot":"","sources":["../../src/core/VMobjectGeometry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA4B9C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAoB9F;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,GAAE,MAAU,GAAG,MAAM,EAAE,EAAE,CA0B9F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAkC7F;AAqHD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAazE;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,CA8BjE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAoD7F;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAAE,EAAE,EACpB,aAAa,EAAE,KAAK,EAAE,EACtB,iBAAiB,CAAC,EAAE,MAAM,MAAM,EAAE,GACjC,KAAK,CAAC,cAAc,GAAG,IAAI,CAqC7B;AAqJD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAQ1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"VMobjectStrokeGeometry.d.ts","sourceRoot":"","sources":["../../src/core/VMobjectStrokeGeometry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;;;;GASG;AAEH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd;IAAE,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAA;CAAE,GAAG,IAAI,CAuJ3C"}
1
+ {"version":3,"file":"VMobjectStrokeGeometry.d.ts","sourceRoot":"","sources":["../../src/core/VMobjectStrokeGeometry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd;IAAE,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAA;CAAE,GAAG,IAAI,CAuJ3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"VMobjectTransformAlignment.d.ts","sourceRoot":"","sources":["../../src/core/VMobjectTransformAlignment.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,EAAE,MAAM,EAAE,EAAE,CAAC;IAC7B,gBAAgB,EAAE,MAAM,EAAE,EAAE,CAAC;IAC7B,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAsBD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAmDvF;AAydD;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,EAAE,EAAE,EACvB,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAChC,WAAW,EAAE,MAAM,EAAE,EAAE,EACvB,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GACvB,uBAAuB,GAAG,IAAI,CA8ChC"}
1
+ {"version":3,"file":"VMobjectTransformAlignment.d.ts","sourceRoot":"","sources":["../../src/core/VMobjectTransformAlignment.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,EAAE,MAAM,EAAE,EAAE,CAAC;IAC7B,gBAAgB,EAAE,MAAM,EAAE,EAAE,CAAC;IAC7B,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAsBD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAmDvF;AAifD;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,EAAE,EAAE,EACvB,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAChC,WAAW,EAAE,MAAM,EAAE,EAAE,EACvB,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GACvB,uBAAuB,GAAG,IAAI,CA8ChC"}