manim-web 0.3.24 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/README.md +5 -1
  2. package/dist/GLTFLoader-CisHz7tR.js +1381 -0
  3. package/dist/GLTFLoader-DMbWuMln.js +1381 -0
  4. package/dist/{MathJaxBundle-xSidSV0E.js → MathJaxBundle-BSrlS0Dh.js} +3338 -3320
  5. package/dist/OBJLoader-Clh2POv9.js +287 -0
  6. package/dist/OBJLoader-kkTsEhJf.js +287 -0
  7. package/dist/animation/Always.d.ts +72 -0
  8. package/dist/animation/Always.d.ts.map +1 -0
  9. package/dist/animation/AlwaysRedraw.d.ts +15 -0
  10. package/dist/animation/AlwaysRedraw.d.ts.map +1 -0
  11. package/dist/animation/Animation.d.ts +9 -0
  12. package/dist/animation/Animation.d.ts.map +1 -1
  13. package/dist/animation/AnimationUtilities.d.ts +25 -0
  14. package/dist/animation/AnimationUtilities.d.ts.map +1 -1
  15. package/dist/animation/creation/Create.d.ts +40 -11
  16. package/dist/animation/creation/Create.d.ts.map +1 -1
  17. package/dist/animation/transform/PointMorphStrategy.d.ts +6 -0
  18. package/dist/animation/transform/PointMorphStrategy.d.ts.map +1 -1
  19. package/dist/animation/transform/Transform.d.ts.map +1 -1
  20. package/dist/animation/transform/TransformPairing.d.ts +17 -0
  21. package/dist/animation/transform/TransformPairing.d.ts.map +1 -1
  22. package/dist/animation/updaters.d.ts +69 -0
  23. package/dist/animation/updaters.d.ts.map +1 -0
  24. package/dist/compiler-CfW6eH2M.js +2 -0
  25. package/dist/constants/index.d.ts +1 -0
  26. package/dist/constants/index.d.ts.map +1 -1
  27. package/dist/constants/parity.d.ts +78 -0
  28. package/dist/constants/parity.d.ts.map +1 -0
  29. package/dist/core/Mobject.d.ts +48 -3
  30. package/dist/core/Mobject.d.ts.map +1 -1
  31. package/dist/core/MobjectTraversal.d.ts +7 -0
  32. package/dist/core/MobjectTraversal.d.ts.map +1 -1
  33. package/dist/core/MobjectTypes.d.ts +15 -0
  34. package/dist/core/MobjectTypes.d.ts.map +1 -1
  35. package/dist/core/Scene.d.ts +14 -0
  36. package/dist/core/Scene.d.ts.map +1 -1
  37. package/dist/core/SpecialThreeDScene.d.ts +64 -0
  38. package/dist/core/SpecialThreeDScene.d.ts.map +1 -0
  39. package/dist/core/VMobject.d.ts +143 -0
  40. package/dist/core/VMobject.d.ts.map +1 -1
  41. package/dist/core/VMobjectColorGradient.d.ts +20 -0
  42. package/dist/core/VMobjectColorGradient.d.ts.map +1 -0
  43. package/dist/core/VMobjectCurveMath.d.ts +128 -0
  44. package/dist/core/VMobjectCurveMath.d.ts.map +1 -0
  45. package/dist/core/VMobjectRendering.d.ts +38 -1
  46. package/dist/core/VMobjectRendering.d.ts.map +1 -1
  47. package/dist/core/VMobjectRoundCorners.d.ts +37 -0
  48. package/dist/core/VMobjectRoundCorners.d.ts.map +1 -0
  49. package/dist/esm-CiMKSfxz.js +1273 -0
  50. package/dist/export/FrameExporter.d.ts +86 -0
  51. package/dist/export/FrameExporter.d.ts.map +1 -0
  52. package/dist/export/GifExporter.d.ts +4 -0
  53. package/dist/export/GifExporter.d.ts.map +1 -1
  54. package/dist/export/WebCodecsExporter.d.ts +108 -0
  55. package/dist/export/WebCodecsExporter.d.ts.map +1 -0
  56. package/dist/export/index.d.ts +2 -0
  57. package/dist/export/index.d.ts.map +1 -1
  58. package/dist/global-compiler-D_nF-JaV.js +8 -0
  59. package/dist/global-renderer-gyshX_QF.js +8 -0
  60. package/dist/index.d.ts +29 -4
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +3 -2
  63. package/dist/integrations/react.js +17 -16
  64. package/dist/integrations/vue.js +16 -15
  65. package/dist/integrations/webcomponent.d.ts +65 -0
  66. package/dist/integrations/webcomponent.d.ts.map +1 -0
  67. package/dist/integrations/webcomponent.js +2 -0
  68. package/dist/manim-web.browser.js +36877 -45066
  69. package/dist/mobjects/geometry/AngleShapes.d.ts.map +1 -1
  70. package/dist/mobjects/geometry/ArcPolygon.d.ts +30 -0
  71. package/dist/mobjects/geometry/ArcPolygon.d.ts.map +1 -1
  72. package/dist/mobjects/geometry/DashedLine.d.ts.map +1 -1
  73. package/dist/mobjects/geometry/Label.d.ts +32 -0
  74. package/dist/mobjects/geometry/Label.d.ts.map +1 -0
  75. package/dist/mobjects/geometry/index.d.ts +2 -1
  76. package/dist/mobjects/geometry/index.d.ts.map +1 -1
  77. package/dist/mobjects/graphing/Axes.d.ts +73 -6
  78. package/dist/mobjects/graphing/Axes.d.ts.map +1 -1
  79. package/dist/mobjects/graphing/CoordinateSystem.d.ts +40 -0
  80. package/dist/mobjects/graphing/CoordinateSystem.d.ts.map +1 -0
  81. package/dist/mobjects/graphing/axes-calculus.d.ts +79 -0
  82. package/dist/mobjects/graphing/axes-calculus.d.ts.map +1 -0
  83. package/dist/mobjects/graphing/index.d.ts +3 -0
  84. package/dist/mobjects/graphing/index.d.ts.map +1 -1
  85. package/dist/mobjects/graphing/scale.d.ts +72 -0
  86. package/dist/mobjects/graphing/scale.d.ts.map +1 -0
  87. package/dist/mobjects/text/MathJaxRenderer.d.ts +5 -0
  88. package/dist/mobjects/text/MathJaxRenderer.d.ts.map +1 -1
  89. package/dist/mobjects/text/MathTex.d.ts +23 -0
  90. package/dist/mobjects/text/MathTex.d.ts.map +1 -1
  91. package/dist/mobjects/text/MathTexImage.d.ts.map +1 -1
  92. package/dist/mobjects/text/Text.d.ts +53 -0
  93. package/dist/mobjects/text/Text.d.ts.map +1 -1
  94. package/dist/mobjects/text/Typst.d.ts +113 -0
  95. package/dist/mobjects/text/Typst.d.ts.map +1 -0
  96. package/dist/mobjects/text/TypstRenderer.d.ts +57 -0
  97. package/dist/mobjects/text/TypstRenderer.d.ts.map +1 -0
  98. package/dist/mobjects/text/index.d.ts +5 -2
  99. package/dist/mobjects/text/index.d.ts.map +1 -1
  100. package/dist/mobjects/text/katexStyles.d.ts +5 -0
  101. package/dist/mobjects/text/katexStyles.d.ts.map +1 -1
  102. package/dist/mobjects/text/registerFont.d.ts +38 -0
  103. package/dist/mobjects/text/registerFont.d.ts.map +1 -0
  104. package/dist/mobjects/text/textStyleRuns.d.ts +111 -0
  105. package/dist/mobjects/text/textStyleRuns.d.ts.map +1 -0
  106. package/dist/mobjects/three-d/ModelMobject.d.ts +122 -0
  107. package/dist/mobjects/three-d/ModelMobject.d.ts.map +1 -0
  108. package/dist/mobjects/three-d/ThreeDAxes.d.ts +37 -4
  109. package/dist/mobjects/three-d/ThreeDAxes.d.ts.map +1 -1
  110. package/dist/mobjects/three-d/threeDVmobUtils.d.ts +25 -0
  111. package/dist/mobjects/three-d/threeDVmobUtils.d.ts.map +1 -0
  112. package/dist/mobjects/video/VideoMobject.d.ts +126 -0
  113. package/dist/mobjects/video/VideoMobject.d.ts.map +1 -0
  114. package/dist/mobjects/video/index.d.ts +2 -0
  115. package/dist/mobjects/video/index.d.ts.map +1 -0
  116. package/dist/mp4-muxer-5DGKGEJk.js +900 -0
  117. package/dist/player/Player.d.ts +4 -0
  118. package/dist/player/Player.d.ts.map +1 -1
  119. package/dist/renderer-DR_79fB0.js +2 -0
  120. package/dist/{src-Cc3xTIkV.js → src-C817VR8M.js} +10693 -7971
  121. package/dist/three.core-1aHSpGwp.js +11626 -0
  122. package/dist/utils/ManimColor.d.ts +163 -0
  123. package/dist/utils/ManimColor.d.ts.map +1 -0
  124. package/dist/utils/bezier.d.ts +95 -0
  125. package/dist/utils/bezier.d.ts.map +1 -0
  126. package/dist/utils/color.d.ts +99 -0
  127. package/dist/utils/color.d.ts.map +1 -0
  128. package/dist/utils/debug.d.ts +36 -0
  129. package/dist/utils/debug.d.ts.map +1 -0
  130. package/dist/utils/iterables.d.ts +162 -0
  131. package/dist/utils/iterables.d.ts.map +1 -0
  132. package/dist/utils/paths.d.ts +38 -0
  133. package/dist/utils/paths.d.ts.map +1 -0
  134. package/dist/utils/simpleFunctions.d.ts +26 -0
  135. package/dist/utils/simpleFunctions.d.ts.map +1 -0
  136. package/dist/utils/spaceOps.d.ts +119 -0
  137. package/dist/utils/spaceOps.d.ts.map +1 -0
  138. package/dist/utils/unit.d.ts +28 -0
  139. package/dist/utils/unit.d.ts.map +1 -0
  140. package/dist/wasm-CIlzm7By.js +76 -0
  141. package/dist/wasm-pack-shim-B3C4KoWa.js +1688 -0
  142. package/dist/wasm-pack-shim-BgTFpSvJ.js +911 -0
  143. package/dist/webcomponent-BS5WnkDO.js +707 -0
  144. package/dist/webm-muxer-BGY-Mgbp.js +857 -0
  145. package/package.json +19 -8
@@ -12,6 +12,22 @@ export interface ThreeDAxesOptions {
12
12
  yRange?: [number, number, number];
13
13
  /** Z-axis range as [min, max, step]. Default: [-4, 4, 1] */
14
14
  zRange?: [number, number, number];
15
+ /**
16
+ * Visual length of the x-axis in scene units, independent of xRange.
17
+ * When omitted, defaults to the x-range span (xMax - xMin), so the axis
18
+ * keeps a 1:1 range-to-visual mapping (unchanged default behavior).
19
+ */
20
+ xLength?: number;
21
+ /**
22
+ * Visual length of the y-axis in scene units, independent of yRange.
23
+ * When omitted, defaults to the y-range span (yMax - yMin).
24
+ */
25
+ yLength?: number;
26
+ /**
27
+ * Visual length of the z-axis in scene units, independent of zRange.
28
+ * When omitted, defaults to the z-range span (zMax - zMin).
29
+ */
30
+ zLength?: number;
15
31
  /** Default color for all axes. Default: '#ffffff' */
16
32
  axisColor?: string;
17
33
  /** Color for x-axis (overrides axisColor). Default: same as axisColor */
@@ -85,6 +101,12 @@ export declare class ThreeDAxes extends Group {
85
101
  private _xRange;
86
102
  private _yRange;
87
103
  private _zRange;
104
+ private _xLength;
105
+ private _yLength;
106
+ private _zLength;
107
+ private _xScale;
108
+ private _yScale;
109
+ private _zScale;
88
110
  private _showTicks;
89
111
  private _tickLength;
90
112
  private _ticks;
@@ -99,6 +121,12 @@ export declare class ThreeDAxes extends Group {
99
121
  private _labelOptions;
100
122
  constructor(options?: ThreeDAxesOptions);
101
123
  private _initRanges;
124
+ /**
125
+ * Resolve each axis visual length and its range-to-visual scale factor.
126
+ * When a length option is omitted, it defaults to the range span, which
127
+ * gives scale 1 and keeps the historical 1:1 mapping unchanged.
128
+ */
129
+ private _initLengths;
102
130
  private _initTickConfig;
103
131
  private _initLabelConfig;
104
132
  private _resolveAxisColors;
@@ -147,7 +175,9 @@ export declare class ThreeDAxes extends Group {
147
175
  private _buildLabel;
148
176
  /**
149
177
  * Convert graph coordinates to visual point coordinates (scene space).
150
- * With unit_size=1, graph coordinates map directly to visual positions.
178
+ * Each graph coordinate is multiplied by its axis scale (length / span)
179
+ * before the axes' position offset is applied. With default lengths the
180
+ * scale is 1, so graph coordinates map directly to visual positions.
151
181
  */
152
182
  coordsToPoint(x: number, y: number, z: number): Vector3Tuple;
153
183
  /**
@@ -187,15 +217,18 @@ export declare class ThreeDAxes extends Group {
187
217
  */
188
218
  getZRange(): [number, number, number];
189
219
  /**
190
- * Get the visual X length (range span)
220
+ * Get the visual X length in scene units. Equals the configured xLength,
221
+ * or the x-range span when xLength was omitted.
191
222
  */
192
223
  getXLength(): number;
193
224
  /**
194
- * Get the visual Y length (range span)
225
+ * Get the visual Y length in scene units. Equals the configured yLength,
226
+ * or the y-range span when yLength was omitted.
195
227
  */
196
228
  getYLength(): number;
197
229
  /**
198
- * Get the visual Z length (range span)
230
+ * Get the visual Z length in scene units. Equals the configured zLength,
231
+ * or the z-range span when zLength was omitted.
199
232
  */
200
233
  getZLength(): number;
201
234
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ThreeDAxes.d.ts","sourceRoot":"","sources":["../../../src/mobjects/three-d/ThreeDAxes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2GAA2G;IAC3G,MAAM,CAAC,EAAE;QACP,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACrB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACrB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;IACF,8FAA8F;IAC9F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,UAAU,CAAW;IAC7B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,gBAAgB,CAAW;IACnC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,aAAa,CAA8B;gBAEvC,OAAO,GAAE,iBAAsB;IA0C3C,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,eAAe;IASvB;;;;OAIG;IAEH;;OAEG;IACH,OAAO,CAAC,YAAY;IAiDpB;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,aAAa;IAqCrB;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;;OAGG;IACH,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY;IAI5D;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY;IAIlD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY;IAOhD;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY;IAItC;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAIrC;;OAEG;IACH,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAIrC;;OAEG;IACH,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAIrC;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,SAAS,IAAI,YAAY;IAIzB;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAIvB;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAIvB;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAIvB;;;;;;;;;;;;;;OAcG;IACH,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,GAAE,MAAa,GAAG,IAAI;IA8CxE;;OAEG;IACH,SAAS,IAAI,OAAO,GAAG,IAAI;IAI3B;;OAEG;IACH,SAAS,IAAI,OAAO,GAAG,IAAI;IAI3B;;OAEG;IACH,SAAS,IAAI,OAAO,GAAG,IAAI;IAI3B;;;;;;;;;;;OAWG;IACH,aAAa,CACX,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,EACzB,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,EACzB,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GACxB,KAAK;IAUR,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,qBAAqB;IAU7B;;OAEG;IACM,IAAI,IAAI,UAAU;CAgB5B"}
1
+ {"version":3,"file":"ThreeDAxes.d.ts","sourceRoot":"","sources":["../../../src/mobjects/three-d/ThreeDAxes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { Vector3Tuple } from '../../core/MobjectTypes';
2
+ import { VMobject } from '../../core/VMobject';
3
+ /**
4
+ * The gradient start and end points, used by the 3D camera to shade a VMobject.
5
+ * Port of CE `get_3d_vmob_gradient_start_and_end_points`.
6
+ */
7
+ export declare function get3dVmobGradientStartAndEndPoints(vmob: VMobject): [Vector3Tuple, Vector3Tuple];
8
+ /** Index of the start corner (always 0). Port of CE `get_3d_vmob_start_corner_index`. */
9
+ export declare function get3dVmobStartCornerIndex(_vmob: VMobject): number;
10
+ /** Index of the end corner. Port of CE `get_3d_vmob_end_corner_index`. */
11
+ export declare function get3dVmobEndCornerIndex(vmob: VMobject): number;
12
+ /** The start corner point. Port of CE `get_3d_vmob_start_corner`. */
13
+ export declare function get3dVmobStartCorner(vmob: VMobject): Vector3Tuple;
14
+ /** The end corner point. Port of CE `get_3d_vmob_end_corner`. */
15
+ export declare function get3dVmobEndCorner(vmob: VMobject): Vector3Tuple;
16
+ /**
17
+ * The unit normal of the VMobject's surface at the given point index.
18
+ * Port of CE `get_3d_vmob_unit_normal`.
19
+ */
20
+ export declare function get3dVmobUnitNormal(vmob: VMobject, pointIndex: number): Vector3Tuple;
21
+ /** The unit normal at the start corner. Port of CE `get_3d_vmob_start_corner_unit_normal`. */
22
+ export declare function get3dVmobStartCornerUnitNormal(vmob: VMobject): Vector3Tuple;
23
+ /** The unit normal at the end corner. Port of CE `get_3d_vmob_end_corner_unit_normal`. */
24
+ export declare function get3dVmobEndCornerUnitNormal(vmob: VMobject): Vector3Tuple;
25
+ //# sourceMappingURL=threeDVmobUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threeDVmobUtils.d.ts","sourceRoot":"","sources":["../../../src/mobjects/three-d/threeDVmobUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAiBpD;;;GAGG;AACH,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAE/F;AAED,yFAAyF;AACzF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAEjE;AAED,0EAA0E;AAC1E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAE9D;AAED,qEAAqE;AACrE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAMjE;AAED,iEAAiE;AACjE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAM/D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAiBpF;AAED,8FAA8F;AAC9F,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAE3E;AAED,0FAA0F;AAC1F,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAEzE"}
@@ -0,0 +1,126 @@
1
+ import { Vector3Tuple } from '../../core/Mobject';
2
+ import { TexturedMobject } from '../../core/TexturedMobject';
3
+ import * as THREE from 'three';
4
+ /**
5
+ * Options for creating a VideoMobject.
6
+ */
7
+ export interface VideoMobjectOptions {
8
+ /** Video source URL. Required. */
9
+ src: string;
10
+ /** Loop playback when it reaches the end. Default: false */
11
+ loop?: boolean;
12
+ /** Mute the audio track. Default: true (needed for browser autoplay policies) */
13
+ muted?: boolean;
14
+ /** Start playing as soon as data is available. Default: false */
15
+ autoplay?: boolean;
16
+ /** Playback speed multiplier (1 = normal). Default: 1 */
17
+ playbackRate?: number;
18
+ /** Width of the video in scene units. Default: auto from aspect ratio */
19
+ width?: number;
20
+ /** Height of the video in scene units. Default: auto from aspect ratio */
21
+ height?: number;
22
+ /** If both width and height given, fit inside the box preserving aspect. Default: true */
23
+ scaleToFit?: boolean;
24
+ /** Center position [x, y, z]. Default: [0, 0, 0] */
25
+ center?: Vector3Tuple;
26
+ /** Opacity from 0 to 1. Default: 1 */
27
+ opacity?: number;
28
+ /** Render both sides of the plane. Default: false */
29
+ doubleSided?: boolean;
30
+ /** crossOrigin attribute for the video element. Default: 'anonymous' */
31
+ crossOrigin?: string | null;
32
+ }
33
+ /**
34
+ * VideoMobject - display an HTML `<video>` as a movable, scalable mobject.
35
+ *
36
+ * The video is drawn onto a `THREE.PlaneGeometry` through a
37
+ * `THREE.VideoTexture`, mirroring how {@link ImageMobject} draws images. It
38
+ * therefore participates in the standard mobject transforms (shift, scale,
39
+ * rotate), z-index/depth, opacity, and `scene.add`.
40
+ *
41
+ * Playback follows the DOM video clock during normal play. When the Player
42
+ * scrubs or seeks, call {@link syncToTime} so the displayed frame follows the
43
+ * scene time.
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * const clip = new VideoMobject({ src: 'intro.mp4', width: 6, loop: true });
48
+ * scene.add(clip);
49
+ * await clip.waitForLoad();
50
+ * clip.play();
51
+ * ```
52
+ */
53
+ export declare class VideoMobject extends TexturedMobject {
54
+ protected _source: string;
55
+ protected _loop: boolean;
56
+ protected _muted: boolean;
57
+ protected _autoplay: boolean;
58
+ protected _playbackRate: number;
59
+ protected _width: number | undefined;
60
+ protected _height: number | undefined;
61
+ protected _scaleToFit: boolean;
62
+ protected _centerPoint: Vector3Tuple;
63
+ protected _doubleSided: boolean;
64
+ protected _crossOrigin: string | null;
65
+ protected _video: HTMLVideoElement | null;
66
+ protected _texture: THREE.VideoTexture | null;
67
+ protected _videoLoaded: boolean;
68
+ protected _loadError: Error | null;
69
+ protected _naturalWidth: number;
70
+ protected _naturalHeight: number;
71
+ private _mesh;
72
+ private _loadPromise;
73
+ private _loadResolve;
74
+ private _loadReject;
75
+ constructor(options: VideoMobjectOptions);
76
+ /**
77
+ * Create the DOM video element and its VideoTexture. Node/SSR-safe: when
78
+ * `document` is missing, the load fails gracefully instead of throwing.
79
+ */
80
+ private _createVideo;
81
+ /** Record a load error and reject the ready promise once. */
82
+ private _failLoad;
83
+ /** Promise that resolves on `loadeddata` and rejects on load error. */
84
+ waitForLoad(): Promise<void>;
85
+ /** The captured load error, or null when no error occurred. */
86
+ getLoadError(): Error | null;
87
+ /** Whether the first frame of video data is available. */
88
+ isLoaded(): boolean;
89
+ /** The video source URL. */
90
+ getSource(): string;
91
+ /** Start (or resume) playback. Silently ignores autoplay rejections. */
92
+ play(): this;
93
+ /** Pause playback. */
94
+ pause(): this;
95
+ /** Seek the video to an absolute time in seconds, clamped to [0, duration]. */
96
+ seek(seconds: number): this;
97
+ /** Set the playback speed multiplier. */
98
+ setPlaybackRate(rate: number): this;
99
+ /** Duration of the video in seconds (NaN until metadata loads). */
100
+ get duration(): number;
101
+ /**
102
+ * Follow the Player clock: show the frame at `sceneTime`. Use this on scrub
103
+ * and seek so the displayed frame tracks the timeline position.
104
+ */
105
+ syncToTime(sceneTime: number): this;
106
+ /** Clamp a time to [0, duration]; duration may be NaN before metadata loads. */
107
+ private _clampTime;
108
+ /** Display dimensions from width/height options and the natural size. */
109
+ private _calculateDimensions;
110
+ protected _createThreeObject(): THREE.Object3D;
111
+ getDisplayMeshLength(): number;
112
+ getDisplayMeshes(): THREE.Mesh[];
113
+ applyTextureFrom(other: TexturedMobject): void;
114
+ applyVisualSize(width: number, height: number): void;
115
+ applyContentFrom(other: TexturedMobject): void;
116
+ protected _updateGeometry(): void;
117
+ protected _syncMaterialToThree(): void;
118
+ getBoundingBox(): {
119
+ width: number;
120
+ height: number;
121
+ depth: number;
122
+ };
123
+ copy(): VideoMobject;
124
+ dispose(): void;
125
+ }
126
+ //# sourceMappingURL=VideoMobject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoMobject.d.ts","sourceRoot":"","sources":["../../../src/mobjects/video/VideoMobject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { VideoMobject, type VideoMobjectOptions } from './VideoMobject';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mobjects/video/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}