manim-web 0.3.20 → 0.3.22

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 (192) hide show
  1. package/README.md +20 -0
  2. package/dist/AmsConfiguration-OUoC_kJ0.js +847 -0
  3. package/dist/AmsConfiguration-tdje_HlF.js +847 -0
  4. package/dist/ConfigMacrosConfiguration-4OaQYvlr.js +46 -0
  5. package/dist/ConfigMacrosConfiguration-DM3-S5M8.js +46 -0
  6. package/dist/Entities-Dw6381dl.js +429 -0
  7. package/dist/Entities-bJKKDYjE.js +429 -0
  8. package/dist/Factory-Ba6Nqb3M.js +107 -0
  9. package/dist/HtmlNode-1mFtYQ9G.js +981 -0
  10. package/dist/HtmlNode-CQqo5we-.js +981 -0
  11. package/dist/InputJax-D5R2pqUk.js +41 -0
  12. package/dist/InputJax-jNvwWU5P.js +41 -0
  13. package/dist/NewcommandConfiguration-BN_OlLcO.js +32 -0
  14. package/dist/NewcommandConfiguration-DZ3mSCpD.js +32 -0
  15. package/dist/NewcommandMethods-D5bueYYE.js +187 -0
  16. package/dist/NewcommandMethods-DTf_dan5.js +187 -0
  17. package/dist/Options-DMK2wYar.js +63 -0
  18. package/dist/ParseMethods-Deqa7kJ6.js +2636 -0
  19. package/dist/ParseMethods-Dt5bYDSZ.js +2636 -0
  20. package/dist/Styles-BILrGVps.js +293 -0
  21. package/dist/Styles-DQSruwWe.js +293 -0
  22. package/dist/animation/Animation.d.ts +15 -0
  23. package/dist/animation/Animation.d.ts.map +1 -1
  24. package/dist/animation/MasterTimeline.d.ts +88 -1
  25. package/dist/animation/MasterTimeline.d.ts.map +1 -1
  26. package/dist/animation/movement/Rotate.d.ts +2 -7
  27. package/dist/animation/movement/Rotate.d.ts.map +1 -1
  28. package/dist/animation/transform/FadeMorphStrategy.d.ts +18 -0
  29. package/dist/animation/transform/FadeMorphStrategy.d.ts.map +1 -0
  30. package/dist/animation/transform/FadeTransforms.d.ts +2 -0
  31. package/dist/animation/transform/FadeTransforms.d.ts.map +1 -1
  32. package/dist/animation/transform/MorphStrategy.d.ts +8 -0
  33. package/dist/animation/transform/MorphStrategy.d.ts.map +1 -0
  34. package/dist/animation/transform/MovementTransforms.d.ts.map +1 -1
  35. package/dist/animation/transform/PointMorphStrategy.d.ts +36 -0
  36. package/dist/animation/transform/PointMorphStrategy.d.ts.map +1 -0
  37. package/dist/animation/transform/ShapeMorphStrategy.d.ts +39 -0
  38. package/dist/animation/transform/ShapeMorphStrategy.d.ts.map +1 -0
  39. package/dist/animation/transform/Transform.d.ts +9 -91
  40. package/dist/animation/transform/Transform.d.ts.map +1 -1
  41. package/dist/animation/transform/TransformMatching.d.ts.map +1 -1
  42. package/dist/animation/transform/TransformMatchingBase.d.ts +1 -0
  43. package/dist/animation/transform/TransformMatchingBase.d.ts.map +1 -1
  44. package/dist/animation/transform/TransformMatchingShared.d.ts +37 -0
  45. package/dist/animation/transform/TransformMatchingShared.d.ts.map +1 -0
  46. package/dist/animation/transform/TransformPairing.d.ts +19 -0
  47. package/dist/animation/transform/TransformPairing.d.ts.map +1 -0
  48. package/dist/core/AnimateProxy.d.ts +4 -5
  49. package/dist/core/AnimateProxy.d.ts.map +1 -1
  50. package/dist/core/Camera.d.ts +37 -0
  51. package/dist/core/Camera.d.ts.map +1 -1
  52. package/dist/core/CameraExtensions.d.ts +33 -1
  53. package/dist/core/CameraExtensions.d.ts.map +1 -1
  54. package/dist/core/Group.d.ts +5 -11
  55. package/dist/core/Group.d.ts.map +1 -1
  56. package/dist/core/Mobject.d.ts +39 -7
  57. package/dist/core/Mobject.d.ts.map +1 -1
  58. package/dist/core/MobjectPositioning.d.ts +2 -5
  59. package/dist/core/MobjectPositioning.d.ts.map +1 -1
  60. package/dist/core/MobjectTypes.d.ts +21 -4
  61. package/dist/core/MobjectTypes.d.ts.map +1 -1
  62. package/dist/core/Renderer.d.ts +3 -0
  63. package/dist/core/Renderer.d.ts.map +1 -1
  64. package/dist/core/Scene.d.ts +50 -0
  65. package/dist/core/Scene.d.ts.map +1 -1
  66. package/dist/core/TexturedMobject.d.ts +38 -0
  67. package/dist/core/TexturedMobject.d.ts.map +1 -0
  68. package/dist/core/ThreeDScene.d.ts +18 -3
  69. package/dist/core/ThreeDScene.d.ts.map +1 -1
  70. package/dist/core/VGroup.d.ts +11 -19
  71. package/dist/core/VGroup.d.ts.map +1 -1
  72. package/dist/core/VMobject.d.ts +48 -110
  73. package/dist/core/VMobject.d.ts.map +1 -1
  74. package/dist/core/VMobjectCurveUtils.d.ts +106 -0
  75. package/dist/core/VMobjectCurveUtils.d.ts.map +1 -0
  76. package/dist/core/VMobjectGeometry.d.ts +22 -25
  77. package/dist/core/VMobjectGeometry.d.ts.map +1 -1
  78. package/dist/core/VMobjectRendering.d.ts +5 -0
  79. package/dist/core/VMobjectRendering.d.ts.map +1 -1
  80. package/dist/core/VMobjectStrokeGeometry.d.ts +20 -0
  81. package/dist/core/VMobjectStrokeGeometry.d.ts.map +1 -0
  82. package/dist/core/VMobjectTransformAlignment.d.ts +20 -0
  83. package/dist/core/VMobjectTransformAlignment.d.ts.map +1 -0
  84. package/dist/html-Bza5WY1y.js +829 -0
  85. package/dist/html-bhzMuE8p.js +829 -0
  86. package/dist/index.d.ts +4 -3
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +2 -4
  89. package/dist/integrations/react.js +16 -18
  90. package/dist/integrations/vue.js +15 -17
  91. package/dist/interaction/Draggable.d.ts +2 -0
  92. package/dist/interaction/Draggable.d.ts.map +1 -1
  93. package/dist/interaction/OrbitControls.d.ts +1 -1
  94. package/dist/interaction/OrbitControls.d.ts.map +1 -1
  95. package/dist/lengths-D2zTYMUu.js +54 -0
  96. package/dist/liteAdaptor-BkxB5CGC.js +616 -0
  97. package/dist/liteAdaptor-LMKuWwg1.js +616 -0
  98. package/dist/manim-web.browser.js +35821 -30916
  99. package/dist/mathjax-CPQWkQEv.js +121 -0
  100. package/dist/mathjax-b-GTdZgw.js +121 -0
  101. package/dist/mo-D4wFHS6V.js +2675 -0
  102. package/dist/mo-hAX79Dzl.js +2675 -0
  103. package/dist/mobjects/geometry/AngleShapes.d.ts +0 -4
  104. package/dist/mobjects/geometry/AngleShapes.d.ts.map +1 -1
  105. package/dist/mobjects/geometry/BooleanOperations.d.ts +1 -1
  106. package/dist/mobjects/geometry/BooleanOperations.d.ts.map +1 -1
  107. package/dist/mobjects/geometry/CubicBezier.d.ts.map +1 -1
  108. package/dist/mobjects/geometry/PolygonExtensions.d.ts +1 -1
  109. package/dist/mobjects/geometry/PolygonExtensions.d.ts.map +1 -1
  110. package/dist/mobjects/graphing/ComplexPlane.d.ts +59 -1
  111. package/dist/mobjects/graphing/ComplexPlane.d.ts.map +1 -1
  112. package/dist/mobjects/graphing/Vector.d.ts.map +1 -1
  113. package/dist/mobjects/image/index.d.ts +9 -2
  114. package/dist/mobjects/image/index.d.ts.map +1 -1
  115. package/dist/mobjects/point/Mobject1D.d.ts.map +1 -1
  116. package/dist/mobjects/point/Mobject2D.d.ts.map +1 -1
  117. package/dist/mobjects/point/PMobject.d.ts +8 -2
  118. package/dist/mobjects/point/PMobject.d.ts.map +1 -1
  119. package/dist/mobjects/point/PointMobject.d.ts.map +1 -1
  120. package/dist/mobjects/text/Code.d.ts.map +1 -1
  121. package/dist/mobjects/text/MarkupText.d.ts.map +1 -1
  122. package/dist/mobjects/text/MathJaxRenderer.d.ts.map +1 -1
  123. package/dist/mobjects/text/MathTex.d.ts +9 -0
  124. package/dist/mobjects/text/MathTex.d.ts.map +1 -1
  125. package/dist/mobjects/text/MathTexImage.d.ts +9 -3
  126. package/dist/mobjects/text/MathTexImage.d.ts.map +1 -1
  127. package/dist/mobjects/text/Text.d.ts +8 -3
  128. package/dist/mobjects/text/Text.d.ts.map +1 -1
  129. package/dist/mobjects/text/TextGlyphGroup.d.ts.map +1 -1
  130. package/dist/mobjects/text/svgPathParser.d.ts.map +1 -1
  131. package/dist/mobjects/three-d/Line3D.d.ts +10 -56
  132. package/dist/mobjects/three-d/Line3D.d.ts.map +1 -1
  133. package/dist/mobjects/three-d/ThreeDAxes.d.ts +8 -0
  134. package/dist/mobjects/three-d/ThreeDAxes.d.ts.map +1 -1
  135. package/dist/player/Player.d.ts +36 -29
  136. package/dist/player/Player.d.ts.map +1 -1
  137. package/dist/player/PlayerUI.d.ts.map +1 -1
  138. package/dist/player/RecordingScene.d.ts +37 -0
  139. package/dist/player/RecordingScene.d.ts.map +1 -0
  140. package/dist/{src-Db7QTr4S.js → src-BlTk3Bta.js} +34386 -29482
  141. package/dist/svg-DNS5Hwhk.js +28713 -0
  142. package/dist/svg-DVUoAdmC.js +28713 -0
  143. package/dist/test-setup/vitest-setup.d.ts +20 -0
  144. package/dist/test-setup/vitest-setup.d.ts.map +1 -0
  145. package/dist/tex-BQCLd0dF.js +1427 -0
  146. package/dist/tex-Cd_bTYKG.js +1427 -0
  147. package/dist/utils/axis.d.ts +4 -0
  148. package/dist/utils/axis.d.ts.map +1 -0
  149. package/dist/utils/logger.d.ts +37 -0
  150. package/dist/utils/logger.d.ts.map +1 -1
  151. package/dist/utils/math.d.ts +11 -0
  152. package/dist/utils/math.d.ts.map +1 -1
  153. package/dist/utils/vectors.d.ts +54 -1
  154. package/dist/utils/vectors.d.ts.map +1 -1
  155. package/package.json +10 -8
  156. package/dist/AllPackages-B0GtkYjD.js +0 -7912
  157. package/dist/AllPackages-BIAELuhU.js +0 -7912
  158. package/dist/BaseConfiguration-CDf44lxS.js +0 -4402
  159. package/dist/BaseConfiguration-Chcqjv9L.js +0 -4402
  160. package/dist/Entities-B_gwJfrn.js +0 -458
  161. package/dist/Entities-CmJkmuw_.js +0 -458
  162. package/dist/GifExporter-C9lP34Iu.js +0 -338
  163. package/dist/GifExporter-DBak5Vk7.js +0 -338
  164. package/dist/InputJax-C5sGfjJ8.js +0 -43
  165. package/dist/InputJax-Jb4hSThK.js +0 -43
  166. package/dist/MathItem-BmK41eqe.js +0 -77
  167. package/dist/MathItem-C_mZyaeT.js +0 -77
  168. package/dist/Options-Ch1vGsgd.js +0 -188
  169. package/dist/Options-V6ag48Dv.js +0 -188
  170. package/dist/PrioritizedList-DkoCmqPk.js +0 -36
  171. package/dist/PrioritizedList-eKTii0tW.js +0 -36
  172. package/dist/Styles-De4BjKiV.js +0 -411
  173. package/dist/Styles-DgoiBrzf.js +0 -411
  174. package/dist/TeXAtom-DT2wCvcU.js +0 -2025
  175. package/dist/TeXAtom-JogI0lus.js +0 -2025
  176. package/dist/VideoExporter-Bdtz_pWv.js +0 -102
  177. package/dist/VideoExporter-Vjfsnv1h.js +0 -102
  178. package/dist/chunk-3e0lkp8x.js +0 -23
  179. package/dist/html-53__O8r2.js +0 -1587
  180. package/dist/html-DfHFh5II.js +0 -1587
  181. package/dist/lengths-3epoqRj7.js +0 -65
  182. package/dist/lengths-B-bX9Tfk.js +0 -65
  183. package/dist/liteAdaptor-BxFvlO-q.js +0 -828
  184. package/dist/liteAdaptor-CsOIKw2g.js +0 -828
  185. package/dist/mathjax-Bkrmftxh.js +0 -102
  186. package/dist/mathjax-DBrTNl9C.js +0 -102
  187. package/dist/mo-AzagC5AD.js +0 -3271
  188. package/dist/mo-I_6dyJsk.js +0 -3271
  189. package/dist/svg-CoGQ_sAt.js +0 -23880
  190. package/dist/svg-DiIG93Lr.js +0 -23880
  191. package/dist/tex-ChPKMfdv.js +0 -401
  192. package/dist/tex-hYZcjadW.js +0 -401
@@ -104,6 +104,18 @@ export declare class Camera3D {
104
104
  distance: number;
105
105
  };
106
106
  }
107
+ /**
108
+ * How `Camera2D.setAspectRatio` reconciles the user-set frame with the
109
+ * viewport's pixel aspect.
110
+ *
111
+ * - `'fill'` (default): keep `frameHeight`, recompute `frameWidth` from
112
+ * the viewport aspect. Frame is cropped horizontally on wider viewports
113
+ * and over-shows on narrower ones. Back-compatible.
114
+ * - `'contain'`: keep both base `frameWidth` and `frameHeight`. Grow
115
+ * whichever dimension is needed to letterbox so the user's full
116
+ * frame is always visible (no cropping of the intended view).
117
+ */
118
+ export type Camera2DAspectMode = 'fill' | 'contain';
107
119
  /**
108
120
  * Options for configuring a Camera2D.
109
121
  */
@@ -114,6 +126,14 @@ export interface CameraOptions {
114
126
  frameHeight?: number;
115
127
  /** Initial camera position [x, y, z]. Defaults to [0, 0, 10]. */
116
128
  position?: [number, number, number];
129
+ /**
130
+ * Behaviour of `setAspectRatio` when the viewport aspect doesn't match
131
+ * this camera's frame. Defaults to `'fill'` for back-compat — set to
132
+ * `'contain'` (recommended for multi-camera layouts) to make per-camera
133
+ * `frameWidth`/`frameHeight` zoom intent survive the per-viewport
134
+ * aspect adjustment.
135
+ */
136
+ aspectMode?: Camera2DAspectMode;
117
137
  }
118
138
  /**
119
139
  * 2D camera for manimweb scenes.
@@ -123,6 +143,14 @@ export declare class Camera2D {
123
143
  private _camera;
124
144
  private _frameWidth;
125
145
  private _frameHeight;
146
+ /**
147
+ * The frame dimensions the user *asked for*, preserved across
148
+ * `setAspectRatio` calls when `_aspectMode === 'contain'`. Updated
149
+ * whenever the user mutates `frameWidth`/`frameHeight` directly.
150
+ */
151
+ private _userFrameWidth;
152
+ private _userFrameHeight;
153
+ private _aspectMode;
126
154
  private _frame;
127
155
  /**
128
156
  * Create a new 2D camera.
@@ -145,6 +173,15 @@ export declare class Camera2D {
145
173
  * Set the frame height in world units.
146
174
  */
147
175
  set frameHeight(height: number);
176
+ /**
177
+ * Get the current aspect-mode (see {@link Camera2DAspectMode}).
178
+ */
179
+ get aspectMode(): Camera2DAspectMode;
180
+ /**
181
+ * Set the aspect-mode. Re-applies the current aspect ratio so the
182
+ * projection updates immediately.
183
+ */
184
+ set aspectMode(mode: Camera2DAspectMode);
148
185
  /**
149
186
  * Get the camera position.
150
187
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../src/core/Camera.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../src/core/Camera.ts"],"names":[],"mappings":"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"}
@@ -264,6 +264,15 @@ export interface CameraViewport {
264
264
  width: number;
265
265
  /** Height as fraction of canvas height (0-1). */
266
266
  height: number;
267
+ /**
268
+ * Optional border color (any THREE.Color input — `#rrggbb`, named, or
269
+ * 0xrrggbb). When set together with `borderWidth > 0`, MultiCamera
270
+ * draws a rectangle outline around the viewport in canvas-pixel space
271
+ * after the scene render. Off by default.
272
+ */
273
+ borderColor?: number | string;
274
+ /** Optional border thickness in canvas pixels. Defaults to 0 (no border). */
275
+ borderWidth?: number;
267
276
  }
268
277
  /**
269
278
  * Camera entry in the multi-camera system.
@@ -325,6 +334,18 @@ export declare class MultiCamera {
325
334
  * @returns Index of the added camera
326
335
  */
327
336
  addCamera(camera: Camera2D | Camera3D | MovingCamera | ThreeDCamera, viewport: CameraViewport, label?: string): number;
337
+ /**
338
+ * Update the border style of an existing viewport. Passing `null` for
339
+ * either field disables that side of the configuration (e.g. setting
340
+ * `borderWidth` to 0 turns the border off).
341
+ * @param index - Camera index
342
+ * @param style - Partial border style; merged into the existing viewport
343
+ * @returns this for chaining
344
+ */
345
+ setViewportBorder(index: number, style: {
346
+ borderColor?: number | string | null;
347
+ borderWidth?: number | null;
348
+ }): this;
328
349
  /**
329
350
  * Remove a camera by index.
330
351
  * @param index - Index of camera to remove
@@ -412,7 +433,18 @@ export declare class MultiCamera {
412
433
  */
413
434
  render(renderer: THREE.WebGLRenderer, scene: THREE.Scene, canvasWidth: number, canvasHeight: number): void;
414
435
  /**
415
- * Update all cameras that support animation.
436
+ * Lazy-initialized scene + camera + line geometry used to draw viewport
437
+ * borders. Borders are rendered as a single screen-space pass after the
438
+ * main multi-camera render.
439
+ */
440
+ private _borderScene;
441
+ private _borderCamera;
442
+ private _renderBorders;
443
+ /**
444
+ * Update all cameras that support animation. Advances per-camera
445
+ * animation state (MovingCamera/ThreeDCamera) and runs any frame
446
+ * updaters attached to Camera2D entries so secondary cameras can
447
+ * follow targets the same way `scene.camera.frame` does.
416
448
  * @param dt - Delta time in seconds
417
449
  */
418
450
  update(dt: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"CameraExtensions.d.ts","sourceRoot":"","sources":["../../src/core/CameraExtensions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CameraExtensions.d.ts","sourceRoot":"","sources":["../../src/core/CameraExtensions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Mobject, Vector3Tuple } from './Mobject';
1
+ import { Mobject, Vector3Tuple, AxisOrOptions } from './Mobject';
2
2
  /**
3
3
  * Group class for grouping multiple mobjects together.
4
4
  * Transformations applied to the group cascade to all children.
@@ -31,13 +31,8 @@ export declare class Group extends Mobject {
31
31
  * @returns this for chaining
32
32
  */
33
33
  clear(): this;
34
- /**
35
- * Get the center of the group (average of all children centers).
36
- * Children maintain world-space coordinates, so no group position offset
37
- * is added (shift/moveTo only update children, not group position).
38
- * @returns Center position as [x, y, z]
39
- */
40
34
  getCenter(): Vector3Tuple;
35
+ normalizeTransform(): this;
41
36
  /**
42
37
  * Shift all children by the given delta.
43
38
  * Only children are shifted (they maintain world-space coordinates).
@@ -61,10 +56,7 @@ export declare class Group extends Mobject {
61
56
  * @param axis - Axis of rotation [x, y, z], defaults to Z axis
62
57
  * @returns this for chaining
63
58
  */
64
- rotate(angle: number, axisOrOptions?: Vector3Tuple | {
65
- axis?: Vector3Tuple;
66
- aboutPoint?: Vector3Tuple;
67
- }): this;
59
+ rotate(angle: number, axisOrOptions?: Vector3Tuple | AxisOrOptions): this;
68
60
  /**
69
61
  * Scale all children.
70
62
  * Only children are scaled to avoid double-counting with Three.js hierarchy.
@@ -101,6 +93,8 @@ export declare class Group extends Mobject {
101
93
  * A group is simply a THREE.Group that contains children.
102
94
  */
103
95
  protected _createThreeObject(): THREE.Object3D;
96
+ getDisplayMeshLength(): number;
97
+ getDisplayMeshes(): THREE.Mesh[];
104
98
  /**
105
99
  * Create a copy of this Group.
106
100
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../src/core/Group.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAElD;;;GAGG;AACH,qBAAa,KAAM,SAAQ,OAAO;IAChC;;;OAGG;gBACS,GAAG,QAAQ,EAAE,OAAO,EAAE;IAQlC;;;;OAIG;IACM,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAoBpC;;;;OAIG;IACM,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAavC;;;OAGG;IACH,KAAK,IAAI,IAAI;IAOb;;;;;OAKG;IACM,SAAS,IAAI,YAAY;IAmBlC;;;;;;;OAOG;IACM,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAQzC;;;;;OAKG;IACM,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,EAAE,WAAW,CAAC,EAAE,YAAY,GAAG,IAAI;IAuBjF;;;;;;OAMG;IACM,MAAM,CACb,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,YAAY,GAAG;QAAE,IAAI,CAAC,EAAE,YAAY,CAAC;QAAC,UAAU,CAAC,EAAE,YAAY,CAAA;KAAE,GAChF,IAAI;IAQP;;;;;OAKG;IACM,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAQnD;;;;OAIG;IACM,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQtC;;;;OAIG;IACM,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQhD;;;;OAIG;IACM,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ5C;;;;OAIG;IACM,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ9C;;;OAGG;IACH,SAAS,CAAC,kBAAkB,IAAI,KAAK,CAAC,QAAQ;IAW9C;;OAEG;cACgB,WAAW,IAAI,KAAK;IAKvC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIvC;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC;IAItC;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAK5D;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE;IAIvD;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,KAAK;CAIhE"}
1
+ {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../src/core/Group.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEjE;;;GAGG;AACH,qBAAa,KAAM,SAAQ,OAAO;IAChC;;;OAGG;gBACS,GAAG,QAAQ,EAAE,OAAO,EAAE;IAQlC;;;;OAIG;IACM,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAoBpC;;;;OAIG;IACM,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAavC;;;OAGG;IACH,KAAK,IAAI,IAAI;IAOJ,SAAS,IAAI,YAAY;IAkBzB,kBAAkB,IAAI,IAAI;IAKnC;;;;;;;OAOG;IACM,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAUzC;;;;;OAKG;IACM,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,EAAE,WAAW,CAAC,EAAE,YAAY,GAAG,IAAI;IAuBjF;;;;;;OAMG;IACM,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,YAAY,GAAG,aAAa,GAAG,IAAI;IAQlF;;;;;OAKG;IACM,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAInD;;;;OAIG;IACM,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQtC;;;;OAIG;IACM,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQhD;;;;OAIG;IACM,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ5C;;;;OAIG;IACM,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ9C;;;OAGG;IACH,SAAS,CAAC,kBAAkB,IAAI,KAAK,CAAC,QAAQ;IAWrC,oBAAoB,IAAI,MAAM;IAI9B,gBAAgB,IAAI,KAAK,CAAC,IAAI,EAAE;IAIzC;;OAEG;cACgB,WAAW,IAAI,KAAK;IAKvC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIvC;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC;IAItC;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAK5D;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE;IAIvD;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,KAAK;CAIhE"}
@@ -1,8 +1,11 @@
1
- import { Vector3Tuple, MobjectStyle } from './MobjectTypes';
1
+ import { Vector3Tuple, MobjectStyle, AxisOrOptions } from './MobjectTypes';
2
2
  import * as THREE from 'three';
3
+ interface NormalizeContainerOptions {
4
+ translateChild?: (child: Mobject, dx: number, dy: number, dz: number) => void;
5
+ }
3
6
  /** @internal Called by AnimateProxy module to register the factory. */
4
7
  export declare function registerAnimateProxy(factory: (mobject: Mobject) => any): void;
5
- export { type Vector3Tuple, type MobjectStyle, type MobjectLike, type VMobjectLike, isVMobjectLike, UP, DOWN, LEFT, RIGHT, OUT, IN, ORIGIN, UL, UR, DL, DR, } from './MobjectTypes';
8
+ export { type Vector3Tuple, type MobjectStyle, type MobjectLike, type VMobjectLike, type AxisOrOptions, isVMobjectLike, UP, DOWN, LEFT, RIGHT, OUT, IN, ORIGIN, UL, UR, DL, DR, } from './MobjectTypes';
6
9
  /**
7
10
  * Updater function type that runs every frame.
8
11
  * Defined here (not in MobjectTypes) to reference the concrete Mobject class
@@ -60,11 +63,7 @@ export declare abstract class Mobject {
60
63
  * Rotate the mobject by angle around an axis.
61
64
  * Accepts aboutPoint or aboutEdge to specify the rotation center.
62
65
  */
63
- rotate(angle: number, axisOrOptions?: Vector3Tuple | {
64
- axis?: Vector3Tuple;
65
- aboutPoint?: Vector3Tuple;
66
- aboutEdge?: Vector3Tuple;
67
- }): this;
66
+ rotate(angle: number, axisOrOptions?: Vector3Tuple | AxisOrOptions): this;
68
67
  rotateAboutOrigin(angle: number, axis?: Vector3Tuple): this;
69
68
  flip(axis?: Vector3Tuple, options?: {
70
69
  aboutPoint?: Vector3Tuple;
@@ -135,12 +134,38 @@ export declare abstract class Mobject {
135
134
  get animate(): any;
136
135
  toEdge(direction: Vector3Tuple, buff?: number, frameDimensions?: [number, number]): this;
137
136
  toCorner(direction?: Vector3Tuple, buff?: number, frameDimensions?: [number, number]): this;
137
+ /**
138
+ * Normalize local transform into object-specific canonical representation.
139
+ *
140
+ * Subclasses may override this to fold transient transforms into their
141
+ * canonical state (e.g. forwarding container translation to children).
142
+ * Call this before geometry queries like getCenter()/getBounds().
143
+ *
144
+ * Base implementation is a no-op.
145
+ */
146
+ normalizeTransform(): this;
147
+ /**
148
+ * Normalize this object as a container: forward parent S/R/T anchors into
149
+ * children, reset parent anchors, then recurse into children.
150
+ */
151
+ protected _normalizeContainerTransform(options?: NormalizeContainerOptions): void;
152
+ protected _hasDeferredAnchors(): boolean;
153
+ private _normalizeContainerScale;
154
+ private _normalizeContainerRotation;
155
+ private _applyEulerSteps;
156
+ private _normalizeContainerTranslation;
138
157
  _syncToThree(): void;
139
158
  protected _syncMaterialToThree(): void;
140
159
  _markDirty(): void;
141
160
  _markDirtyUpward(): void;
142
161
  get isDirty(): boolean;
143
162
  getThreeObject(): THREE.Object3D;
163
+ /**
164
+ * Number of visible display meshes this mobject contributes when rendered.
165
+ * Used for Transform eligibility checks without forcing Three.js object creation.
166
+ */
167
+ getDisplayMeshLength(): number;
168
+ getDisplayMeshes(): THREE.Mesh[];
144
169
  protected abstract _createThreeObject(): THREE.Object3D;
145
170
  applyToFamily(func: (mobject: Mobject) => void): this;
146
171
  getFamily(): Mobject[];
@@ -162,6 +187,13 @@ export declare abstract class Mobject {
162
187
  generateTarget(): Mobject;
163
188
  saveState(): this;
164
189
  restoreState(): boolean;
190
+ /**
191
+ * Hook for the Scene to propagate renderer dimensions and camera frame
192
+ * width to mobjects that need them (e.g. shader-resolution uniforms).
193
+ * Default is a no-op; subclasses override as needed.
194
+ * @internal
195
+ */
196
+ _setSceneContext(_rendererWidth: number, _rendererHeight: number, _frameWidth: number): void;
165
197
  dispose(): void;
166
198
  }
167
199
  //# sourceMappingURL=Mobject.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Mobject.d.ts","sourceRoot":"","sources":["../../src/core/Mobject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Mobject.d.ts","sourceRoot":"","sources":["../../src/core/Mobject.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,9 @@
1
- import { MobjectLike, Vector3Tuple } from './MobjectTypes';
1
+ import { MobjectLike, Vector3Tuple, AxisOrOptions } from './MobjectTypes';
2
2
  /**
3
3
  * Rotate a mobject around an axis.
4
4
  * Uses object pooling to avoid allocations in hot paths.
5
5
  */
6
- export declare function rotateMobject(mob: MobjectLike, angle: number, axisOrOptions?: Vector3Tuple | {
7
- axis?: Vector3Tuple;
8
- aboutPoint?: Vector3Tuple;
9
- }): void;
6
+ export declare function rotateMobject(mob: MobjectLike, angle: number, axisOrOptions?: Vector3Tuple | AxisOrOptions): void;
10
7
  /**
11
8
  * Get the center point of a mobject.
12
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MobjectPositioning.d.ts","sourceRoot":"","sources":["../../src/core/MobjectPositioning.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAUhE;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,YAAY,GAAG;IAAE,IAAI,CAAC,EAAE,YAAY,CAAC;IAAC,UAAU,CAAC,EAAE,YAAY,CAAA;CAAE,GAChF,IAAI,CAoBN;AA+GD;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,CAQ5D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAKA;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,GAAG,YAAY,CAU9F;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,IAAI,CAWN"}
1
+ {"version":3,"file":"MobjectPositioning.d.ts","sourceRoot":"","sources":["../../src/core/MobjectPositioning.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAU/E;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,YAAY,GAAG,aAAa,GAC3C,IAAI,CAoBN;AA+GD;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,CAG5D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAKA;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,GAAG,YAAY,CAU9F;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,IAAI,CAWN"}
@@ -3,6 +3,14 @@ import * as THREE from 'three';
3
3
  * Vector3 type as a tuple for external API
4
4
  */
5
5
  export type Vector3Tuple = [number, number, number];
6
+ /**
7
+ * Options for rotation and other operations that can accept an axis or a full options object
8
+ */
9
+ export type AxisOrOptions = {
10
+ axis?: Vector3Tuple;
11
+ aboutPoint?: Vector3Tuple;
12
+ aboutEdge?: Vector3Tuple;
13
+ };
6
14
  export declare const UP: Vector3Tuple;
7
15
  export declare const DOWN: Vector3Tuple;
8
16
  export declare const LEFT: Vector3Tuple;
@@ -49,16 +57,25 @@ export interface MobjectLike {
49
57
  _markDirty(): void;
50
58
  getThreeObject(): THREE.Object3D;
51
59
  getCenter(): Vector3Tuple;
60
+ getBounds(): {
61
+ min: {
62
+ x: number;
63
+ y: number;
64
+ z: number;
65
+ };
66
+ max: {
67
+ x: number;
68
+ y: number;
69
+ z: number;
70
+ };
71
+ };
52
72
  getBoundingBox(): {
53
73
  width: number;
54
74
  height: number;
55
75
  depth: number;
56
76
  };
57
77
  moveTo(target: Vector3Tuple | MobjectLike, alignedEdge?: Vector3Tuple): MobjectLike;
58
- rotate(angle: number, axisOrOptions?: Vector3Tuple | {
59
- axis?: Vector3Tuple;
60
- aboutPoint?: Vector3Tuple;
61
- }): MobjectLike;
78
+ rotate(angle: number, axisOrOptions?: Vector3Tuple | AxisOrOptions): MobjectLike;
62
79
  copy(): MobjectLike;
63
80
  restoreState(): boolean;
64
81
  getFamily(): MobjectLike[];
@@ -1 +1 @@
1
- {"version":3,"file":"MobjectTypes.d.ts","sourceRoot":"","sources":["../../src/core/MobjectTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MobjectTypes.d.ts","sourceRoot":"","sources":["../../src/core/MobjectTypes.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,7 @@ export declare class Renderer implements IRenderer {
52
52
  private _backgroundOpacity;
53
53
  private _alpha;
54
54
  private _contextLost;
55
+ private _autoPixelRatio;
55
56
  /**
56
57
  * Create a new Renderer and append it to the container.
57
58
  * @param container - DOM element to append the canvas to
@@ -95,6 +96,8 @@ export declare class Renderer implements IRenderer {
95
96
  render(scene: THREE.Scene, camera: THREE.Camera): void;
96
97
  /**
97
98
  * Handle resize events.
99
+ * Re-applies the device pixel ratio so DPR changes (e.g. screen rotation
100
+ * moving the canvas between displays) do not leave a blurry buffer.
98
101
  * @param width - New width in pixels
99
102
  * @param height - New height in pixels
100
103
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../src/core/Renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8FAA8F;IAC9F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,SAAS,GAAG,kBAAkB,GAAG,WAAW,CAAC;IAC/D,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2LAA2L;IAC3L,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2FAA2F;IAC3F,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kFAAkF;IAClF,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;IACtC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,SAAS,IAAI,iBAAiB,CAAC;IAC/B,gBAAgB,IAAI,KAAK,CAAC,aAAa,CAAC;IACxC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,qBAAa,QAAS,YAAW,SAAS;IACxC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,YAAY,CAAkB;IAEtC;;;;OAIG;gBAES,SAAS,EAAE,WAAW,EAAE,OAAO,GAAE,eAAoB;IAuDjE;;OAEG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,KAAK,CAAC,KAAK,CAEjC;IAED;;OAEG;IACH,IAAI,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,EAG9C;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED;;;OAGG;IACH,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAUlC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI;IAKtD;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAM3C;;;OAGG;IACH,SAAS,IAAI,iBAAiB;IAI9B;;;OAGG;IACH,gBAAgB,IAAI,KAAK,CAAC,aAAa;IAIvC;;;OAGG;IACH,OAAO,IAAI,IAAI;CAOhB"}
1
+ {"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../src/core/Renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8FAA8F;IAC9F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,SAAS,GAAG,kBAAkB,GAAG,WAAW,CAAC;IAC/D,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2LAA2L;IAC3L,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2FAA2F;IAC3F,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kFAAkF;IAClF,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;IACtC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,SAAS,IAAI,iBAAiB,CAAC;IAC/B,gBAAgB,IAAI,KAAK,CAAC,aAAa,CAAC;IACxC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,qBAAa,QAAS,YAAW,SAAS;IACxC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,YAAY,CAAkB;IAItC,OAAO,CAAC,eAAe,CAAU;IAEjC;;;;OAIG;gBAES,SAAS,EAAE,WAAW,EAAE,OAAO,GAAE,eAAoB;IAwDjE;;OAEG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,KAAK,CAAC,KAAK,CAEjC;IAED;;OAEG;IACH,IAAI,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,EAG9C;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED;;;OAGG;IACH,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAUlC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI;IAKtD;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAW3C;;;OAGG;IACH,SAAS,IAAI,iBAAiB;IAI9B;;;OAGG;IACH,gBAAgB,IAAI,KAAK,CAAC,aAAa;IAIvC;;;OAGG;IACH,OAAO,IAAI,IAAI;CAOhB"}
@@ -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
  */
@@ -272,12 +299,28 @@ export declare class Scene {
272
299
  * can override to also check for ambient camera rotation, etc.
273
300
  */
274
301
  protected _needsPerFrameRendering(): boolean;
302
+ /**
303
+ * Queue a render to run on the next microtask. Multiple calls within the
304
+ * same tick coalesce. If `_cancelPendingRender()` is called or
305
+ * `_suppressAutoRender` is set before the microtask fires, the render is
306
+ * skipped. Used by `add()` so a chained `play()` can suppress the
307
+ * pre-animation flash described in issue #317.
308
+ */
309
+ protected _scheduleRender(): void;
310
+ protected _cancelPendingRender(): void;
275
311
  /**
276
312
  * Render a single frame.
277
313
  * Syncs only dirty mobjects before rendering for performance.
278
314
  * Protected so subclasses (e.g. ZoomedScene) can override for multi-pass rendering.
279
315
  */
280
316
  protected _render(): void;
317
+ /**
318
+ * Render via the attached MultiCamera. Clears the full canvas first so
319
+ * arbitrary viewport layouts (e.g. picture-in-picture) don't leak stale
320
+ * pixels, and restores renderer state via try/finally even if a camera
321
+ * render throws.
322
+ */
323
+ protected _renderMultiCamera(): void;
281
324
  /**
282
325
  * Sync only mobjects that have been modified (dirty flag optimization).
283
326
  */
@@ -350,6 +393,13 @@ export declare class Scene {
350
393
  * @param height - New height in pixels
351
394
  */
352
395
  resize(width: number, height: number): this;
396
+ /**
397
+ * Install ResizeObserver on the container and a window resize/orientation
398
+ * fallback. All triggers funnel through a single rAF-debounced measurement
399
+ * so a rotation that fires multiple events resizes once per frame.
400
+ */
401
+ private _installAutoResize;
402
+ private _disposeAutoResize;
353
403
  /**
354
404
  * Get the canvas element.
355
405
  * @returns The HTMLCanvasElement used for rendering
@@ -1 +1 @@
1
- {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../../src/core/Scene.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA6B,SAAS,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAiB,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAErF;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yIAAyI;IACzI,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,kBAAkB,CAA+C;IACzE,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,mBAAmB,CAA6B;IACxD,SAAS,CAAC,SAAS,EAAE,OAAO,CAAS;IACrC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAM;IAGhD,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,gBAAgB,CAAqB;IAG7C,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,iBAAiB,CAAsC;IAG/D,OAAO,CAAC,MAAM,CAAC,SAAS,CAAgC;IAGxD,SAAS,CAAC,WAAW,EAAE,OAAO,CAAQ;IAGtC,OAAO,CAAC,mBAAmB,CAAa;IAGxC,OAAO,CAAC,aAAa,CAAoB;IAGzC,OAAO,CAAC,aAAa,CAA6B;IAElD;;;;OAIG;gBACS,SAAS,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,GAAE,YAAiB;IA0ErE;;OAEG;IACH,IAAI,UAAU,IAAI,KAAK,CAAC,KAAK,CAE5B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,QAAQ,CAErB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,SAAS,CAExB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,GAAE,YAAiB,GAAG,KAAK;IAIxD;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAE9B;IAED;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAI5C;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;OAGG;IACH,SAAS,KAAK,cAAc,IAAI,OAAO,CAEtC;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAC,CAEnC;IAMD;;;OAGG;IACH,IAAI,YAAY,IAAI,YAAY,CAK/B;IAED;;;;;;;;;;;;;OAaG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAI3E;;;;;;;;;;;;;;OAcG;IACG,mBAAmB,CACvB,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAChE,OAAO,CAAC,UAAU,CAAC;IAItB;;;;OAIG;IACH,oBAAoB,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAmBlD;;;OAGG;IACH,GAAG,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAyCjC;;;OAGG;IACH,MAAM,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAkBpC;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAajC;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAa,EAAE,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAqBzD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;;;;;OAMG;IACG,IAAI,CAAC,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmFrD;;;;;OAKG;IACG,OAAO,CAAC,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;;;;OAKG;IACG,IAAI,CAAC,QAAQ,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA4F/C;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAYxB;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb;;OAEG;IACH,MAAM,IAAI,IAAI;IAYd;;OAEG;IACH,IAAI,IAAI,IAAI;IAaZ;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IA6B1B;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAO5C;;;;OAIG;IACH,SAAS,CAAC,OAAO,IAAI,IAAI;IAczB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,OAAO;IAsBzC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAatB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAsBlB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAsExB;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAYjC;;;OAGG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM/B;;;OAGG;IACH,YAAY,IAAI,MAAM;IAItB;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKzC;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAc3C;;;OAGG;IACH,SAAS,IAAI,iBAAiB;IAI9B;;;;OAIG;IACH,YAAY,IAAI,WAAW;IAa3B;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;OAGG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED;;;OAGG;IACH,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAElC;IAED;;;OAGG;IACH,mBAAmB,IAAI,MAAM;IAQ7B;;OAEG;IACH,IAAI,YAAY,IAAI,iBAAiB,CAEpC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa;IAIxC;;;;;OAKG;IACH,IAAI,IAAI,OAAO;IAQf;;;;;OAKG;IACH,IAAI,IAAI,OAAO;IAQf;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa;IAIvC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAOvC;;;OAGG;IACH,MAAM,IAAI,IAAI;IAQd;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IAEG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8C3E;;OAEG;IACH,OAAO,IAAI,IAAI;CAsChB"}
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"}