manim-web 0.3.19 → 0.3.21

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 (165) hide show
  1. package/README.md +1 -1
  2. package/dist/AmsConfiguration-BMyoprhk.js +847 -0
  3. package/dist/AmsConfiguration-BdxxYRby.js +847 -0
  4. package/dist/ConfigMacrosConfiguration-B8X_JSVI.js +46 -0
  5. package/dist/ConfigMacrosConfiguration-DUxp6DUV.js +46 -0
  6. package/dist/Entities-B1o7gN0J.js +429 -0
  7. package/dist/Entities-C82lnCux.js +429 -0
  8. package/dist/Factory-BKM7FEO-.js +107 -0
  9. package/dist/Factory-D-whCqrb.js +107 -0
  10. package/dist/{GifExporter-7EpPGupp.js → GifExporter-BrxY_q7e.js} +1 -1
  11. package/dist/{GifExporter-DCrSD6FV.js → GifExporter-S2pbxMc5.js} +1 -1
  12. package/dist/HtmlNode-BLmQ2r7U.js +981 -0
  13. package/dist/HtmlNode-DXGeKrcW.js +981 -0
  14. package/dist/InputJax-DL9oUQY4.js +41 -0
  15. package/dist/InputJax-DnDWM3Y0.js +41 -0
  16. package/dist/NewcommandConfiguration-BPjclFig.js +32 -0
  17. package/dist/NewcommandConfiguration-bJ6P1rBY.js +32 -0
  18. package/dist/NewcommandMethods-C_E3iLoK.js +187 -0
  19. package/dist/NewcommandMethods-Cb7yFm5P.js +187 -0
  20. package/dist/Options-DRlTi0G8.js +63 -0
  21. package/dist/Options-XPptO-6X.js +63 -0
  22. package/dist/ParseMethods-BMPfzfQC.js +2636 -0
  23. package/dist/ParseMethods-D3_HeS1K.js +2636 -0
  24. package/dist/Styles-Dky5jZUe.js +293 -0
  25. package/dist/Styles-J-6R3Vr8.js +293 -0
  26. package/dist/{VideoExporter-6w8xBpcV.js → VideoExporter-6ikT3u9H.js} +1 -1
  27. package/dist/{VideoExporter-DdQb18dC.js → VideoExporter-D_RxVahH.js} +1 -1
  28. package/dist/animation/Animation.d.ts +15 -0
  29. package/dist/animation/Animation.d.ts.map +1 -1
  30. package/dist/animation/transform/FadeMorphStrategy.d.ts +18 -0
  31. package/dist/animation/transform/FadeMorphStrategy.d.ts.map +1 -0
  32. package/dist/animation/transform/FadeTransforms.d.ts +2 -0
  33. package/dist/animation/transform/FadeTransforms.d.ts.map +1 -1
  34. package/dist/animation/transform/MorphStrategy.d.ts +8 -0
  35. package/dist/animation/transform/MorphStrategy.d.ts.map +1 -0
  36. package/dist/animation/transform/MovementTransforms.d.ts +8 -0
  37. package/dist/animation/transform/MovementTransforms.d.ts.map +1 -1
  38. package/dist/animation/transform/PointMorphStrategy.d.ts +36 -0
  39. package/dist/animation/transform/PointMorphStrategy.d.ts.map +1 -0
  40. package/dist/animation/transform/ShapeMorphStrategy.d.ts +39 -0
  41. package/dist/animation/transform/ShapeMorphStrategy.d.ts.map +1 -0
  42. package/dist/animation/transform/Transform.d.ts +9 -88
  43. package/dist/animation/transform/Transform.d.ts.map +1 -1
  44. package/dist/animation/transform/TransformMatching.d.ts.map +1 -1
  45. package/dist/animation/transform/TransformMatchingBase.d.ts +1 -0
  46. package/dist/animation/transform/TransformMatchingBase.d.ts.map +1 -1
  47. package/dist/animation/transform/TransformMatchingShared.d.ts +37 -0
  48. package/dist/animation/transform/TransformMatchingShared.d.ts.map +1 -0
  49. package/dist/animation/transform/TransformPairing.d.ts +19 -0
  50. package/dist/animation/transform/TransformPairing.d.ts.map +1 -0
  51. package/dist/constants/fontRender.d.ts +19 -0
  52. package/dist/constants/fontRender.d.ts.map +1 -0
  53. package/dist/constants/index.d.ts.map +1 -1
  54. package/dist/core/AnimateProxy.d.ts +1 -0
  55. package/dist/core/AnimateProxy.d.ts.map +1 -1
  56. package/dist/core/Camera.d.ts +19 -6
  57. package/dist/core/Camera.d.ts.map +1 -1
  58. package/dist/core/CameraFrame.d.ts +0 -2
  59. package/dist/core/CameraFrame.d.ts.map +1 -1
  60. package/dist/core/Group.d.ts +2 -0
  61. package/dist/core/Group.d.ts.map +1 -1
  62. package/dist/core/Mobject.d.ts +6 -0
  63. package/dist/core/Mobject.d.ts.map +1 -1
  64. package/dist/core/MobjectTraversal.d.ts +25 -0
  65. package/dist/core/MobjectTraversal.d.ts.map +1 -0
  66. package/dist/core/Scene.d.ts.map +1 -1
  67. package/dist/core/TexturedMobject.d.ts +38 -0
  68. package/dist/core/TexturedMobject.d.ts.map +1 -0
  69. package/dist/core/ThreeDScene.d.ts +18 -3
  70. package/dist/core/ThreeDScene.d.ts.map +1 -1
  71. package/dist/core/VMobject.d.ts +54 -110
  72. package/dist/core/VMobject.d.ts.map +1 -1
  73. package/dist/core/VMobjectCurveUtils.d.ts +106 -0
  74. package/dist/core/VMobjectCurveUtils.d.ts.map +1 -0
  75. package/dist/core/VMobjectGeometry.d.ts +4 -16
  76. package/dist/core/VMobjectGeometry.d.ts.map +1 -1
  77. package/dist/core/VMobjectRendering.d.ts.map +1 -1
  78. package/dist/core/VMobjectStrokeGeometry.d.ts +20 -0
  79. package/dist/core/VMobjectStrokeGeometry.d.ts.map +1 -0
  80. package/dist/core/VMobjectTransformAlignment.d.ts +11 -0
  81. package/dist/core/VMobjectTransformAlignment.d.ts.map +1 -0
  82. package/dist/html-DU38zqaN.js +829 -0
  83. package/dist/html-DjkQuIHJ.js +829 -0
  84. package/dist/index.js +4 -4
  85. package/dist/integrations/react.js +5 -5
  86. package/dist/integrations/vue.js +7 -7
  87. package/dist/interaction/Draggable.d.ts +2 -0
  88. package/dist/interaction/Draggable.d.ts.map +1 -1
  89. package/dist/interaction/OrbitControls.d.ts +2 -0
  90. package/dist/interaction/OrbitControls.d.ts.map +1 -1
  91. package/dist/lengths-CP7zmbxJ.js +54 -0
  92. package/dist/lengths-D4tR1gYA.js +54 -0
  93. package/dist/liteAdaptor-BLgze3o2.js +616 -0
  94. package/dist/liteAdaptor-zXv-jsO1.js +616 -0
  95. package/dist/manim-web.browser.js +35324 -31248
  96. package/dist/mathjax-7LgaTjtj.js +121 -0
  97. package/dist/mathjax-CoSFlQ0H.js +121 -0
  98. package/dist/mo-C5uLT3Z9.js +2675 -0
  99. package/dist/mo-CNYDGAsg.js +2675 -0
  100. package/dist/mobjects/geometry/AngleShapes.d.ts +8 -0
  101. package/dist/mobjects/geometry/AngleShapes.d.ts.map +1 -1
  102. package/dist/mobjects/geometry/BooleanOperations.d.ts +1 -1
  103. package/dist/mobjects/geometry/BooleanOperations.d.ts.map +1 -1
  104. package/dist/mobjects/geometry/PolygonExtensions.d.ts +1 -1
  105. package/dist/mobjects/geometry/PolygonExtensions.d.ts.map +1 -1
  106. package/dist/mobjects/graphing/ComplexPlane.d.ts +18 -0
  107. package/dist/mobjects/graphing/ComplexPlane.d.ts.map +1 -1
  108. package/dist/mobjects/image/index.d.ts +9 -2
  109. package/dist/mobjects/image/index.d.ts.map +1 -1
  110. package/dist/mobjects/text/MarkupText.d.ts.map +1 -1
  111. package/dist/mobjects/text/MathJaxRenderer.d.ts +4 -2
  112. package/dist/mobjects/text/MathJaxRenderer.d.ts.map +1 -1
  113. package/dist/mobjects/text/MathTex.d.ts +9 -2
  114. package/dist/mobjects/text/MathTex.d.ts.map +1 -1
  115. package/dist/mobjects/text/MathTexImage.d.ts +14 -4
  116. package/dist/mobjects/text/MathTexImage.d.ts.map +1 -1
  117. package/dist/mobjects/text/Text.d.ts +10 -5
  118. package/dist/mobjects/text/Text.d.ts.map +1 -1
  119. package/dist/mobjects/text/katexStyles.d.ts.map +1 -1
  120. package/dist/mobjects/text/svgPathParser.d.ts.map +1 -1
  121. package/dist/mobjects/three-d/ThreeDAxes.d.ts +121 -9
  122. package/dist/mobjects/three-d/ThreeDAxes.d.ts.map +1 -1
  123. package/dist/{chunk-DeC0fbbY.js → rolldown-runtime-DnwLefa7.js} +1 -1
  124. package/dist/{src-0ifQdJUj.js → src-CW4pfZdP.js} +33071 -29118
  125. package/dist/svg-CYweEoZ1.js +28698 -0
  126. package/dist/svg-swSF_J59.js +28698 -0
  127. package/dist/tex-C4_queV-.js +1423 -0
  128. package/dist/tex-CA5MLeEe.js +1423 -0
  129. package/dist/utils/math.d.ts +50 -5
  130. package/dist/utils/math.d.ts.map +1 -1
  131. package/package.json +6 -5
  132. package/dist/AllPackages-C4Ha3Jps.js +0 -7912
  133. package/dist/AllPackages-Dwxf_-Ps.js +0 -7912
  134. package/dist/BaseConfiguration-D2fikupy.js +0 -4402
  135. package/dist/BaseConfiguration-DYpI8zxb.js +0 -4402
  136. package/dist/Entities-BxzKxtF2.js +0 -458
  137. package/dist/Entities-gIbwAkB6.js +0 -458
  138. package/dist/InputJax-BszJvLkW.js +0 -43
  139. package/dist/InputJax-CgHBfQsv.js +0 -43
  140. package/dist/MathItem-4gYKatZT.js +0 -77
  141. package/dist/MathItem-BGJUnd1K.js +0 -77
  142. package/dist/Options-CQim5zsr.js +0 -188
  143. package/dist/Options-Cn9jv1mh.js +0 -188
  144. package/dist/PrioritizedList-C1R4aNEC.js +0 -36
  145. package/dist/PrioritizedList-lIkFMNlo.js +0 -36
  146. package/dist/Styles-Bi9Db-2J.js +0 -411
  147. package/dist/Styles-CzHPc-An.js +0 -411
  148. package/dist/TeXAtom-Cinii27y.js +0 -2025
  149. package/dist/TeXAtom-DFdvwkN2.js +0 -2025
  150. package/dist/html-DKkfg_ss.js +0 -1587
  151. package/dist/html-DpiYkktJ.js +0 -1587
  152. package/dist/lengths-C0YS8_KC.js +0 -65
  153. package/dist/lengths-eBH2o1TO.js +0 -65
  154. package/dist/liteAdaptor-CB8lQj3d.js +0 -828
  155. package/dist/liteAdaptor-DvuW8HsZ.js +0 -828
  156. package/dist/mathjax-BVz9WLAG.js +0 -105
  157. package/dist/mathjax-BbWkqal4.js +0 -2
  158. package/dist/mathjax-BrFZxFhK.js +0 -2
  159. package/dist/mathjax-DdKmwllV.js +0 -105
  160. package/dist/mo-B60kIOAG.js +0 -3271
  161. package/dist/mo-cSv2058o.js +0 -3271
  162. package/dist/svg-BDTt4xHZ.js +0 -23879
  163. package/dist/svg-DzbC3CbJ.js +0 -23879
  164. package/dist/tex-CRhAZgfS.js +0 -401
  165. package/dist/tex-D3LEgNlQ.js +0 -401
@@ -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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"}
@@ -0,0 +1,38 @@
1
+ import { Mobject } from './Mobject';
2
+ import * as THREE from 'three';
3
+ /**
4
+ * Base class for mobjects that render via textured display meshes.
5
+ *
6
+ * Shape-morph code can use this contract to transfer texture/material state
7
+ * without knowing the concrete textured subtype.
8
+ */
9
+ export declare abstract class TexturedMobject extends Mobject {
10
+ /**
11
+ * Return the meshes that visually represent this mobject.
12
+ * Textured morph code can use this for strict single-mesh validation.
13
+ */
14
+ abstract getDisplayMeshes(): THREE.Mesh[];
15
+ /**
16
+ * Return how many display meshes this textured mobject contributes.
17
+ */
18
+ abstract getDisplayMeshLength(): number;
19
+ /**
20
+ * Copy texture/material-relevant state from another textured mobject.
21
+ */
22
+ abstract applyTextureFrom(other: TexturedMobject): void;
23
+ /**
24
+ * Update class-authoritative visual size state so later sync cycles do not
25
+ * revert display dimensions set during transform finish.
26
+ */
27
+ abstract applyVisualSize(width: number, height: number): void;
28
+ /**
29
+ * Copy class-authoritative content metadata from another textured mobject so that
30
+ * future sync cycles and API reads (e.g. getText()) reflect the target's content.
31
+ */
32
+ abstract applyContentFrom(other: TexturedMobject): void;
33
+ /**
34
+ * Sets material.map, marks material dirty, and disposes previous texture when replaced.
35
+ */
36
+ protected _handoffTextureMap(material: THREE.MeshBasicMaterial, nextTexture: THREE.Texture | null, previousTexture: THREE.Texture | null): void;
37
+ }
38
+ //# sourceMappingURL=TexturedMobject.d.ts.map
@@ -0,0 +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"}
@@ -17,6 +17,8 @@ export interface ThreeDSceneOptions extends SceneOptions {
17
17
  distance?: number;
18
18
  /** Enable orbit controls for user interaction. Defaults to true. */
19
19
  enableOrbitControls?: boolean;
20
+ /** Vertical rotation axis for orbit controls: 'x', 'y', or 'z'. If not provided, camera.up is computed from initial phi/theta via orbit() formula. */
21
+ orbitControlsUp?: 'x' | 'y' | 'z';
20
22
  /** Orbit controls configuration options. */
21
23
  orbitControlsOptions?: OrbitControlsOptions;
22
24
  /** Whether to set up default lighting. Defaults to true. */
@@ -54,11 +56,24 @@ export declare class ThreeDScene extends Scene {
54
56
  */
55
57
  constructor(container: HTMLElement | null, options?: ThreeDSceneOptions);
56
58
  /**
57
- * Override add to re-enable depth testing for proper 3D occlusion.
58
- * The base Scene disables depthTest for 2D render-order layering,
59
- * but 3D scenes need depth testing for correct visibility.
59
+ * Override add for 3D-correct material/render setup (issue #255):
60
+ * - depthTest=true on every material (base Scene disables it for 2D layering)
61
+ * - depthWrite=!transparent (transparent meshes must not occlude later
62
+ * transparent fragments behind them)
63
+ * - renderOrder reset to 0 so Three.js sorts transparent objects by camera
64
+ * distance instead of add order (base Scene stamps an incrementing
65
+ * renderOrder for 2D z-ordering, which defeats 3D depth sort)
66
+ *
67
+ * Auto-render is suppressed inside super.add() and run once at the end,
68
+ * after settings are applied, so the first visible frame is correct.
60
69
  */
61
70
  add(...mobjects: Mobject[]): this;
71
+ /**
72
+ * Apply 3D-correct material defaults: depthTest=true,
73
+ * depthWrite=!transparent, and (on initial add only) renderOrder=0 so
74
+ * Three.js sorts transparents by camera distance.
75
+ */
76
+ private static _applyDepthSettings;
62
77
  /**
63
78
  * Get the 3D camera.
64
79
  */
@@ -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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"}
@@ -14,6 +14,10 @@ export declare class VMobject extends VMobjectRendering {
14
14
  protected _points3D: number[][];
15
15
  /** Number of points visible (for Create animation) */
16
16
  protected _visiblePointCount: number | null;
17
+ /** Base subpath-length metadata (intrinsic topology, e.g. SVG compound paths). */
18
+ protected _baseSubpathLengths?: number[];
19
+ /** Transform-time override for subpath lengths (compound-path metadata). */
20
+ protected _transformSubpathLengths?: number[];
17
21
  constructor();
18
22
  /**
19
23
  * Get all points as 2D Point objects (derived from _points3D)
@@ -90,6 +94,36 @@ export declare class VMobject extends VMobjectRendering {
90
94
  * Clear all points
91
95
  */
92
96
  clearPoints(): this;
97
+ /**
98
+ * Set base subpath-length metadata for this VMobject.
99
+ * Represents intrinsic topology (e.g. outer contour + holes from SVG parsing).
100
+ */
101
+ setBaseSubpathLengths(lengths: number[] | undefined): void;
102
+ /**
103
+ * Get base subpath lengths (intrinsic topology metadata).
104
+ * Subclasses may override this to compute dynamic metadata.
105
+ */
106
+ getSubpathLengths(): number[] | undefined;
107
+ /**
108
+ * Set transform-time subpath lengths override.
109
+ * Used by Transform animations to preserve compound-path structure.
110
+ * @param lengths - Array of subpath lengths, or undefined to clear
111
+ */
112
+ setTransformSubpathLengths(lengths: number[] | undefined): void;
113
+ /**
114
+ * Get effective subpath lengths for rendering.
115
+ * Returns transform override if present, else base/subclass metadata.
116
+ */
117
+ getEffectiveSubpathLengths(): number[] | undefined;
118
+ /**
119
+ * Get orientation sign for each subpath: +1 (CCW) or -1 (CW).
120
+ * Returns undefined when subpath metadata is missing or inconsistent.
121
+ */
122
+ getSubpathOrientationSigns(lengths?: number[]): Array<1 | -1> | undefined;
123
+ /**
124
+ * Get orientation sign for a specific subpath index: +1 (CCW) or -1 (CW).
125
+ */
126
+ getSubpathOrientationSign(index: number): 1 | -1;
93
127
  /**
94
128
  * Interpolate this VMobject towards a target VMobject
95
129
  * @param target - The target VMobject to interpolate towards
@@ -103,11 +137,6 @@ export declare class VMobject extends VMobjectRendering {
103
137
  * @param target - The target VMobject to align with
104
138
  */
105
139
  alignPoints(target: VMobject): void;
106
- /**
107
- * Compute the signed area of a 2D polygon formed by the anchor points.
108
- * Positive = counter-clockwise, negative = clockwise.
109
- */
110
- private static _signedArea2D;
111
140
  /**
112
141
  * Reverse a cubic-bezier point path while preserving bezier structure.
113
142
  * For cubic segments [A0, H1, H2, A1, H3, H4, A2, ...],
@@ -145,11 +174,30 @@ export declare class VMobject extends VMobjectRendering {
145
174
  */
146
175
  getUnitVector(): Vector3Tuple;
147
176
  /**
148
- * Get the center of this VMobject based on its points.
177
+ * Get the center of this VMobject based on its own local points.
149
178
  * Uses bounding box center (matching Python Manim's get_center behavior)
150
179
  * rather than point centroid, which is inaccurate for Bezier control points.
151
180
  */
152
181
  getCenter(): Vector3Tuple;
182
+ /**
183
+ * Compute local bounding-box center for a list of points.
184
+ */
185
+ private static _boundingBoxCenter;
186
+ /**
187
+ * Compute local bounding-box center across this VMobject and all descendants
188
+ * that expose point data.
189
+ */
190
+ private _familyPointsCenter;
191
+ /**
192
+ * Centers local geometry around the origin and updates position accordingly.
193
+ *
194
+ * This scans all descendant VMobject points (not only this._points3D), so
195
+ * container-style VMobjects (e.g. MathTex/SVGMobject/CurvesAsSubmobjects)
196
+ * are also centered correctly.
197
+ *
198
+ * @returns this for chaining
199
+ */
200
+ centerPointsAroundPosition(): this;
153
201
  /** @internal Check if a Bezier segment is nearly linear. */
154
202
  protected static _isNearlyLinear(p0: number[], p1: number[], p2: number[], p3: number[]): boolean;
155
203
  /** @internal Ray-casting point-in-polygon test. */
@@ -165,108 +213,4 @@ export declare class VMobject extends VMobjectRendering {
165
213
  */
166
214
  dispose(): void;
167
215
  }
168
- /**
169
- * Get the number of curve segments in a VMobject.
170
- * Each cubic Bezier segment uses 4 points (anchor, handle, handle, anchor),
171
- * with consecutive segments sharing anchors.
172
- * @param vmobject - The VMobject to count curves from
173
- * @returns Number of curve segments
174
- */
175
- export declare function getNumCurves(vmobject: VMobject): number;
176
- /**
177
- * Get the nth curve segment from a VMobject as a new VMobject.
178
- * @param vmobject - The source VMobject
179
- * @param n - Index of the curve segment (0-based)
180
- * @returns A new VMobject containing just that curve segment
181
- */
182
- export declare function getNthCurve(vmobject: VMobject, n: number): VMobject;
183
- /**
184
- * Split a VMobject's curves into separate VMobject submobjects.
185
- * Each cubic Bezier curve segment becomes its own VMobject child.
186
- * Useful for animating parts of a path independently (e.g., staggered animations).
187
- *
188
- * @param vmobject - The VMobject to split
189
- * @returns A new VMobject with each curve as a child submobject
190
- *
191
- * @example
192
- * ```typescript
193
- * const path = new VMobject();
194
- * path.setPoints([...complex path with multiple curves...]);
195
- *
196
- * // Split into individual curves for staggered animation
197
- * const curves = curvesAsSubmobjects(path);
198
- *
199
- * // Now animate each curve independently
200
- * for (const curve of curves.children) {
201
- * scene.play(Create(curve));
202
- * }
203
- * ```
204
- */
205
- export declare function curvesAsSubmobjects(vmobject: VMobject): VMobject;
206
- /**
207
- * CurvesAsSubmobjects class - Splits a VMobject's curves into separate submobjects.
208
- *
209
- * This class extends VMobject and creates children where each child is a single
210
- * cubic Bezier curve segment from the source VMobject. This is useful for:
211
- * - Staggered animations (animate each curve segment with delay)
212
- * - Per-curve styling (color each segment differently)
213
- * - Selective curve manipulation
214
- *
215
- * @example
216
- * ```typescript
217
- * const path = new VMobject();
218
- * path.setPoints([...]);
219
- *
220
- * const curves = new CurvesAsSubmobjects(path);
221
- *
222
- * // Access individual curves
223
- * curves.children[0].setColor('red');
224
- * curves.children[1].setColor('blue');
225
- * ```
226
- */
227
- export declare class CurvesAsSubmobjects extends VMobject {
228
- /** The source VMobject this was created from */
229
- protected _source: VMobject | null;
230
- /**
231
- * Create a CurvesAsSubmobjects from a VMobject.
232
- * @param vmobject - The VMobject to split into curve submobjects
233
- */
234
- constructor(vmobject?: VMobject);
235
- /**
236
- * Set up this object from a VMobject, splitting its curves into children.
237
- * @param vmobject - The source VMobject
238
- * @returns this for chaining
239
- */
240
- setFromVMobject(vmobject: VMobject): this;
241
- /**
242
- * Get the number of curve segments (same as number of children).
243
- */
244
- get numCurves(): number;
245
- /**
246
- * Get the nth curve as a VMobject.
247
- * @param n - Index of the curve (0-based)
248
- * @returns The curve VMobject at that index
249
- */
250
- getCurve(n: number): VMobject;
251
- /**
252
- * Iterate over all curves.
253
- */
254
- [Symbol.iterator](): Iterator<VMobject>;
255
- /**
256
- * Apply a function to each curve.
257
- * @param fn - Function to apply
258
- * @returns this for chaining
259
- */
260
- forEach(fn: (curve: VMobject, index: number) => void): this;
261
- /**
262
- * Map over all curves.
263
- * @param fn - Mapping function
264
- * @returns Array of mapped values
265
- */
266
- map<T>(fn: (curve: VMobject, index: number) => T): T[];
267
- /**
268
- * Create a copy of this CurvesAsSubmobjects.
269
- */
270
- protected _createCopy(): VMobject;
271
- }
272
216
  //# sourceMappingURL=VMobject.d.ts.map
@@ -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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"}
@@ -0,0 +1,106 @@
1
+ import { VMobject } from './VMobject';
2
+ /**
3
+ * Get the number of curve segments in a VMobject.
4
+ * Each cubic Bezier segment uses 4 points (anchor, handle, handle, anchor),
5
+ * with consecutive segments sharing anchors.
6
+ * @param vmobject - The VMobject to count curves from
7
+ * @returns Number of curve segments
8
+ */
9
+ export declare function getNumCurves(vmobject: VMobject): number;
10
+ /**
11
+ * Get the nth curve segment from a VMobject as a new VMobject.
12
+ * @param vmobject - The source VMobject
13
+ * @param n - Index of the curve segment (0-based)
14
+ * @returns A new VMobject containing just that curve segment
15
+ */
16
+ export declare function getNthCurve(vmobject: VMobject, n: number): VMobject;
17
+ /**
18
+ * Split a VMobject's curves into separate VMobject submobjects.
19
+ * Each cubic Bezier curve segment becomes its own VMobject child.
20
+ * Useful for animating parts of a path independently (e.g., staggered animations).
21
+ *
22
+ * @param vmobject - The VMobject to split
23
+ * @returns A new VMobject with each curve as a child submobject
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const path = new VMobject();
28
+ * path.setPoints([...complex path with multiple curves...]);
29
+ *
30
+ * // Split into individual curves for staggered animation
31
+ * const curves = curvesAsSubmobjects(path);
32
+ *
33
+ * // Now animate each curve independently
34
+ * for (const curve of curves.children) {
35
+ * scene.play(Create(curve));
36
+ * }
37
+ * ```
38
+ */
39
+ export declare function curvesAsSubmobjects(vmobject: VMobject): VMobject;
40
+ /**
41
+ * CurvesAsSubmobjects class - Splits a VMobject's curves into separate submobjects.
42
+ *
43
+ * This class extends VMobject and creates children where each child is a single
44
+ * cubic Bezier curve segment from the source VMobject. This is useful for:
45
+ * - Staggered animations (animate each curve segment with delay)
46
+ * - Per-curve styling (color each segment differently)
47
+ * - Selective curve manipulation
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const path = new VMobject();
52
+ * path.setPoints([...]);
53
+ *
54
+ * const curves = new CurvesAsSubmobjects(path);
55
+ *
56
+ * // Access individual curves
57
+ * curves.children[0].setColor('red');
58
+ * curves.children[1].setColor('blue');
59
+ * ```
60
+ */
61
+ export declare class CurvesAsSubmobjects extends VMobject {
62
+ /** The source VMobject this was created from */
63
+ protected _source: VMobject | null;
64
+ /**
65
+ * Create a CurvesAsSubmobjects from a VMobject.
66
+ * @param vmobject - The VMobject to split into curve submobjects
67
+ */
68
+ constructor(vmobject?: VMobject);
69
+ /**
70
+ * Set up this object from a VMobject, splitting its curves into children.
71
+ * @param vmobject - The source VMobject
72
+ * @returns this for chaining
73
+ */
74
+ setFromVMobject(vmobject: VMobject): this;
75
+ /**
76
+ * Get the number of curve segments (same as number of children).
77
+ */
78
+ get numCurves(): number;
79
+ /**
80
+ * Get the nth curve as a VMobject.
81
+ * @param n - Index of the curve (0-based)
82
+ * @returns The curve VMobject at that index
83
+ */
84
+ getCurve(n: number): VMobject;
85
+ /**
86
+ * Iterate over all curves.
87
+ */
88
+ [Symbol.iterator](): Iterator<VMobject>;
89
+ /**
90
+ * Apply a function to each curve.
91
+ * @param fn - Function to apply
92
+ * @returns this for chaining
93
+ */
94
+ forEach(fn: (curve: VMobject, index: number) => void): this;
95
+ /**
96
+ * Map over all curves.
97
+ * @param fn - Mapping function
98
+ * @returns Array of mapped values
99
+ */
100
+ map<T>(fn: (curve: VMobject, index: number) => T): T[];
101
+ /**
102
+ * Create a copy of this CurvesAsSubmobjects.
103
+ */
104
+ protected _createCopy(): VMobject;
105
+ }
106
+ //# sourceMappingURL=VMobjectCurveUtils.d.ts.map
@@ -0,0 +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"}
@@ -12,7 +12,8 @@ import { Point } from './VMobjectCurves';
12
12
  import * as THREE from 'three';
13
13
  /**
14
14
  * Check if a cubic Bezier segment is nearly linear by measuring the maximum
15
- * distance from handles to the chord (p0 -> p3).
15
+ * 3D distance from handles to the chord (p0 -> p3). Must handle z so that
16
+ * arcs in non-XY planes (e.g. Angle in XZ plane) still sample as curves.
16
17
  */
17
18
  export declare function isNearlyLinear(p0: number[], p1: number[], p2: number[], p3: number[]): boolean;
18
19
  /**
@@ -60,23 +61,10 @@ export declare function pointsToCurvePath(visiblePoints3D: number[][]): THREE.Cu
60
61
  *
61
62
  * @param points3D - The visible Bezier control points
62
63
  * @param visiblePoints - 2D points for fallback shape
63
- * @param getSubpaths - Optional function to get subpath lengths for compound paths
64
+ * @param getSubpathLengths - Optional function to get subpath lengths for compound paths
64
65
  * @returns A BufferGeometry or null if too degenerate
65
66
  */
66
- export declare function buildEarcutFillGeometry(points3D: number[][], visiblePoints: Point[], getSubpaths?: () => number[]): THREE.BufferGeometry | null;
67
- /**
68
- * Build mesh-based stroke geometry from a closed sampled path.
69
- * Uses miter joins at corners for pixel-perfect sharp corners.
70
- *
71
- * @param group - The THREE.Group for world matrix computation
72
- * @param sampledPoints - Sampled path points
73
- * @param strokeWidth - Stroke width
74
- * @param opacity - Current opacity
75
- * @returns BufferGeometry and index data, or null if insufficient points
76
- */
77
- export declare function buildMeshStrokeGeometry(group: THREE.Group, sampledPoints: number[][], strokeWidth: number, opacity: number): {
78
- geometry: THREE.BufferGeometry;
79
- } | null;
67
+ export declare function buildEarcutFillGeometry(points3D: number[][], visiblePoints: Point[], getSubpathLengths?: () => number[]): THREE.BufferGeometry | null;
80
68
  /**
81
69
  * Check if the Bezier control points form a closed path (first ~ last anchor).
82
70
  */
@@ -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;AAG/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAM9C;;;GAGG;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,CAa9F;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,GAAE,MAAU,GAAG,MAAM,EAAE,EAAE,CAqC9F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAoC7F;AAMD;;;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,WAAW,CAAC,EAAE,MAAM,MAAM,EAAE,GAC3B,KAAK,CAAC,cAAc,GAAG,IAAI,CAkC7B;AAkFD;;;;;;;;;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;AAMD;;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;AAS/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAc9C;;;;GAIG;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;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,GAAE,MAAU,GAAG,MAAM,EAAE,EAAE,CAqC9F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAoC7F;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;AAoGD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAQ1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"VMobjectRendering.d.ts","sourceRoot":"","sources":["../../src/core/VMobjectRendering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VMobjectRendering.d.ts","sourceRoot":"","sources":["../../src/core/VMobjectRendering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Mesh-based stroke geometry construction for VMobject.
3
+ *
4
+ * Extracted from VMobjectGeometry.ts to keep line counts under control.
5
+ */
6
+ import * as THREE from 'three';
7
+ /**
8
+ * Build mesh-based stroke geometry from a closed sampled path.
9
+ * Uses miter joins at corners for pixel-perfect sharp corners.
10
+ *
11
+ * @param group - The THREE.Group for world matrix computation
12
+ * @param sampledPoints - Sampled path points
13
+ * @param strokeWidth - Stroke width
14
+ * @param opacity - Current opacity
15
+ * @returns BufferGeometry and index data, or null if insufficient points
16
+ */
17
+ export declare function buildMeshStrokeGeometry(group: THREE.Group, sampledPoints: number[][], strokeWidth: number, opacity: number): {
18
+ geometry: THREE.BufferGeometry;
19
+ } | null;
20
+ //# sourceMappingURL=VMobjectStrokeGeometry.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,11 @@
1
+ export interface CompoundAlignmentResult {
2
+ srcAlignedPoints: number[][];
3
+ tgtAlignedPoints: number[][];
4
+ alignedSubpathLengths: number[];
5
+ }
6
+ /**
7
+ * Align compound paths by orientation buckets, then by descending subpath length.
8
+ * CW (-1) and CCW (+1) buckets are aligned independently.
9
+ */
10
+ export declare function alignCompoundPathsForTransform(srcPoints3D: number[][], srcLengths: number[] | undefined, tgtPoints3D: number[][], tgtLengths: number[] | undefined, srcSigns?: Array<1 | -1>, tgtSigns?: Array<1 | -1>): CompoundAlignmentResult | null;
11
+ //# sourceMappingURL=VMobjectTransformAlignment.d.ts.map
@@ -0,0 +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;AAyUD;;;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,CAqDhC"}