manim-web 0.2.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 (356) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/dist/animation/Animation.d.ts +69 -0
  4. package/dist/animation/Animation.d.ts.map +1 -0
  5. package/dist/animation/AnimationGroup.d.ts +48 -0
  6. package/dist/animation/AnimationGroup.d.ts.map +1 -0
  7. package/dist/animation/LaggedStart.d.ts +25 -0
  8. package/dist/animation/LaggedStart.d.ts.map +1 -0
  9. package/dist/animation/MaintainPositionRelativeTo.d.ts +23 -0
  10. package/dist/animation/MaintainPositionRelativeTo.d.ts.map +1 -0
  11. package/dist/animation/Succession.d.ts +19 -0
  12. package/dist/animation/Succession.d.ts.map +1 -0
  13. package/dist/animation/Timeline.d.ts +89 -0
  14. package/dist/animation/Timeline.d.ts.map +1 -0
  15. package/dist/animation/UpdateFromAlphaFunc.d.ts +32 -0
  16. package/dist/animation/UpdateFromAlphaFunc.d.ts.map +1 -0
  17. package/dist/animation/UpdateFromFunc.d.ts +30 -0
  18. package/dist/animation/UpdateFromFunc.d.ts.map +1 -0
  19. package/dist/animation/changing/index.d.ts +213 -0
  20. package/dist/animation/changing/index.d.ts.map +1 -0
  21. package/dist/animation/composition/LaggedStartMap.d.ts +47 -0
  22. package/dist/animation/composition/LaggedStartMap.d.ts.map +1 -0
  23. package/dist/animation/composition/index.d.ts +5 -0
  24. package/dist/animation/composition/index.d.ts.map +1 -0
  25. package/dist/animation/creation/Create.d.ts +232 -0
  26. package/dist/animation/creation/Create.d.ts.map +1 -0
  27. package/dist/animation/creation/CreationExtensions.d.ts +127 -0
  28. package/dist/animation/creation/CreationExtensions.d.ts.map +1 -0
  29. package/dist/animation/creation/TypeWithCursor.d.ts +133 -0
  30. package/dist/animation/creation/TypeWithCursor.d.ts.map +1 -0
  31. package/dist/animation/creation/index.d.ts +4 -0
  32. package/dist/animation/creation/index.d.ts.map +1 -0
  33. package/dist/animation/fading/FadeIn.d.ts +31 -0
  34. package/dist/animation/fading/FadeIn.d.ts.map +1 -0
  35. package/dist/animation/fading/FadeOut.d.ts +32 -0
  36. package/dist/animation/fading/FadeOut.d.ts.map +1 -0
  37. package/dist/animation/fading/index.d.ts +3 -0
  38. package/dist/animation/fading/index.d.ts.map +1 -0
  39. package/dist/animation/growing/index.d.ts +103 -0
  40. package/dist/animation/growing/index.d.ts.map +1 -0
  41. package/dist/animation/index.d.ts +20 -0
  42. package/dist/animation/index.d.ts.map +1 -0
  43. package/dist/animation/indication/ApplyWave.d.ts +51 -0
  44. package/dist/animation/indication/ApplyWave.d.ts.map +1 -0
  45. package/dist/animation/indication/Blink.d.ts +34 -0
  46. package/dist/animation/indication/Blink.d.ts.map +1 -0
  47. package/dist/animation/indication/Circumscribe.d.ts +54 -0
  48. package/dist/animation/indication/Circumscribe.d.ts.map +1 -0
  49. package/dist/animation/indication/Flash.d.ts +45 -0
  50. package/dist/animation/indication/Flash.d.ts.map +1 -0
  51. package/dist/animation/indication/FocusOn.d.ts +79 -0
  52. package/dist/animation/indication/FocusOn.d.ts.map +1 -0
  53. package/dist/animation/indication/Indicate.d.ts +30 -0
  54. package/dist/animation/indication/Indicate.d.ts.map +1 -0
  55. package/dist/animation/indication/ShowCreationThenDestruction.d.ts +26 -0
  56. package/dist/animation/indication/ShowCreationThenDestruction.d.ts.map +1 -0
  57. package/dist/animation/indication/ShowPassingFlash.d.ts +47 -0
  58. package/dist/animation/indication/ShowPassingFlash.d.ts.map +1 -0
  59. package/dist/animation/indication/ShowPassingFlashWithThinningStrokeWidth.d.ts +21 -0
  60. package/dist/animation/indication/ShowPassingFlashWithThinningStrokeWidth.d.ts.map +1 -0
  61. package/dist/animation/indication/Wiggle.d.ts +48 -0
  62. package/dist/animation/indication/Wiggle.d.ts.map +1 -0
  63. package/dist/animation/indication/WiggleOutThenIn.d.ts +44 -0
  64. package/dist/animation/indication/WiggleOutThenIn.d.ts.map +1 -0
  65. package/dist/animation/indication/index.d.ts +20 -0
  66. package/dist/animation/indication/index.d.ts.map +1 -0
  67. package/dist/animation/movement/Homotopy.d.ts +204 -0
  68. package/dist/animation/movement/Homotopy.d.ts.map +1 -0
  69. package/dist/animation/movement/MoveAlongPath.d.ts +48 -0
  70. package/dist/animation/movement/MoveAlongPath.d.ts.map +1 -0
  71. package/dist/animation/movement/Rotate.d.ts +47 -0
  72. package/dist/animation/movement/Rotate.d.ts.map +1 -0
  73. package/dist/animation/movement/Scale.d.ts +74 -0
  74. package/dist/animation/movement/Scale.d.ts.map +1 -0
  75. package/dist/animation/movement/Shift.d.ts +74 -0
  76. package/dist/animation/movement/Shift.d.ts.map +1 -0
  77. package/dist/animation/movement/index.d.ts +6 -0
  78. package/dist/animation/movement/index.d.ts.map +1 -0
  79. package/dist/animation/numbers/index.d.ts +152 -0
  80. package/dist/animation/numbers/index.d.ts.map +1 -0
  81. package/dist/animation/speed/index.d.ts +114 -0
  82. package/dist/animation/speed/index.d.ts.map +1 -0
  83. package/dist/animation/transform/ApplyPointwiseFunction.d.ts +23 -0
  84. package/dist/animation/transform/ApplyPointwiseFunction.d.ts.map +1 -0
  85. package/dist/animation/transform/Transform.d.ts +89 -0
  86. package/dist/animation/transform/Transform.d.ts.map +1 -0
  87. package/dist/animation/transform/TransformExtensions.d.ts +444 -0
  88. package/dist/animation/transform/TransformExtensions.d.ts.map +1 -0
  89. package/dist/animation/transform/TransformMatching.d.ts +138 -0
  90. package/dist/animation/transform/TransformMatching.d.ts.map +1 -0
  91. package/dist/animation/transform/index.d.ts +5 -0
  92. package/dist/animation/transform/index.d.ts.map +1 -0
  93. package/dist/animation/utility/index.d.ts +171 -0
  94. package/dist/animation/utility/index.d.ts.map +1 -0
  95. package/dist/constants/colors.d.ts +72 -0
  96. package/dist/constants/colors.d.ts.map +1 -0
  97. package/dist/constants/colors.test.d.ts +2 -0
  98. package/dist/constants/colors.test.d.ts.map +1 -0
  99. package/dist/constants/directions.test.d.ts +2 -0
  100. package/dist/constants/directions.test.d.ts.map +1 -0
  101. package/dist/constants/index.d.ts +16 -0
  102. package/dist/constants/index.d.ts.map +1 -0
  103. package/dist/core/AudioManager.d.ts +203 -0
  104. package/dist/core/AudioManager.d.ts.map +1 -0
  105. package/dist/core/Camera.d.ts +172 -0
  106. package/dist/core/Camera.d.ts.map +1 -0
  107. package/dist/core/Camera2DFrame.d.ts +31 -0
  108. package/dist/core/Camera2DFrame.d.ts.map +1 -0
  109. package/dist/core/CameraExtensions.d.ts +420 -0
  110. package/dist/core/CameraExtensions.d.ts.map +1 -0
  111. package/dist/core/CameraFrame.d.ts +178 -0
  112. package/dist/core/CameraFrame.d.ts.map +1 -0
  113. package/dist/core/Group.d.ts +139 -0
  114. package/dist/core/Group.d.ts.map +1 -0
  115. package/dist/core/InteractiveScene.d.ts +122 -0
  116. package/dist/core/InteractiveScene.d.ts.map +1 -0
  117. package/dist/core/Lighting.d.ts +128 -0
  118. package/dist/core/Lighting.d.ts.map +1 -0
  119. package/dist/core/Mobject.d.ts +488 -0
  120. package/dist/core/Mobject.d.ts.map +1 -0
  121. package/dist/core/Renderer.d.ts +84 -0
  122. package/dist/core/Renderer.d.ts.map +1 -0
  123. package/dist/core/Scene.d.ts +353 -0
  124. package/dist/core/Scene.d.ts.map +1 -0
  125. package/dist/core/SceneExtensions.d.ts +640 -0
  126. package/dist/core/SceneExtensions.d.ts.map +1 -0
  127. package/dist/core/SceneExtensions.test.d.ts +2 -0
  128. package/dist/core/SceneExtensions.test.d.ts.map +1 -0
  129. package/dist/core/StateManager.d.ts +193 -0
  130. package/dist/core/StateManager.d.ts.map +1 -0
  131. package/dist/core/VDict.d.ts +229 -0
  132. package/dist/core/VDict.d.ts.map +1 -0
  133. package/dist/core/VGroup.d.ts +200 -0
  134. package/dist/core/VGroup.d.ts.map +1 -0
  135. package/dist/core/VMobject.d.ts +419 -0
  136. package/dist/core/VMobject.d.ts.map +1 -0
  137. package/dist/core/index.d.ts +16 -0
  138. package/dist/core/index.d.ts.map +1 -0
  139. package/dist/examples.test.d.ts +2 -0
  140. package/dist/examples.test.d.ts.map +1 -0
  141. package/dist/export/GifExporter.d.ts +40 -0
  142. package/dist/export/GifExporter.d.ts.map +1 -0
  143. package/dist/export/VideoExporter.d.ts +135 -0
  144. package/dist/export/VideoExporter.d.ts.map +1 -0
  145. package/dist/export/index.d.ts +3 -0
  146. package/dist/export/index.d.ts.map +1 -0
  147. package/dist/index.d.ts +65 -0
  148. package/dist/index.d.ts.map +1 -0
  149. package/dist/index.js +49064 -0
  150. package/dist/integrations/index.d.ts +1 -0
  151. package/dist/integrations/index.d.ts.map +1 -0
  152. package/dist/integrations/react.d.ts +144 -0
  153. package/dist/integrations/react.d.ts.map +1 -0
  154. package/dist/integrations/react.js +570 -0
  155. package/dist/integrations/vue.d.ts +249 -0
  156. package/dist/integrations/vue.d.ts.map +1 -0
  157. package/dist/integrations/vue.js +560 -0
  158. package/dist/interaction/Clickable.d.ts +71 -0
  159. package/dist/interaction/Clickable.d.ts.map +1 -0
  160. package/dist/interaction/Controls.d.ts +174 -0
  161. package/dist/interaction/Controls.d.ts.map +1 -0
  162. package/dist/interaction/Draggable.d.ts +88 -0
  163. package/dist/interaction/Draggable.d.ts.map +1 -0
  164. package/dist/interaction/Hoverable.d.ts +82 -0
  165. package/dist/interaction/Hoverable.d.ts.map +1 -0
  166. package/dist/interaction/OrbitControls.d.ts +139 -0
  167. package/dist/interaction/OrbitControls.d.ts.map +1 -0
  168. package/dist/interaction/PlaybackControls.d.ts +113 -0
  169. package/dist/interaction/PlaybackControls.d.ts.map +1 -0
  170. package/dist/interaction/SelectionManager.d.ts +125 -0
  171. package/dist/interaction/SelectionManager.d.ts.map +1 -0
  172. package/dist/interaction/index.d.ts +12 -0
  173. package/dist/interaction/index.d.ts.map +1 -0
  174. package/dist/mobjects/fractals/MandelbrotSet.d.ts +92 -0
  175. package/dist/mobjects/fractals/MandelbrotSet.d.ts.map +1 -0
  176. package/dist/mobjects/fractals/NewtonFractal.d.ts +121 -0
  177. package/dist/mobjects/fractals/NewtonFractal.d.ts.map +1 -0
  178. package/dist/mobjects/fractals/index.d.ts +3 -0
  179. package/dist/mobjects/fractals/index.d.ts.map +1 -0
  180. package/dist/mobjects/frame/index.d.ts +188 -0
  181. package/dist/mobjects/frame/index.d.ts.map +1 -0
  182. package/dist/mobjects/geometry/AngleShapes.d.ts +326 -0
  183. package/dist/mobjects/geometry/AngleShapes.d.ts.map +1 -0
  184. package/dist/mobjects/geometry/Arc.d.ts +111 -0
  185. package/dist/mobjects/geometry/Arc.d.ts.map +1 -0
  186. package/dist/mobjects/geometry/ArcBetweenPoints.d.ts +68 -0
  187. package/dist/mobjects/geometry/ArcBetweenPoints.d.ts.map +1 -0
  188. package/dist/mobjects/geometry/ArcShapes.d.ts +659 -0
  189. package/dist/mobjects/geometry/ArcShapes.d.ts.map +1 -0
  190. package/dist/mobjects/geometry/Arrow.d.ts +130 -0
  191. package/dist/mobjects/geometry/Arrow.d.ts.map +1 -0
  192. package/dist/mobjects/geometry/ArrowTips.d.ts +238 -0
  193. package/dist/mobjects/geometry/ArrowTips.d.ts.map +1 -0
  194. package/dist/mobjects/geometry/BooleanOperations.d.ts +163 -0
  195. package/dist/mobjects/geometry/BooleanOperations.d.ts.map +1 -0
  196. package/dist/mobjects/geometry/Circle.d.ts +92 -0
  197. package/dist/mobjects/geometry/Circle.d.ts.map +1 -0
  198. package/dist/mobjects/geometry/CubicBezier.d.ts +126 -0
  199. package/dist/mobjects/geometry/CubicBezier.d.ts.map +1 -0
  200. package/dist/mobjects/geometry/DashedLine.d.ts +109 -0
  201. package/dist/mobjects/geometry/DashedLine.d.ts.map +1 -0
  202. package/dist/mobjects/geometry/DashedVMobject.d.ts +96 -0
  203. package/dist/mobjects/geometry/DashedVMobject.d.ts.map +1 -0
  204. package/dist/mobjects/geometry/Dot.d.ts +100 -0
  205. package/dist/mobjects/geometry/Dot.d.ts.map +1 -0
  206. package/dist/mobjects/geometry/LabeledGeometry.d.ts +372 -0
  207. package/dist/mobjects/geometry/LabeledGeometry.d.ts.map +1 -0
  208. package/dist/mobjects/geometry/Line.d.ts +83 -0
  209. package/dist/mobjects/geometry/Line.d.ts.map +1 -0
  210. package/dist/mobjects/geometry/Polygon.d.ts +155 -0
  211. package/dist/mobjects/geometry/Polygon.d.ts.map +1 -0
  212. package/dist/mobjects/geometry/PolygonExtensions.d.ts +412 -0
  213. package/dist/mobjects/geometry/PolygonExtensions.d.ts.map +1 -0
  214. package/dist/mobjects/geometry/Rectangle.d.ts +123 -0
  215. package/dist/mobjects/geometry/Rectangle.d.ts.map +1 -0
  216. package/dist/mobjects/geometry/ShapeMatchers.d.ts +252 -0
  217. package/dist/mobjects/geometry/ShapeMatchers.d.ts.map +1 -0
  218. package/dist/mobjects/geometry/index.d.ts +25 -0
  219. package/dist/mobjects/geometry/index.d.ts.map +1 -0
  220. package/dist/mobjects/graph/index.d.ts +425 -0
  221. package/dist/mobjects/graph/index.d.ts.map +1 -0
  222. package/dist/mobjects/graphing/Axes.d.ts +254 -0
  223. package/dist/mobjects/graphing/Axes.d.ts.map +1 -0
  224. package/dist/mobjects/graphing/BarChart.d.ts +241 -0
  225. package/dist/mobjects/graphing/BarChart.d.ts.map +1 -0
  226. package/dist/mobjects/graphing/ComplexPlane.d.ts +311 -0
  227. package/dist/mobjects/graphing/ComplexPlane.d.ts.map +1 -0
  228. package/dist/mobjects/graphing/FunctionGraph.d.ts +123 -0
  229. package/dist/mobjects/graphing/FunctionGraph.d.ts.map +1 -0
  230. package/dist/mobjects/graphing/ImplicitFunction.d.ts +131 -0
  231. package/dist/mobjects/graphing/ImplicitFunction.d.ts.map +1 -0
  232. package/dist/mobjects/graphing/NumberLine.d.ts +195 -0
  233. package/dist/mobjects/graphing/NumberLine.d.ts.map +1 -0
  234. package/dist/mobjects/graphing/NumberPlane.d.ts +91 -0
  235. package/dist/mobjects/graphing/NumberPlane.d.ts.map +1 -0
  236. package/dist/mobjects/graphing/ParametricFunction.d.ts +111 -0
  237. package/dist/mobjects/graphing/ParametricFunction.d.ts.map +1 -0
  238. package/dist/mobjects/graphing/Vector.d.ts +121 -0
  239. package/dist/mobjects/graphing/Vector.d.ts.map +1 -0
  240. package/dist/mobjects/graphing/VectorField.d.ts +321 -0
  241. package/dist/mobjects/graphing/VectorField.d.ts.map +1 -0
  242. package/dist/mobjects/graphing/index.d.ts +18 -0
  243. package/dist/mobjects/graphing/index.d.ts.map +1 -0
  244. package/dist/mobjects/image/index.d.ts +223 -0
  245. package/dist/mobjects/image/index.d.ts.map +1 -0
  246. package/dist/mobjects/matrix/Matrix.d.ts +260 -0
  247. package/dist/mobjects/matrix/Matrix.d.ts.map +1 -0
  248. package/dist/mobjects/matrix/index.d.ts +8 -0
  249. package/dist/mobjects/matrix/index.d.ts.map +1 -0
  250. package/dist/mobjects/point/index.d.ts +707 -0
  251. package/dist/mobjects/point/index.d.ts.map +1 -0
  252. package/dist/mobjects/probability/DiceFace.d.ts +137 -0
  253. package/dist/mobjects/probability/DiceFace.d.ts.map +1 -0
  254. package/dist/mobjects/probability/SampleSpace.d.ts +267 -0
  255. package/dist/mobjects/probability/SampleSpace.d.ts.map +1 -0
  256. package/dist/mobjects/probability/index.d.ts +9 -0
  257. package/dist/mobjects/probability/index.d.ts.map +1 -0
  258. package/dist/mobjects/svg/Brace.d.ts +308 -0
  259. package/dist/mobjects/svg/Brace.d.ts.map +1 -0
  260. package/dist/mobjects/svg/SVGMobject.d.ts +64 -0
  261. package/dist/mobjects/svg/SVGMobject.d.ts.map +1 -0
  262. package/dist/mobjects/svg/index.d.ts +10 -0
  263. package/dist/mobjects/svg/index.d.ts.map +1 -0
  264. package/dist/mobjects/table/Table.d.ts +315 -0
  265. package/dist/mobjects/table/Table.d.ts.map +1 -0
  266. package/dist/mobjects/table/index.d.ts +8 -0
  267. package/dist/mobjects/table/index.d.ts.map +1 -0
  268. package/dist/mobjects/text/Code.d.ts +244 -0
  269. package/dist/mobjects/text/Code.d.ts.map +1 -0
  270. package/dist/mobjects/text/DecimalNumber.d.ts +199 -0
  271. package/dist/mobjects/text/DecimalNumber.d.ts.map +1 -0
  272. package/dist/mobjects/text/GlyphVMobject.d.ts +76 -0
  273. package/dist/mobjects/text/GlyphVMobject.d.ts.map +1 -0
  274. package/dist/mobjects/text/MarkupText.d.ts +161 -0
  275. package/dist/mobjects/text/MarkupText.d.ts.map +1 -0
  276. package/dist/mobjects/text/MathJaxRenderer.d.ts +49 -0
  277. package/dist/mobjects/text/MathJaxRenderer.d.ts.map +1 -0
  278. package/dist/mobjects/text/MathTex.d.ts +242 -0
  279. package/dist/mobjects/text/MathTex.d.ts.map +1 -0
  280. package/dist/mobjects/text/Paragraph.d.ts +86 -0
  281. package/dist/mobjects/text/Paragraph.d.ts.map +1 -0
  282. package/dist/mobjects/text/Tex.d.ts +40 -0
  283. package/dist/mobjects/text/Tex.d.ts.map +1 -0
  284. package/dist/mobjects/text/Text.d.ts +171 -0
  285. package/dist/mobjects/text/Text.d.ts.map +1 -0
  286. package/dist/mobjects/text/TextExtensions.d.ts +383 -0
  287. package/dist/mobjects/text/TextExtensions.d.ts.map +1 -0
  288. package/dist/mobjects/text/TextGlyphGroup.d.ts +48 -0
  289. package/dist/mobjects/text/TextGlyphGroup.d.ts.map +1 -0
  290. package/dist/mobjects/text/Variable.d.ts +160 -0
  291. package/dist/mobjects/text/Variable.d.ts.map +1 -0
  292. package/dist/mobjects/text/index.d.ts +21 -0
  293. package/dist/mobjects/text/index.d.ts.map +1 -0
  294. package/dist/mobjects/text/katex-styles.d.ts +23 -0
  295. package/dist/mobjects/text/katex-styles.d.ts.map +1 -0
  296. package/dist/mobjects/text/svgPathParser.d.ts +39 -0
  297. package/dist/mobjects/text/svgPathParser.d.ts.map +1 -0
  298. package/dist/mobjects/three-d/Arrow3D.d.ts +136 -0
  299. package/dist/mobjects/three-d/Arrow3D.d.ts.map +1 -0
  300. package/dist/mobjects/three-d/Cube.d.ts +186 -0
  301. package/dist/mobjects/three-d/Cube.d.ts.map +1 -0
  302. package/dist/mobjects/three-d/Cylinder.d.ts +189 -0
  303. package/dist/mobjects/three-d/Cylinder.d.ts.map +1 -0
  304. package/dist/mobjects/three-d/Line3D.d.ts +100 -0
  305. package/dist/mobjects/three-d/Line3D.d.ts.map +1 -0
  306. package/dist/mobjects/three-d/ParametricSurface.d.ts +86 -0
  307. package/dist/mobjects/three-d/ParametricSurface.d.ts.map +1 -0
  308. package/dist/mobjects/three-d/Polyhedra.d.ts +271 -0
  309. package/dist/mobjects/three-d/Polyhedra.d.ts.map +1 -0
  310. package/dist/mobjects/three-d/Sphere.d.ts +100 -0
  311. package/dist/mobjects/three-d/Sphere.d.ts.map +1 -0
  312. package/dist/mobjects/three-d/Surface3D.d.ts +156 -0
  313. package/dist/mobjects/three-d/Surface3D.d.ts.map +1 -0
  314. package/dist/mobjects/three-d/TexturedSurface.d.ts +208 -0
  315. package/dist/mobjects/three-d/TexturedSurface.d.ts.map +1 -0
  316. package/dist/mobjects/three-d/ThreeDAxes.d.ts +172 -0
  317. package/dist/mobjects/three-d/ThreeDAxes.d.ts.map +1 -0
  318. package/dist/mobjects/three-d/ThreeDExtensions.d.ts +335 -0
  319. package/dist/mobjects/three-d/ThreeDExtensions.d.ts.map +1 -0
  320. package/dist/mobjects/three-d/Torus.d.ts +123 -0
  321. package/dist/mobjects/three-d/Torus.d.ts.map +1 -0
  322. package/dist/mobjects/three-d/index.d.ts +19 -0
  323. package/dist/mobjects/three-d/index.d.ts.map +1 -0
  324. package/dist/mobjects/value-tracker/ValueTracker.d.ts +248 -0
  325. package/dist/mobjects/value-tracker/ValueTracker.d.ts.map +1 -0
  326. package/dist/mobjects/value-tracker/index.d.ts +9 -0
  327. package/dist/mobjects/value-tracker/index.d.ts.map +1 -0
  328. package/dist/rate-functions/index.d.ts +81 -0
  329. package/dist/rate-functions/index.d.ts.map +1 -0
  330. package/dist/rate-functions/rateFunctions.test.d.ts +2 -0
  331. package/dist/rate-functions/rateFunctions.test.d.ts.map +1 -0
  332. package/dist/rendering/BezierRenderer.d.ts +112 -0
  333. package/dist/rendering/BezierRenderer.d.ts.map +1 -0
  334. package/dist/rendering/BezierShaderMaterial.d.ts +50 -0
  335. package/dist/rendering/BezierShaderMaterial.d.ts.map +1 -0
  336. package/dist/rendering/index.d.ts +10 -0
  337. package/dist/rendering/index.d.ts.map +1 -0
  338. package/dist/utils/Performance.d.ts +118 -0
  339. package/dist/utils/Performance.d.ts.map +1 -0
  340. package/dist/utils/featureFlags.d.ts +15 -0
  341. package/dist/utils/featureFlags.d.ts.map +1 -0
  342. package/dist/utils/hungarian.d.ts +66 -0
  343. package/dist/utils/hungarian.d.ts.map +1 -0
  344. package/dist/utils/logger.d.ts +14 -0
  345. package/dist/utils/logger.d.ts.map +1 -0
  346. package/dist/utils/math.d.ts +52 -0
  347. package/dist/utils/math.d.ts.map +1 -0
  348. package/dist/utils/ode.d.ts +135 -0
  349. package/dist/utils/ode.d.ts.map +1 -0
  350. package/dist/utils/skeletonize.d.ts +35 -0
  351. package/dist/utils/skeletonize.d.ts.map +1 -0
  352. package/dist/utils/triangulate.d.ts +54 -0
  353. package/dist/utils/triangulate.d.ts.map +1 -0
  354. package/dist/utils/vectors.d.ts +57 -0
  355. package/dist/utils/vectors.d.ts.map +1 -0
  356. package/package.json +122 -0
@@ -0,0 +1,174 @@
1
+ import { Scene } from '../core/Scene';
2
+ /**
3
+ * Position options for the controls panel.
4
+ */
5
+ export type ControlsPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
6
+ /**
7
+ * Theme options for the controls panel.
8
+ */
9
+ export type ControlsTheme = 'dark' | 'light';
10
+ /**
11
+ * Options for configuring the Controls panel.
12
+ */
13
+ export interface ControlsOptions {
14
+ /** Position of the controls panel. Defaults to 'top-right'. */
15
+ position?: ControlsPosition;
16
+ /** Color theme. Defaults to 'dark'. */
17
+ theme?: ControlsTheme;
18
+ /** Panel width in pixels. Defaults to 250. */
19
+ width?: number;
20
+ }
21
+ /**
22
+ * Configuration for a slider control.
23
+ */
24
+ export interface SliderConfig {
25
+ /** Label text displayed above the slider. */
26
+ label: string;
27
+ /** Minimum value. */
28
+ min: number;
29
+ /** Maximum value. */
30
+ max: number;
31
+ /** Initial value. Defaults to min. */
32
+ value?: number;
33
+ /** Step increment. Defaults to (max-min)/100. */
34
+ step?: number;
35
+ /** Callback when value changes. */
36
+ onChange: (value: number) => void;
37
+ }
38
+ /**
39
+ * Configuration for a button control.
40
+ */
41
+ export interface ButtonConfig {
42
+ /** Button label text. */
43
+ label: string;
44
+ /** Callback when button is clicked. */
45
+ onClick: () => void;
46
+ }
47
+ /**
48
+ * Configuration for a checkbox control.
49
+ */
50
+ export interface CheckboxConfig {
51
+ /** Label text displayed next to the checkbox. */
52
+ label: string;
53
+ /** Initial checked state. Defaults to false. */
54
+ checked?: boolean;
55
+ /** Callback when checked state changes. */
56
+ onChange: (checked: boolean) => void;
57
+ }
58
+ /**
59
+ * Configuration for a color picker control.
60
+ */
61
+ export interface ColorPickerConfig {
62
+ /** Label text displayed above the color picker. */
63
+ label: string;
64
+ /** Initial color value. Defaults to '#ffffff'. */
65
+ value?: string;
66
+ /** Callback when color changes. */
67
+ onChange: (color: string) => void;
68
+ }
69
+ /**
70
+ * Controls panel for interactive scene manipulation.
71
+ * Creates a DOM-based UI overlay positioned over the scene canvas.
72
+ */
73
+ export declare class Controls {
74
+ protected _scene: Scene;
75
+ protected _panel: HTMLElement;
76
+ protected _options: Required<ControlsOptions>;
77
+ /**
78
+ * Create a new Controls panel.
79
+ * @param scene - The scene to attach controls to
80
+ * @param options - Configuration options
81
+ */
82
+ constructor(scene: Scene, options?: ControlsOptions);
83
+ /**
84
+ * Get the underlying HTML panel element.
85
+ */
86
+ get panel(): HTMLElement;
87
+ /**
88
+ * Get the scene this controls panel is attached to.
89
+ */
90
+ get scene(): Scene;
91
+ /**
92
+ * Create the controls panel and attach it to the scene container.
93
+ */
94
+ private _createPanel;
95
+ /**
96
+ * Get CSS position styles based on the configured position.
97
+ */
98
+ private _getPositionStyles;
99
+ /**
100
+ * Get the accent color based on theme.
101
+ */
102
+ protected _getAccentColor(): string;
103
+ /**
104
+ * Get the hover color based on theme.
105
+ */
106
+ protected _getHoverColor(): string;
107
+ /**
108
+ * Get the border color based on theme.
109
+ */
110
+ protected _getBorderColor(): string;
111
+ /**
112
+ * Add a slider control.
113
+ * @param config - Slider configuration
114
+ * @returns The created wrapper element
115
+ */
116
+ addSlider(config: SliderConfig): HTMLElement;
117
+ /**
118
+ * Style the slider thumb for cross-browser compatibility.
119
+ */
120
+ private _styleSliderThumb;
121
+ /**
122
+ * Format a number for display.
123
+ */
124
+ private _formatNumber;
125
+ /**
126
+ * Add a button control.
127
+ * @param config - Button configuration
128
+ * @returns The created button element
129
+ */
130
+ addButton(config: ButtonConfig): HTMLElement;
131
+ /**
132
+ * Add a checkbox control.
133
+ * @param config - Checkbox configuration
134
+ * @returns The created wrapper element
135
+ */
136
+ addCheckbox(config: CheckboxConfig): HTMLElement;
137
+ /**
138
+ * Add a color picker control.
139
+ * @param config - Color picker configuration
140
+ * @returns The created wrapper element
141
+ */
142
+ addColorPicker(config: ColorPickerConfig): HTMLElement;
143
+ /**
144
+ * Add a horizontal separator line.
145
+ */
146
+ addSeparator(): void;
147
+ /**
148
+ * Add a section label.
149
+ * @param text - Label text
150
+ * @returns The created label element
151
+ */
152
+ addLabel(text: string): HTMLElement;
153
+ /**
154
+ * Show the controls panel.
155
+ */
156
+ show(): void;
157
+ /**
158
+ * Hide the controls panel.
159
+ */
160
+ hide(): void;
161
+ /**
162
+ * Toggle the controls panel visibility.
163
+ */
164
+ toggle(): void;
165
+ /**
166
+ * Check if the controls panel is visible.
167
+ */
168
+ isVisible(): boolean;
169
+ /**
170
+ * Clean up and remove the controls panel from the DOM.
171
+ */
172
+ dispose(): void;
173
+ }
174
+ //# sourceMappingURL=Controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Controls.d.ts","sourceRoot":"","sources":["../../src/interaction/Controls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ import { Mobject, Vector3Tuple } from '../core/Mobject';
2
+ import { Scene } from '../core/Scene';
3
+ /**
4
+ * Options for configuring draggable behavior.
5
+ */
6
+ export interface DraggableOptions {
7
+ /** X-axis constraints as [min, max] or null for no constraint */
8
+ constrainX?: [number, number] | null;
9
+ /** Y-axis constraints as [min, max] or null for no constraint */
10
+ constrainY?: [number, number] | null;
11
+ /** Callback when drag starts */
12
+ onDragStart?: (mobject: Mobject, position: Vector3Tuple) => void;
13
+ /** Callback during drag with position and delta */
14
+ onDrag?: (mobject: Mobject, position: Vector3Tuple, delta: Vector3Tuple) => void;
15
+ /** Callback when drag ends */
16
+ onDragEnd?: (mobject: Mobject, position: Vector3Tuple) => void;
17
+ /** Grid size for snapping, or null for no snapping */
18
+ snapToGrid?: number | null;
19
+ }
20
+ /**
21
+ * Makes a mobject draggable with mouse and touch support.
22
+ */
23
+ export declare class Draggable {
24
+ private _mobject;
25
+ private _scene;
26
+ private _options;
27
+ private _isDragging;
28
+ private _lastPosition;
29
+ private _enabled;
30
+ private _onMouseDown;
31
+ private _onMouseMove;
32
+ private _onMouseUp;
33
+ private _onTouchStart;
34
+ private _onTouchMove;
35
+ private _onTouchEnd;
36
+ /**
37
+ * Create a new Draggable behavior.
38
+ * @param mobject - The mobject to make draggable
39
+ * @param scene - The scene containing the mobject
40
+ * @param options - Draggable configuration options
41
+ */
42
+ constructor(mobject: Mobject, scene: Scene, options?: DraggableOptions);
43
+ /**
44
+ * Get whether the mobject is currently being dragged.
45
+ */
46
+ get isDragging(): boolean;
47
+ /**
48
+ * Get whether dragging is enabled.
49
+ */
50
+ get isEnabled(): boolean;
51
+ /**
52
+ * Get the mobject this draggable is attached to.
53
+ */
54
+ get mobject(): Mobject;
55
+ private _setupEventListeners;
56
+ private _handleMouseDown;
57
+ private _handleMouseMove;
58
+ private _handleMouseUp;
59
+ private _handleTouchStart;
60
+ private _handleTouchMove;
61
+ private _handleTouchEnd;
62
+ private _screenToWorld;
63
+ private _hitTest;
64
+ private _startDrag;
65
+ private _updateDrag;
66
+ private _endDrag;
67
+ /**
68
+ * Enable dragging.
69
+ */
70
+ enable(): void;
71
+ /**
72
+ * Disable dragging.
73
+ */
74
+ disable(): void;
75
+ /**
76
+ * Clean up event listeners.
77
+ */
78
+ dispose(): void;
79
+ }
80
+ /**
81
+ * Factory function to make a mobject draggable.
82
+ * @param mobject - The mobject to make draggable
83
+ * @param scene - The scene containing the mobject
84
+ * @param options - Draggable configuration options
85
+ * @returns A new Draggable instance
86
+ */
87
+ export declare function makeDraggable(mobject: Mobject, scene: Scene, options?: DraggableOptions): Draggable;
88
+ //# sourceMappingURL=Draggable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Draggable.d.ts","sourceRoot":"","sources":["../../src/interaction/Draggable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACrC,iEAAiE;IACjE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACrC,gCAAgC;IAChC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IACjE,mDAAmD;IACnD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACjF,8BAA8B;IAC9B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/D,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAiB;IAGjC,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,WAAW,CAA0B;IAE7C;;;;;OAKG;gBACS,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAgBtE;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,QAAQ;IAOhB;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,OAAO,IAAI,IAAI;CAShB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAEnG"}
@@ -0,0 +1,82 @@
1
+ import { Mobject } from '../core/Mobject';
2
+ import { Scene } from '../core/Scene';
3
+ /**
4
+ * Options for configuring hoverable behavior.
5
+ */
6
+ export interface HoverableOptions {
7
+ /** Callback when hover starts */
8
+ onHoverStart?: (mobject: Mobject) => void;
9
+ /** Callback when hover ends */
10
+ onHoverEnd?: (mobject: Mobject) => void;
11
+ /** Scale factor on hover, default 1.1 */
12
+ hoverScale?: number;
13
+ /** Color change on hover, or null for no change */
14
+ hoverColor?: string | null;
15
+ /** Opacity change on hover, or null for no change */
16
+ hoverOpacity?: number | null;
17
+ /** CSS cursor on hover, default 'pointer' */
18
+ cursor?: string;
19
+ }
20
+ /**
21
+ * Adds hover effects to a mobject.
22
+ */
23
+ export declare class Hoverable {
24
+ private _mobject;
25
+ private _scene;
26
+ private _options;
27
+ private _isHovering;
28
+ private _originalScale;
29
+ private _originalColor;
30
+ private _originalOpacity;
31
+ private _enabled;
32
+ private _onMouseMove;
33
+ private _onMouseLeave;
34
+ /**
35
+ * Create a new Hoverable behavior.
36
+ * @param mobject - The mobject to add hover effects to
37
+ * @param scene - The scene containing the mobject
38
+ * @param options - Hoverable configuration options
39
+ */
40
+ constructor(mobject: Mobject, scene: Scene, options?: HoverableOptions);
41
+ /**
42
+ * Get whether the mobject is currently being hovered.
43
+ */
44
+ get isHovering(): boolean;
45
+ /**
46
+ * Get whether hovering is enabled.
47
+ */
48
+ get isEnabled(): boolean;
49
+ /**
50
+ * Get the mobject this hoverable is attached to.
51
+ */
52
+ get mobject(): Mobject;
53
+ private _storeOriginalValues;
54
+ private _setupEventListeners;
55
+ private _handleMouseMove;
56
+ private _handleMouseLeave;
57
+ private _screenToWorld;
58
+ private _hitTest;
59
+ private _startHover;
60
+ private _endHover;
61
+ /**
62
+ * Enable hovering.
63
+ */
64
+ enable(): void;
65
+ /**
66
+ * Disable hovering and reset to original state.
67
+ */
68
+ disable(): void;
69
+ /**
70
+ * Clean up event listeners.
71
+ */
72
+ dispose(): void;
73
+ }
74
+ /**
75
+ * Factory function to make a mobject hoverable.
76
+ * @param mobject - The mobject to add hover effects to
77
+ * @param scene - The scene containing the mobject
78
+ * @param options - Hoverable configuration options
79
+ * @returns A new Hoverable instance
80
+ */
81
+ export declare function makeHoverable(mobject: Mobject, scene: Scene, options?: HoverableOptions): Hoverable;
82
+ //# sourceMappingURL=Hoverable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Hoverable.d.ts","sourceRoot":"","sources":["../../src/interaction/Hoverable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgB,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,+BAA+B;IAC/B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAiB;IAGjC,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,aAAa,CAA0B;IAE/C;;;;;OAKG;gBACS,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAoBtE;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,SAAS;IAkBjB;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,OAAO,IAAI,IAAI;IAOf;;OAEG;IACH,OAAO,IAAI,IAAI;CAUhB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAEnG"}
@@ -0,0 +1,139 @@
1
+ import { OrbitControls as ThreeOrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
2
+ import * as THREE from 'three';
3
+ /**
4
+ * Options for configuring OrbitControls.
5
+ */
6
+ export interface OrbitControlsOptions {
7
+ /** Enable smooth motion damping. Defaults to true. */
8
+ enableDamping?: boolean;
9
+ /** Damping factor for smooth motion. Defaults to 0.05. */
10
+ dampingFactor?: number;
11
+ /** Enable zoom with scroll wheel. Defaults to true. */
12
+ enableZoom?: boolean;
13
+ /** Enable panning (right-click drag). Defaults to true. */
14
+ enablePan?: boolean;
15
+ /** Enable rotation (left-click drag). Defaults to true. */
16
+ enableRotate?: boolean;
17
+ /** Minimum zoom distance. */
18
+ minDistance?: number;
19
+ /** Maximum zoom distance. */
20
+ maxDistance?: number;
21
+ /** Minimum vertical angle in radians (0 = looking down). */
22
+ minPolarAngle?: number;
23
+ /** Maximum vertical angle in radians (PI = looking up). */
24
+ maxPolarAngle?: number;
25
+ /** Minimum horizontal angle in radians. */
26
+ minAzimuthAngle?: number;
27
+ /** Maximum horizontal angle in radians. */
28
+ maxAzimuthAngle?: number;
29
+ /** Enable auto-rotation. Defaults to false. */
30
+ autoRotate?: boolean;
31
+ /** Auto-rotation speed in degrees per second. Defaults to 2. */
32
+ autoRotateSpeed?: number;
33
+ }
34
+ /**
35
+ * Wrapper for Three.js OrbitControls providing camera orbit interaction.
36
+ * Allows users to rotate, zoom, and pan the camera around a target point.
37
+ */
38
+ export declare class OrbitControls {
39
+ private _controls;
40
+ private _enabled;
41
+ /**
42
+ * Create new OrbitControls.
43
+ * @param camera - The Three.js camera to control
44
+ * @param canvas - The HTML canvas element for mouse events
45
+ * @param options - Controls configuration options
46
+ */
47
+ constructor(camera: THREE.Camera, canvas: HTMLCanvasElement, options?: OrbitControlsOptions);
48
+ /**
49
+ * Update the controls. Must be called in the animation loop when damping is enabled.
50
+ */
51
+ update(): void;
52
+ /**
53
+ * Enable the controls.
54
+ */
55
+ enable(): void;
56
+ /**
57
+ * Disable the controls.
58
+ */
59
+ disable(): void;
60
+ /**
61
+ * Check if controls are enabled.
62
+ * @returns true if controls are enabled
63
+ */
64
+ isEnabled(): boolean;
65
+ /**
66
+ * Set the target point for the camera to orbit around.
67
+ * @param target - Target position [x, y, z]
68
+ */
69
+ setTarget(target: [number, number, number]): void;
70
+ /**
71
+ * Get the current target point.
72
+ * @returns The target position as a Vector3
73
+ */
74
+ getTarget(): THREE.Vector3;
75
+ /**
76
+ * Enable or disable damping (smooth motion).
77
+ * @param enabled - Whether damping should be enabled
78
+ */
79
+ setDamping(enabled: boolean): void;
80
+ /**
81
+ * Set the damping factor.
82
+ * @param factor - Damping factor (0 = no damping, 1 = full damping)
83
+ */
84
+ setDampingFactor(factor: number): void;
85
+ /**
86
+ * Enable or disable auto-rotation.
87
+ * @param enabled - Whether auto-rotation should be enabled
88
+ */
89
+ setAutoRotate(enabled: boolean): void;
90
+ /**
91
+ * Set the auto-rotation speed.
92
+ * @param speed - Rotation speed in degrees per second
93
+ */
94
+ setAutoRotateSpeed(speed: number): void;
95
+ /**
96
+ * Set zoom distance limits.
97
+ * @param min - Minimum zoom distance
98
+ * @param max - Maximum zoom distance
99
+ */
100
+ setZoomLimits(min: number, max: number): void;
101
+ /**
102
+ * Set polar angle limits (vertical rotation).
103
+ * @param min - Minimum angle in radians (0 = looking down)
104
+ * @param max - Maximum angle in radians (PI = looking up)
105
+ */
106
+ setPolarLimits(min: number, max: number): void;
107
+ /**
108
+ * Set azimuth angle limits (horizontal rotation).
109
+ * @param min - Minimum angle in radians
110
+ * @param max - Maximum angle in radians
111
+ */
112
+ setAzimuthLimits(min: number, max: number): void;
113
+ /**
114
+ * Reset the camera to its default position and target.
115
+ */
116
+ reset(): void;
117
+ /**
118
+ * Get the underlying Three.js OrbitControls.
119
+ * @returns The ThreeOrbitControls instance
120
+ */
121
+ getControls(): ThreeOrbitControls;
122
+ /**
123
+ * Add an event listener for control changes.
124
+ * @param event - Event type ('change', 'start', 'end')
125
+ * @param callback - Callback function
126
+ */
127
+ addEventListener(event: 'change' | 'start' | 'end', callback: () => void): void;
128
+ /**
129
+ * Remove an event listener.
130
+ * @param event - Event type ('change', 'start', 'end')
131
+ * @param callback - Callback function to remove
132
+ */
133
+ removeEventListener(event: 'change' | 'start' | 'end', callback: () => void): void;
134
+ /**
135
+ * Dispose of the controls and clean up event listeners.
136
+ */
137
+ dispose(): void;
138
+ }
139
+ //# sourceMappingURL=OrbitControls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrbitControls.d.ts","sourceRoot":"","sources":["../../src/interaction/OrbitControls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAEnG;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAiB;IAEjC;;;;;OAKG;gBAED,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,oBAAoB;IAiChC;;OAEG;IACH,MAAM,IAAI,IAAI;IAMd;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;;OAGG;IACH,SAAS,IAAI,OAAO;IAIpB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAIjD;;;OAGG;IACH,SAAS,IAAI,KAAK,CAAC,OAAO;IAI1B;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIrC;;;OAGG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIvC;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAK7C;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAK9C;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAKhD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,WAAW,IAAI,kBAAkB;IAIjC;;;;OAIG;IACH,gBAAgB,CACd,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,EACjC,QAAQ,EAAE,MAAM,IAAI,GACnB,IAAI;IAIP;;;;OAIG;IACH,mBAAmB,CACjB,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,EACjC,QAAQ,EAAE,MAAM,IAAI,GACnB,IAAI;IAIP;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,113 @@
1
+ import { Scene } from '../core/Scene';
2
+ import { Controls, ControlsOptions } from './Controls';
3
+ /**
4
+ * Options for configuring PlaybackControls.
5
+ */
6
+ export interface PlaybackControlsOptions extends ControlsOptions {
7
+ /** Show timeline scrubber. Defaults to true. */
8
+ showTimeline?: boolean;
9
+ /** Show play/pause button. Defaults to true. */
10
+ showPlayPause?: boolean;
11
+ /** Show playback speed control. Defaults to true. */
12
+ showSpeed?: boolean;
13
+ }
14
+ /**
15
+ * Callback for playback time updates.
16
+ */
17
+ export type TimeUpdateCallback = (currentTime: number, duration: number) => void;
18
+ /**
19
+ * PlaybackControls for timeline manipulation.
20
+ * Extends Controls to add playback-specific UI elements.
21
+ */
22
+ export declare class PlaybackControls extends Controls {
23
+ private _timeline;
24
+ private _playPauseBtn;
25
+ private _speedSelect;
26
+ private _timeDisplay;
27
+ private _isPlaying;
28
+ private _playbackRate;
29
+ private _updateInterval;
30
+ private _onTimeUpdate;
31
+ /**
32
+ * Create new PlaybackControls.
33
+ * @param scene - The scene to control
34
+ * @param options - Configuration options
35
+ */
36
+ constructor(scene: Scene, options?: PlaybackControlsOptions);
37
+ /**
38
+ * Set callback for time updates.
39
+ * @param callback - Function called when time changes
40
+ */
41
+ onTimeUpdate(callback: TimeUpdateCallback): void;
42
+ /**
43
+ * Get the current playback rate.
44
+ */
45
+ get playbackRate(): number;
46
+ /**
47
+ * Set the playback rate.
48
+ */
49
+ set playbackRate(rate: number);
50
+ /**
51
+ * Create the playback-specific UI elements.
52
+ */
53
+ private _createPlaybackUI;
54
+ /**
55
+ * Create the play/pause toggle button.
56
+ */
57
+ private _createPlayPauseButton;
58
+ /**
59
+ * Toggle between play and pause states.
60
+ */
61
+ private _togglePlayPause;
62
+ /**
63
+ * Update the play/pause button icon.
64
+ */
65
+ private _updatePlayPauseButton;
66
+ /**
67
+ * Create the timeline scrubber.
68
+ */
69
+ private _createTimelineScrubber;
70
+ /**
71
+ * Create the playback speed control.
72
+ */
73
+ private _createSpeedControl;
74
+ /**
75
+ * Update the time display.
76
+ * @param currentTime - Current playback time in seconds
77
+ * @param duration - Total duration in seconds
78
+ */
79
+ updateTime(currentTime: number, duration: number): void;
80
+ /**
81
+ * Update the time display text.
82
+ */
83
+ private _updateTimeDisplay;
84
+ /**
85
+ * Update the timeline slider position.
86
+ */
87
+ private _updateTimelineSlider;
88
+ /**
89
+ * Format time in M:SS.mm format.
90
+ */
91
+ private _formatTime;
92
+ /**
93
+ * Start the update loop to sync UI with scene state.
94
+ */
95
+ private _startUpdateLoop;
96
+ /**
97
+ * Get play icon SVG.
98
+ */
99
+ private _getPlayIcon;
100
+ /**
101
+ * Get pause icon SVG.
102
+ */
103
+ private _getPauseIcon;
104
+ /**
105
+ * Get stop icon SVG.
106
+ */
107
+ private _getStopIcon;
108
+ /**
109
+ * Clean up resources.
110
+ */
111
+ dispose(): void;
112
+ }
113
+ //# sourceMappingURL=PlaybackControls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaybackControls.d.ts","sourceRoot":"","sources":["../../src/interaction/PlaybackControls.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,gDAAgD;IAChD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;AAEjF;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,aAAa,CAAmC;IAExD;;;;OAIG;gBACS,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,uBAA4B;IAM/D;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIhD;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;OAEG;IACH,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,EAK5B;IAED;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAiF9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAM9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiE/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyE3B;;;;OAIG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IASvD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACM,OAAO,IAAI,IAAI;CAOzB"}