samcan 0.0.2 → 0.1.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 (327) hide show
  1. package/{license → LICENSE} +3 -1
  2. package/README.md +3 -0
  3. package/dist/camera/index.cjs +370 -0
  4. package/dist/camera/index.d.cts +54 -0
  5. package/dist/camera/index.d.ts +54 -0
  6. package/dist/camera/index.js +70 -0
  7. package/dist/document/index.cjs +735 -0
  8. package/dist/document/index.d.cts +174 -0
  9. package/dist/document/index.d.ts +174 -0
  10. package/dist/document/index.js +161 -0
  11. package/dist/editor/index.cjs +5007 -0
  12. package/dist/editor/index.d.cts +374 -0
  13. package/dist/editor/index.d.ts +374 -0
  14. package/dist/editor/index.js +2401 -0
  15. package/dist/engine/index.cjs +3752 -0
  16. package/dist/engine/index.d.cts +183 -0
  17. package/dist/engine/index.d.ts +183 -0
  18. package/dist/engine/index.js +111 -0
  19. package/dist/index.cjs +8899 -0
  20. package/dist/index.d.cts +962 -0
  21. package/dist/index.d.ts +962 -46
  22. package/dist/index.js +1008 -49
  23. package/dist/math/index.cjs +2230 -0
  24. package/dist/math/index.d.cts +302 -0
  25. package/dist/math/index.d.ts +302 -0
  26. package/dist/math/index.js +1109 -0
  27. package/dist/renderer/index.cjs +1865 -0
  28. package/dist/renderer/index.d.cts +91 -0
  29. package/dist/renderer/index.d.ts +91 -0
  30. package/dist/renderer/index.js +89 -0
  31. package/dist/shared/chunk-35pkr0zs.js +110 -0
  32. package/dist/shared/chunk-7sr7q84y.js +80 -0
  33. package/dist/shared/chunk-87399bz7.js +89 -0
  34. package/dist/shared/chunk-8ynnz57m.js +129 -0
  35. package/dist/shared/chunk-d6gxvapt.js +500 -0
  36. package/dist/shared/chunk-hewznwbd.js +305 -0
  37. package/dist/shared/chunk-jdvrd5tv.js +623 -0
  38. package/dist/shared/chunk-rvag1j46.js +461 -0
  39. package/dist/shared/chunk-rzxyjwk8.js +397 -0
  40. package/dist/shared/chunk-s3qdcmcq.js +1392 -0
  41. package/dist/shared/chunk-v53jprrn.js +68 -0
  42. package/dist/shared/chunk-wa3772hp.js +117 -0
  43. package/dist/spatial/index.cjs +954 -0
  44. package/dist/spatial/index.d.cts +136 -0
  45. package/dist/spatial/index.d.ts +136 -0
  46. package/dist/spatial/index.js +301 -0
  47. package/dist/stroke/index.cjs +1010 -0
  48. package/dist/stroke/index.d.cts +143 -0
  49. package/dist/stroke/index.d.ts +143 -0
  50. package/dist/stroke/index.js +343 -0
  51. package/package.json +122 -58
  52. package/dist/bundle.js +0 -5888
  53. package/dist/core/animation/animationruntime.d.ts +0 -238
  54. package/dist/core/animation/animationruntime.d.ts.map +0 -1
  55. package/dist/core/animation/animationruntime.js +0 -530
  56. package/dist/core/animation/animationruntime.js.map +0 -1
  57. package/dist/core/animation/animationstate.d.ts +0 -85
  58. package/dist/core/animation/animationstate.d.ts.map +0 -1
  59. package/dist/core/animation/animationstate.js +0 -119
  60. package/dist/core/animation/animationstate.js.map +0 -1
  61. package/dist/core/animation/animationtrack.d.ts +0 -55
  62. package/dist/core/animation/animationtrack.d.ts.map +0 -1
  63. package/dist/core/animation/animationtrack.js +0 -185
  64. package/dist/core/animation/animationtrack.js.map +0 -1
  65. package/dist/core/animation/easing.d.ts +0 -80
  66. package/dist/core/animation/easing.d.ts.map +0 -1
  67. package/dist/core/animation/easing.js +0 -126
  68. package/dist/core/animation/easing.js.map +0 -1
  69. package/dist/core/animation/index.d.ts +0 -11
  70. package/dist/core/animation/index.d.ts.map +0 -1
  71. package/dist/core/animation/index.js +0 -10
  72. package/dist/core/animation/index.js.map +0 -1
  73. package/dist/core/animation/interpolator.d.ts +0 -82
  74. package/dist/core/animation/interpolator.d.ts.map +0 -1
  75. package/dist/core/animation/interpolator.js +0 -108
  76. package/dist/core/animation/interpolator.js.map +0 -1
  77. package/dist/core/animation/keyframe.d.ts +0 -52
  78. package/dist/core/animation/keyframe.d.ts.map +0 -1
  79. package/dist/core/animation/keyframe.js +0 -65
  80. package/dist/core/animation/keyframe.js.map +0 -1
  81. package/dist/core/animation/logger.d.ts +0 -8
  82. package/dist/core/animation/logger.d.ts.map +0 -1
  83. package/dist/core/animation/logger.js +0 -20
  84. package/dist/core/animation/logger.js.map +0 -1
  85. package/dist/core/animation/statemachine.d.ts +0 -178
  86. package/dist/core/animation/statemachine.d.ts.map +0 -1
  87. package/dist/core/animation/statemachine.js +0 -378
  88. package/dist/core/animation/statemachine.js.map +0 -1
  89. package/dist/core/animation/statetransition.d.ts +0 -142
  90. package/dist/core/animation/statetransition.d.ts.map +0 -1
  91. package/dist/core/animation/statetransition.js +0 -189
  92. package/dist/core/animation/statetransition.js.map +0 -1
  93. package/dist/core/animation/timeline.d.ts +0 -62
  94. package/dist/core/animation/timeline.d.ts.map +0 -1
  95. package/dist/core/animation/timeline.js +0 -102
  96. package/dist/core/animation/timeline.js.map +0 -1
  97. package/dist/core/api.d.ts +0 -245
  98. package/dist/core/api.d.ts.map +0 -1
  99. package/dist/core/api.js +0 -369
  100. package/dist/core/api.js.map +0 -1
  101. package/dist/core/asset/assetmanager.d.ts +0 -196
  102. package/dist/core/asset/assetmanager.d.ts.map +0 -1
  103. package/dist/core/asset/assetmanager.js +0 -502
  104. package/dist/core/asset/assetmanager.js.map +0 -1
  105. package/dist/core/asset/index.d.ts +0 -3
  106. package/dist/core/asset/index.d.ts.map +0 -1
  107. package/dist/core/asset/index.js +0 -3
  108. package/dist/core/asset/index.js.map +0 -1
  109. package/dist/core/asset/types.d.ts +0 -36
  110. package/dist/core/asset/types.d.ts.map +0 -1
  111. package/dist/core/asset/types.js +0 -1
  112. package/dist/core/asset/types.js.map +0 -1
  113. package/dist/core/command/basecommand.d.ts +0 -29
  114. package/dist/core/command/basecommand.d.ts.map +0 -1
  115. package/dist/core/command/basecommand.js +0 -36
  116. package/dist/core/command/basecommand.js.map +0 -1
  117. package/dist/core/command/command.d.ts +0 -55
  118. package/dist/core/command/command.d.ts.map +0 -1
  119. package/dist/core/command/command.js +0 -1
  120. package/dist/core/command/command.js.map +0 -1
  121. package/dist/core/command/commandhistory.d.ts +0 -76
  122. package/dist/core/command/commandhistory.d.ts.map +0 -1
  123. package/dist/core/command/commandhistory.js +0 -122
  124. package/dist/core/command/commandhistory.js.map +0 -1
  125. package/dist/core/command/editorcommands.d.ts +0 -108
  126. package/dist/core/command/editorcommands.d.ts.map +0 -1
  127. package/dist/core/command/editorcommands.js +0 -274
  128. package/dist/core/command/editorcommands.js.map +0 -1
  129. package/dist/core/command/index.d.ts +0 -5
  130. package/dist/core/command/index.d.ts.map +0 -1
  131. package/dist/core/command/index.js +0 -5
  132. package/dist/core/command/index.js.map +0 -1
  133. package/dist/core/editor/events/emitter.d.ts +0 -45
  134. package/dist/core/editor/events/emitter.d.ts.map +0 -1
  135. package/dist/core/editor/events/emitter.js +0 -88
  136. package/dist/core/editor/events/emitter.js.map +0 -1
  137. package/dist/core/error/animationerror.d.ts +0 -27
  138. package/dist/core/error/animationerror.d.ts.map +0 -1
  139. package/dist/core/error/animationerror.js +0 -41
  140. package/dist/core/error/animationerror.js.map +0 -1
  141. package/dist/core/error/asseterror.d.ts +0 -32
  142. package/dist/core/error/asseterror.d.ts.map +0 -1
  143. package/dist/core/error/asseterror.js +0 -48
  144. package/dist/core/error/asseterror.js.map +0 -1
  145. package/dist/core/error/index.d.ts +0 -7
  146. package/dist/core/error/index.d.ts.map +0 -1
  147. package/dist/core/error/index.js +0 -7
  148. package/dist/core/error/index.js.map +0 -1
  149. package/dist/core/error/pluginerror.d.ts +0 -22
  150. package/dist/core/error/pluginerror.d.ts.map +0 -1
  151. package/dist/core/error/pluginerror.js +0 -33
  152. package/dist/core/error/pluginerror.js.map +0 -1
  153. package/dist/core/error/renderererror.d.ts +0 -26
  154. package/dist/core/error/renderererror.d.ts.map +0 -1
  155. package/dist/core/error/renderererror.js +0 -40
  156. package/dist/core/error/renderererror.js.map +0 -1
  157. package/dist/core/error/samcanerror.d.ts +0 -72
  158. package/dist/core/error/samcanerror.d.ts.map +0 -1
  159. package/dist/core/error/samcanerror.js +0 -108
  160. package/dist/core/error/samcanerror.js.map +0 -1
  161. package/dist/core/error/serializationerror.d.ts +0 -31
  162. package/dist/core/error/serializationerror.d.ts.map +0 -1
  163. package/dist/core/error/serializationerror.js +0 -46
  164. package/dist/core/error/serializationerror.js.map +0 -1
  165. package/dist/core/index.d.ts +0 -12
  166. package/dist/core/index.d.ts.map +0 -1
  167. package/dist/core/index.js +0 -12
  168. package/dist/core/index.js.map +0 -1
  169. package/dist/core/math/color.d.ts +0 -56
  170. package/dist/core/math/color.d.ts.map +0 -1
  171. package/dist/core/math/color.js +0 -125
  172. package/dist/core/math/color.js.map +0 -1
  173. package/dist/core/math/index.d.ts +0 -14
  174. package/dist/core/math/index.d.ts.map +0 -1
  175. package/dist/core/math/index.js +0 -14
  176. package/dist/core/math/index.js.map +0 -1
  177. package/dist/core/math/matrix.d.ts +0 -101
  178. package/dist/core/math/matrix.d.ts.map +0 -1
  179. package/dist/core/math/matrix.js +0 -177
  180. package/dist/core/math/matrix.js.map +0 -1
  181. package/dist/core/math/paint.d.ts +0 -104
  182. package/dist/core/math/paint.d.ts.map +0 -1
  183. package/dist/core/math/paint.js +0 -204
  184. package/dist/core/math/paint.js.map +0 -1
  185. package/dist/core/math/path/index.d.ts +0 -94
  186. package/dist/core/math/path/index.d.ts.map +0 -1
  187. package/dist/core/math/path/index.js +0 -180
  188. package/dist/core/math/path/index.js.map +0 -1
  189. package/dist/core/math/path/operations.d.ts +0 -38
  190. package/dist/core/math/path/operations.d.ts.map +0 -1
  191. package/dist/core/math/path/operations.js +0 -149
  192. package/dist/core/math/path/operations.js.map +0 -1
  193. package/dist/core/math/pool.d.ts +0 -54
  194. package/dist/core/math/pool.d.ts.map +0 -1
  195. package/dist/core/math/pool.js +0 -97
  196. package/dist/core/math/pool.js.map +0 -1
  197. package/dist/core/math/pools.d.ts +0 -29
  198. package/dist/core/math/pools.d.ts.map +0 -1
  199. package/dist/core/math/pools.js +0 -50
  200. package/dist/core/math/pools.js.map +0 -1
  201. package/dist/core/math/rectangle.d.ts +0 -68
  202. package/dist/core/math/rectangle.d.ts.map +0 -1
  203. package/dist/core/math/rectangle.js +0 -124
  204. package/dist/core/math/rectangle.js.map +0 -1
  205. package/dist/core/math/utils.d.ts +0 -68
  206. package/dist/core/math/utils.d.ts.map +0 -1
  207. package/dist/core/math/utils.js +0 -110
  208. package/dist/core/math/utils.js.map +0 -1
  209. package/dist/core/math/vector2.d.ts +0 -85
  210. package/dist/core/math/vector2.d.ts.map +0 -1
  211. package/dist/core/math/vector2.js +0 -134
  212. package/dist/core/math/vector2.js.map +0 -1
  213. package/dist/core/plugin/animationcontroller.d.ts +0 -43
  214. package/dist/core/plugin/animationcontroller.d.ts.map +0 -1
  215. package/dist/core/plugin/animationcontroller.js +0 -11
  216. package/dist/core/plugin/animationcontroller.js.map +0 -1
  217. package/dist/core/plugin/index.d.ts +0 -6
  218. package/dist/core/plugin/index.d.ts.map +0 -1
  219. package/dist/core/plugin/index.js +0 -4
  220. package/dist/core/plugin/index.js.map +0 -1
  221. package/dist/core/plugin/plugin.d.ts +0 -53
  222. package/dist/core/plugin/plugin.d.ts.map +0 -1
  223. package/dist/core/plugin/plugin.js +0 -29
  224. package/dist/core/plugin/plugin.js.map +0 -1
  225. package/dist/core/plugin/pluginregistry.d.ts +0 -71
  226. package/dist/core/plugin/pluginregistry.d.ts.map +0 -1
  227. package/dist/core/plugin/pluginregistry.js +0 -143
  228. package/dist/core/plugin/pluginregistry.js.map +0 -1
  229. package/dist/core/renderer/batchmanager.d.ts +0 -68
  230. package/dist/core/renderer/batchmanager.d.ts.map +0 -1
  231. package/dist/core/renderer/batchmanager.js +0 -82
  232. package/dist/core/renderer/batchmanager.js.map +0 -1
  233. package/dist/core/renderer/canvas2drenderer.d.ts +0 -139
  234. package/dist/core/renderer/canvas2drenderer.d.ts.map +0 -1
  235. package/dist/core/renderer/canvas2drenderer.js +0 -499
  236. package/dist/core/renderer/canvas2drenderer.js.map +0 -1
  237. package/dist/core/renderer/dirtyregionmanager.d.ts +0 -54
  238. package/dist/core/renderer/dirtyregionmanager.d.ts.map +0 -1
  239. package/dist/core/renderer/dirtyregionmanager.js +0 -129
  240. package/dist/core/renderer/dirtyregionmanager.js.map +0 -1
  241. package/dist/core/renderer/index.d.ts +0 -8
  242. package/dist/core/renderer/index.d.ts.map +0 -1
  243. package/dist/core/renderer/index.js +0 -6
  244. package/dist/core/renderer/index.js.map +0 -1
  245. package/dist/core/renderer/renderer.d.ts +0 -154
  246. package/dist/core/renderer/renderer.d.ts.map +0 -1
  247. package/dist/core/renderer/renderer.js +0 -1
  248. package/dist/core/renderer/renderer.js.map +0 -1
  249. package/dist/core/renderer/rendererfactory.d.ts +0 -66
  250. package/dist/core/renderer/rendererfactory.d.ts.map +0 -1
  251. package/dist/core/renderer/rendererfactory.js +0 -219
  252. package/dist/core/renderer/rendererfactory.js.map +0 -1
  253. package/dist/core/renderer/webglrenderer.d.ts +0 -185
  254. package/dist/core/renderer/webglrenderer.d.ts.map +0 -1
  255. package/dist/core/renderer/webglrenderer.js +0 -1007
  256. package/dist/core/renderer/webglrenderer.js.map +0 -1
  257. package/dist/core/scene/index.d.ts +0 -4
  258. package/dist/core/scene/index.d.ts.map +0 -1
  259. package/dist/core/scene/index.js +0 -4
  260. package/dist/core/scene/index.js.map +0 -1
  261. package/dist/core/scene/node.d.ts +0 -162
  262. package/dist/core/scene/node.d.ts.map +0 -1
  263. package/dist/core/scene/node.js +0 -402
  264. package/dist/core/scene/node.js.map +0 -1
  265. package/dist/core/scene/nodes/artboard.d.ts +0 -42
  266. package/dist/core/scene/nodes/artboard.d.ts.map +0 -1
  267. package/dist/core/scene/nodes/artboard.js +0 -64
  268. package/dist/core/scene/nodes/artboard.js.map +0 -1
  269. package/dist/core/scene/nodes/groupnode.d.ts +0 -10
  270. package/dist/core/scene/nodes/groupnode.d.ts.map +0 -1
  271. package/dist/core/scene/nodes/groupnode.js +0 -12
  272. package/dist/core/scene/nodes/groupnode.js.map +0 -1
  273. package/dist/core/scene/nodes/imagenode.d.ts +0 -38
  274. package/dist/core/scene/nodes/imagenode.d.ts.map +0 -1
  275. package/dist/core/scene/nodes/imagenode.js +0 -77
  276. package/dist/core/scene/nodes/imagenode.js.map +0 -1
  277. package/dist/core/scene/nodes/index.d.ts +0 -5
  278. package/dist/core/scene/nodes/index.d.ts.map +0 -1
  279. package/dist/core/scene/nodes/index.js +0 -5
  280. package/dist/core/scene/nodes/index.js.map +0 -1
  281. package/dist/core/scene/nodes/shapenode.d.ts +0 -76
  282. package/dist/core/scene/nodes/shapenode.d.ts.map +0 -1
  283. package/dist/core/scene/nodes/shapenode.js +0 -212
  284. package/dist/core/scene/nodes/shapenode.js.map +0 -1
  285. package/dist/core/scene/transform.d.ts +0 -27
  286. package/dist/core/scene/transform.d.ts.map +0 -1
  287. package/dist/core/scene/transform.js +0 -52
  288. package/dist/core/scene/transform.js.map +0 -1
  289. package/dist/core/serialization/index.d.ts +0 -3
  290. package/dist/core/serialization/index.d.ts.map +0 -1
  291. package/dist/core/serialization/index.js +0 -2
  292. package/dist/core/serialization/index.js.map +0 -1
  293. package/dist/core/serialization/serializer.d.ts +0 -323
  294. package/dist/core/serialization/serializer.d.ts.map +0 -1
  295. package/dist/core/serialization/serializer.js +0 -1173
  296. package/dist/core/serialization/serializer.js.map +0 -1
  297. package/dist/core/serialization/types.d.ts +0 -242
  298. package/dist/core/serialization/types.d.ts.map +0 -1
  299. package/dist/core/serialization/types.js +0 -1
  300. package/dist/core/serialization/types.js.map +0 -1
  301. package/dist/core/timing/clock.d.ts +0 -43
  302. package/dist/core/timing/clock.d.ts.map +0 -1
  303. package/dist/core/timing/clock.js +0 -78
  304. package/dist/core/timing/clock.js.map +0 -1
  305. package/dist/core/timing/index.d.ts +0 -3
  306. package/dist/core/timing/index.d.ts.map +0 -1
  307. package/dist/core/timing/index.js +0 -3
  308. package/dist/core/timing/index.js.map +0 -1
  309. package/dist/core/timing/scheduler.d.ts +0 -72
  310. package/dist/core/timing/scheduler.d.ts.map +0 -1
  311. package/dist/core/timing/scheduler.js +0 -163
  312. package/dist/core/timing/scheduler.js.map +0 -1
  313. package/dist/index.d.ts.map +0 -1
  314. package/dist/index.js.map +0 -1
  315. package/dist/wrapper/react/index.d.ts +0 -5
  316. package/dist/wrapper/react/index.d.ts.map +0 -1
  317. package/dist/wrapper/react/index.js +0 -3
  318. package/dist/wrapper/react/index.js.map +0 -1
  319. package/dist/wrapper/react/samcan-player.d.ts +0 -26
  320. package/dist/wrapper/react/samcan-player.d.ts.map +0 -1
  321. package/dist/wrapper/react/samcan-player.js +0 -19
  322. package/dist/wrapper/react/samcan-player.js.map +0 -1
  323. package/dist/wrapper/react/use-samcan-player.d.ts +0 -33
  324. package/dist/wrapper/react/use-samcan-player.d.ts.map +0 -1
  325. package/dist/wrapper/react/use-samcan-player.js +0 -65
  326. package/dist/wrapper/react/use-samcan-player.js.map +0 -1
  327. package/readme.md +0 -96
@@ -0,0 +1,302 @@
1
+ type vector2 = [number, number];
2
+ declare function create_vector2(x: number, y: number): vector2;
3
+ declare function zero_vector2(): vector2;
4
+ declare function unit_vector2(): vector2;
5
+ declare function clone_vector2(v: vector2): vector2;
6
+ declare function copy_vector2(v: vector2, out: vector2): vector2;
7
+ declare function set_vector2(x: number, y: number, out: vector2): vector2;
8
+ declare function add_vector2(a: vector2, b: vector2, out: vector2): vector2;
9
+ declare function subtract_vector2(a: vector2, b: vector2, out: vector2): vector2;
10
+ declare function multiply_vector2(a: vector2, b: number, out: vector2): vector2;
11
+ declare function divide_vector2(a: vector2, b: number, out: vector2): vector2;
12
+ declare function normalize_vector2(a: vector2, out: vector2): vector2;
13
+ declare function lerp_vector2(a: vector2, b: vector2, t: number, out: vector2): vector2;
14
+ declare function dot_vector2(a: vector2, b: vector2): number;
15
+ declare function cross_vector2(a: vector2, b: vector2): number;
16
+ declare function length_squared_vector2(a: vector2): number;
17
+ declare function length_vector2(a: vector2): number;
18
+ declare function distance_squared_vector2(a: vector2, b: vector2): number;
19
+ declare function distance_vector2(a: vector2, b: vector2): number;
20
+ declare function is_equal_vector2(a: vector2, b: vector2, epsilon?: number): boolean;
21
+ type bezier_cubic = [vector2, vector2, vector2, vector2];
22
+ type bezier_quadratic = [vector2, vector2, vector2];
23
+ declare function create_cubic_bezier(p0: vector2, p1: vector2, p2: vector2, p3: vector2): bezier_cubic;
24
+ declare function create_quadratic_bezier(p0: vector2, p1: vector2, p2: vector2): bezier_quadratic;
25
+ declare function clone_cubic_bezier(b: bezier_cubic): bezier_cubic;
26
+ declare function clone_quadratic_bezier(b: bezier_quadratic): bezier_quadratic;
27
+ declare function evaluate_cubic_bezier(b: bezier_cubic, t: number, out: vector2): vector2;
28
+ declare function evaluate_quadratic_bezier(b: bezier_quadratic, t: number, out: vector2): vector2;
29
+ declare function derivative_cubic_bezier(b: bezier_cubic, t: number, out: vector2): vector2;
30
+ declare function derivative_quadratic_bezier(b: bezier_quadratic, t: number, out: vector2): vector2;
31
+ declare function length_cubic_bezier(b: bezier_cubic, steps?: number): number;
32
+ declare function length_quadratic_bezier(b: bezier_quadratic, steps?: number): number;
33
+ declare function subdivide_cubic_bezier(b: bezier_cubic, t: number, out1: bezier_cubic, out2: bezier_cubic): void;
34
+ declare function closest_point_cubic_bezier(b: bezier_cubic, point: vector2, steps?: number): number;
35
+ declare function from_points_cubic_bezier(points: vector2[], out: bezier_cubic[]): number;
36
+ type rectangle = [number, number, number, number];
37
+ declare function create_rectangle(x?: number, y?: number, width?: number, height?: number): rectangle;
38
+ declare function clone_rectangle(r: rectangle): rectangle;
39
+ declare function from_center_rectangle(center: vector2, width: number, height: number, out: rectangle): rectangle;
40
+ declare function top_of_rectangle(r: rectangle): number;
41
+ declare function left_of_rectangle(r: rectangle): number;
42
+ declare function right_of_rectangle(r: rectangle): number;
43
+ declare function bottom_of_rectangle(r: rectangle): number;
44
+ declare function center_of_rectangle(r: rectangle, out: vector2): vector2;
45
+ declare function width_of_rectangle(r: rectangle): number;
46
+ declare function height_of_rectangle(r: rectangle): number;
47
+ declare function area_of_rectangle(r: rectangle): number;
48
+ declare function set_rectangle(x: number, y: number, width: number, height: number, out: rectangle): rectangle;
49
+ declare function translate_rectangle(r: rectangle, dx: number, dy: number, out: rectangle): rectangle;
50
+ declare function scale_rectangle(r: rectangle, scale: number, out: rectangle): rectangle;
51
+ declare function contains_point_rectangle(r: rectangle, x: number, y: number): boolean;
52
+ declare function contains_rectangle(r1: rectangle, r2: rectangle): boolean;
53
+ declare function intersects_rectangle(r1: rectangle, r2: rectangle): boolean;
54
+ declare function intersection_rectangle(r1: rectangle, r2: rectangle, out: rectangle): rectangle | null;
55
+ declare function union_rectangle(r1: rectangle, r2: rectangle, out: rectangle): rectangle;
56
+ declare function expand_rectangle(r: rectangle, amount: number, out: rectangle): rectangle;
57
+ declare function is_empty_rectangle(r: rectangle): boolean;
58
+ declare function equals_rectangle(r1: rectangle, r2: rectangle): boolean;
59
+ type circle = [number, number, number];
60
+ declare function create_circle(x?: number, y?: number, radius?: number): circle;
61
+ declare function clone_circle(c: circle): circle;
62
+ declare function set_circle(x: number, y: number, radius: number, out: circle): circle;
63
+ declare function copy_circle(c: circle, out: circle): circle;
64
+ declare function center_of_circle(c: circle, out: vector2): vector2;
65
+ declare function radius_of_circle(c: circle): number;
66
+ declare function diameter_of_circle(c: circle): number;
67
+ declare function area_of_circle(c: circle): number;
68
+ declare function circumference_of_circle(c: circle): number;
69
+ declare function contains_point_circle(c: circle, x: number, y: number): boolean;
70
+ declare function contains_circle(c1: circle, c2: circle): boolean;
71
+ declare function intersects_circle(c1: circle, c2: circle): boolean;
72
+ declare function intersects_rectangle_circle(c: circle, r: rectangle): boolean;
73
+ declare function distance_to_circle(c1: circle, c2: circle): number;
74
+ declare function translate_circle(c: circle, dx: number, dy: number, out: circle): circle;
75
+ declare function scale_circle(c: circle, scale: number, out: circle): circle;
76
+ declare function bounding_rectangle_circle(c: circle, out: rectangle): rectangle;
77
+ declare function equals_circle(c1: circle, c2: circle, epsilon?: number): boolean;
78
+ declare function is_empty_circle(c: circle): boolean;
79
+ type color = [number, number, number, number];
80
+ declare function create_color(r?: number, g?: number, b?: number, a?: number): color;
81
+ declare function clone_color(c: color): color;
82
+ declare function set_color(r: number, g: number, b: number, a: number | undefined, out: color): color;
83
+ declare function copy_color(c: color, out: color): color;
84
+ declare function from_rgb_color(r: number, g: number, b: number, a?: number): color;
85
+ declare function from_hex_color(hex: string): color;
86
+ declare function to_rgba_string_color(c: color): string;
87
+ declare function to_hex_string_color(c: color): string;
88
+ declare function lerp_color(c1: color, c2: color, t: number, out: color): color;
89
+ declare function equals_color(c1: color, c2: color, epsilon?: number): boolean;
90
+ declare function white_color(): color;
91
+ declare function black_color(): color;
92
+ declare function transparent_color(): color;
93
+ type frustum = [number, number, number, number, number, number];
94
+ declare function create_frustum(left: number, right: number, top: number, bottom: number, near: number, far: number): frustum;
95
+ declare function create_frustum_from_bounds(min_x: number, max_x: number, min_y: number, max_y: number, out: frustum): frustum;
96
+ declare function create_frustum_from_rectangle(view_bounds: rectangle, out: frustum): frustum;
97
+ declare function left_of_frustum(f: frustum): number;
98
+ declare function right_of_frustum(f: frustum): number;
99
+ declare function top_of_frustum(f: frustum): number;
100
+ declare function bottom_of_frustum(f: frustum): number;
101
+ declare function near_of_frustum(f: frustum): number;
102
+ declare function far_of_frustum(f: frustum): number;
103
+ declare function width_of_frustum(f: frustum): number;
104
+ declare function height_of_frustum(f: frustum): number;
105
+ declare function set_frustum_bounds(left: number, right: number, top: number, bottom: number, near: number, far: number, out: frustum): frustum;
106
+ declare function clone_frustum(f: frustum): frustum;
107
+ declare function copy_frustum(f: frustum, out: frustum): frustum;
108
+ declare function create_frustum_from_camera(camera_x: number, camera_y: number, viewport_width: number, viewport_height: number, zoom: number, out: frustum): frustum;
109
+ declare function create_frustum_from_view_matrix(camera_position: vector2, viewport_size: vector2, zoom: number, out: frustum): frustum;
110
+ declare function expand_frustum(f: frustum, margin: number, out: frustum): frustum;
111
+ declare function intersects_frustum_rectangle(f: frustum, r: rectangle): boolean;
112
+ declare function contains_rectangle_frustum(f: frustum, r: rectangle): boolean;
113
+ declare function contains_point_frustum(f: frustum, x: number, y: number): boolean;
114
+ declare function cull_rectangle_frustum(f: frustum, r: rectangle): boolean;
115
+ declare function cull_rectangles_frustum(f: frustum, rectangles: rectangle[]): rectangle[];
116
+ declare function filter_visible_rectangles_frustum(f: frustum, rectangles: rectangle[], out_visible: rectangle[]): rectangle[];
117
+ declare function count_visible_rectangles_frustum(f: frustum, rectangles: rectangle[]): number;
118
+ declare function is_empty_frustum(f: frustum): boolean;
119
+ declare function equals_frustum(f1: frustum, f2: frustum): boolean;
120
+ declare function area_of_frustum(f: frustum): number;
121
+ declare function center_of_frustum(f: frustum, out: vector2): vector2;
122
+ declare function translate_frustum(f: frustum, dx: number, dy: number, out: frustum): frustum;
123
+ declare function intersection_frustum_rectangle(f: frustum, r: rectangle, out: rectangle): rectangle | null;
124
+ type lod_level = {
125
+ readonly level: number;
126
+ readonly min_distance: number;
127
+ readonly max_distance: number;
128
+ readonly detail_factor: number;
129
+ };
130
+ type lod_config = {
131
+ readonly levels: readonly lod_level[];
132
+ readonly max_level: number;
133
+ readonly min_level: number;
134
+ readonly base_distance: number;
135
+ readonly distance_multiplier: number;
136
+ };
137
+ type lod_result = {
138
+ level: number;
139
+ blend_factor: number;
140
+ next_level: number;
141
+ distance: number;
142
+ screen_error: number;
143
+ };
144
+ type lod_viewport = {
145
+ readonly position: vector2;
146
+ readonly zoom_level: number;
147
+ readonly screen_width: number;
148
+ readonly screen_height: number;
149
+ readonly field_of_view: number;
150
+ };
151
+ declare function create_lod_level(level: number, min_distance: number, max_distance: number, detail_factor: number): lod_level;
152
+ declare function create_lod_config(levels: lod_level[], base_distance?: number, distance_multiplier?: number): lod_config;
153
+ declare function create_lod_result(): lod_result;
154
+ declare function create_lod_viewport(position: vector2, zoom_level: number, screen_width: number, screen_height: number, field_of_view?: number): lod_viewport;
155
+ declare function clone_lod_viewport(viewport: lod_viewport): lod_viewport;
156
+ declare function copy_lod_viewport(viewport: lod_viewport, out_viewport: vector2, out_zoom: {
157
+ zoom_level: number;
158
+ }, out_screen: {
159
+ screen_width: number;
160
+ screen_height: number;
161
+ }, out_fov: {
162
+ field_of_view: number;
163
+ }): void;
164
+ declare function distance_from_viewport(viewport: lod_viewport, object_position: vector2): number;
165
+ declare function zoom_adjusted_distance(distance: number, zoom_level: number): number;
166
+ declare function screen_space_distance(distance: number, viewport: lod_viewport): number;
167
+ declare function calculate_lod_distance(object_position: vector2, viewport: lod_viewport): number;
168
+ declare function world_to_screen_size(world_size: number, distance: number, viewport: lod_viewport): number;
169
+ declare function screen_to_world_size(screen_size: number, distance: number, viewport: lod_viewport): number;
170
+ declare function select_discrete_lod_level(distance: number, config: lod_config): number;
171
+ declare function select_lod_by_zoom(object_position: vector2, viewport: lod_viewport, config: lod_config): number;
172
+ declare function select_lod_by_screen_size(object_world_size: number, object_position: vector2, viewport: lod_viewport, config: lod_config, pixel_threshold?: number): number;
173
+ declare function find_lod_level_by_index(config: lod_config, level_index: number): lod_level | null;
174
+ declare function get_detail_factor_for_level(config: lod_config, level_index: number): number;
175
+ declare function calculate_continuous_lod(distance: number, config: lod_config, out_result: lod_result): lod_result;
176
+ declare function interpolate_lod_detail_factor(result: lod_result, config: lod_config): number;
177
+ declare function calculate_smooth_lod_transition(object_position: vector2, viewport: lod_viewport, config: lod_config, out_result: lod_result): lod_result;
178
+ declare function lerp_lod_values(value_a: number, value_b: number, blend_factor: number): number;
179
+ declare function smooth_step_transition(t: number): number;
180
+ declare function smoother_step_transition(t: number): number;
181
+ declare function calculate_alpha_blend_factor(result: lod_result, transition_distance?: number): number;
182
+ declare function calculate_hysteresis_lod(current_lod: number, target_lod: number, distance: number, config: lod_config, hysteresis_factor?: number): number;
183
+ declare function calculate_temporal_lod_blend(previous_result: lod_result, current_result: lod_result, delta_time: number, blend_speed?: number): number;
184
+ declare function is_lod_transition_stable(result: lod_result, stability_threshold?: number): boolean;
185
+ declare function calculate_screen_space_error(geometric_error: number, distance: number, viewport: lod_viewport): number;
186
+ declare function calculate_geometric_error_for_lod(config: lod_config, level_index: number, base_error?: number): number;
187
+ declare function select_lod_by_screen_error(object_position: vector2, viewport: lod_viewport, config: lod_config, max_screen_error?: number, base_geometric_error?: number): number;
188
+ declare function calculate_pixel_density_lod(object_bounds: rectangle, object_position: vector2, viewport: lod_viewport, config: lod_config, target_pixels_per_unit?: number): number;
189
+ declare function update_lod_result_screen_error(result: lod_result, viewport: lod_viewport, config: lod_config, base_geometric_error: number | undefined, out_result: lod_result): lod_result;
190
+ declare function create_adaptive_lod_config(max_levels?: number, base_distance?: number, distance_multiplier?: number, detail_falloff?: number): lod_config;
191
+ type quadtree_point = [number, number, unknown];
192
+ type quadtree_node = {
193
+ readonly boundary: rectangle;
194
+ readonly points: readonly quadtree_point[];
195
+ readonly children: readonly quadtree_node[] | null;
196
+ readonly capacity: number;
197
+ readonly depth: number;
198
+ };
199
+ type quadtree = {
200
+ readonly root: quadtree_node;
201
+ readonly capacity: number;
202
+ readonly max_depth: number;
203
+ };
204
+ declare function create_quadtree_point(x: number, y: number, data?: unknown): quadtree_point;
205
+ declare function x_of_quadtree_point(point: quadtree_point): number;
206
+ declare function y_of_quadtree_point(point: quadtree_point): number;
207
+ declare function data_of_quadtree_point(point: quadtree_point): unknown;
208
+ declare function create_quadtree_node(boundary: rectangle, capacity?: number, depth?: number): quadtree_node;
209
+ declare function create_quadtree(boundary: rectangle, capacity?: number, max_depth?: number): quadtree;
210
+ declare function is_leaf_quadtree_node(node: quadtree_node): boolean;
211
+ declare function point_count_quadtree_node(node: quadtree_node): number;
212
+ declare function subdivide_quadtree_node(node: quadtree_node, max_depth: number): quadtree_node;
213
+ declare function insert_quadtree_node(node: quadtree_node, point: quadtree_point, max_depth: number): quadtree_node | null;
214
+ declare function insert_quadtree(tree: quadtree, point: quadtree_point): quadtree;
215
+ declare function query_range_quadtree_node(node: quadtree_node, range: rectangle, out_results: quadtree_point[]): quadtree_point[];
216
+ declare function query_range_quadtree(tree: quadtree, range: rectangle, out_results: quadtree_point[]): quadtree_point[];
217
+ declare function query_radius_quadtree_node(node: quadtree_node, center_x: number, center_y: number, radius: number, out_results: quadtree_point[]): quadtree_point[];
218
+ declare function query_radius_quadtree(tree: quadtree, center_x: number, center_y: number, radius: number, out_results: quadtree_point[]): quadtree_point[];
219
+ declare function find_nearest_quadtree(tree: quadtree, x: number, y: number, max_distance?: number): quadtree_point | null;
220
+ declare function find_nearest_quadtree_node(node: quadtree_node, x: number, y: number, max_distance?: number): quadtree_point | null;
221
+ declare function remove_quadtree_node(node: quadtree_node, point: quadtree_point): quadtree_node;
222
+ declare function remove_quadtree(tree: quadtree, point: quadtree_point): quadtree;
223
+ declare function collect_all_points_quadtree_node(node: quadtree_node, out_points: quadtree_point[]): quadtree_point[];
224
+ declare function clear_quadtree(tree: quadtree): quadtree;
225
+ declare function point_count_quadtree(tree: quadtree): number;
226
+ declare function depth_of_quadtree_node(node: quadtree_node): number;
227
+ declare function depth_of_quadtree(tree: quadtree): number;
228
+ declare function is_empty_quadtree(tree: quadtree): boolean;
229
+ declare function bounds_of_quadtree(tree: quadtree, out_bounds: rectangle): rectangle;
230
+ declare function find_k_nearest_quadtree(tree: quadtree, x: number, y: number, k: number, max_distance: number, out_results: quadtree_point[]): quadtree_point[];
231
+ declare function detect_collisions_quadtree(tree: quadtree, point: quadtree_point, radius: number, out_collisions: quadtree_point[]): quadtree_point[];
232
+ declare function detect_collisions_rectangle_quadtree(tree: quadtree, rect: rectangle, out_collisions: quadtree_point[]): quadtree_point[];
233
+ type simplify_result = {
234
+ points: vector2[];
235
+ original_count: number;
236
+ simplified_count: number;
237
+ reduction_ratio: number;
238
+ };
239
+ declare function create_simplify_result(): simplify_result;
240
+ declare function clone_simplify_result(result: simplify_result): simplify_result;
241
+ declare function copy_simplify_result(result: simplify_result, out: simplify_result): simplify_result;
242
+ declare function perpendicular_distance_to_line(point: vector2, line_start: vector2, line_end: vector2): number;
243
+ declare function find_farthest_point(points: vector2[], start_index: number, end_index: number, out_result: {
244
+ index: number;
245
+ distance: number;
246
+ }): {
247
+ index: number;
248
+ distance: number;
249
+ };
250
+ declare function simplify_douglas_peucker(points: vector2[], epsilon: number, out_points: vector2[]): number;
251
+ declare function simplify_douglas_peucker_detailed(points: vector2[], epsilon: number, out_result: simplify_result): simplify_result;
252
+ declare function estimate_epsilon_from_points(points: vector2[], tolerance_factor?: number): number;
253
+ declare function polyline_length(points: vector2[]): number;
254
+ declare function polyline_area_under_curve(points: vector2[]): number;
255
+ declare function validate_simplified_polyline(points: vector2[]): boolean;
256
+ type spline_segment = {
257
+ a: number;
258
+ b: number;
259
+ c: number;
260
+ d: number;
261
+ x_start: number;
262
+ x_end: number;
263
+ };
264
+ type spline = {
265
+ segments_x: spline_segment[];
266
+ segments_y: spline_segment[];
267
+ point_count: number;
268
+ };
269
+ declare function create_spline(): spline;
270
+ declare function clone_spline(s: spline): spline;
271
+ declare function build_natural_spline_1d(points: number[], t_values: number[]): spline_segment[];
272
+ declare function build_natural_spline_from_points(points: vector2[], spline: spline): spline;
273
+ declare function evaluate_spline_segment(segment: spline_segment, t: number): number;
274
+ declare function evaluate_spline_at_t(spline: spline, t: number, out: vector2): vector2 | null;
275
+ declare function evaluate_spline_at_points(spline: spline, t_values: number[], out_points: vector2[]): number;
276
+ declare function get_spline_length(spline: spline, steps?: number): number;
277
+ declare function simplify_points_for_spline(points: vector2[], tolerance?: number): vector2[];
278
+ type transform = [number, number, number, number, number, number];
279
+ declare function create_transform(a?: number, b?: number, c?: number, d?: number, tx?: number, ty?: number): transform;
280
+ declare function clone_transform(t: transform): transform;
281
+ declare function set_transform(a: number, b: number, c: number, d: number, tx: number, ty: number, out: transform): transform;
282
+ declare function copy_transform(t: transform, out: transform): transform;
283
+ declare function identity_transform(): transform;
284
+ declare function set_identity_transform(out: transform): transform;
285
+ declare function translate_transform(x: number, y: number): transform;
286
+ declare function scale_transform(sx: number, sy?: number): transform;
287
+ declare function rotate_transform(angle: number): transform;
288
+ declare function from_trs_transform(translation: vector2, rotation: number, scale: vector2): transform;
289
+ declare function multiply_transform(t1: transform, t2: transform, out: transform): transform;
290
+ declare function determinant_transform(t: transform): number;
291
+ declare function invert_transform(t: transform, out: transform): transform | null;
292
+ declare function transform_point_transform(t: transform, point: vector2, out: vector2): vector2;
293
+ declare function transform_vector_transform(t: transform, vector: vector2, out: vector2): vector2;
294
+ declare function append_translation_transform(t: transform, x: number, y: number, out: transform): transform;
295
+ declare function append_rotation_transform(t: transform, angle: number, out: transform): transform;
296
+ declare function append_scale_transform(t: transform, sx: number, sy: number | undefined, out: transform): transform;
297
+ declare function prepend_translation_transform(x: number, y: number, t: transform, out: transform): transform;
298
+ declare function prepend_rotation_transform(angle: number, t: transform, out: transform): transform;
299
+ declare function prepend_scale_transform(sx: number, sy: number | undefined, t: transform, out: transform): transform;
300
+ declare function equals_transform(t1: transform, t2: transform, epsilon?: number): boolean;
301
+ declare function is_identity_transform(t: transform, epsilon?: number): boolean;
302
+ export { zoom_adjusted_distance, zero_vector2, y_of_quadtree_point, x_of_quadtree_point, world_to_screen_size, width_of_rectangle, width_of_frustum, white_color, vector2, validate_simplified_polyline, update_lod_result_screen_error, unit_vector2, union_rectangle, transparent_color, translate_transform, translate_rectangle, translate_frustum, translate_circle, transform_vector_transform, transform_point_transform, transform, top_of_rectangle, top_of_frustum, to_rgba_string_color, to_hex_string_color, subtract_vector2, subdivide_quadtree_node, subdivide_cubic_bezier, spline_segment, spline, smoother_step_transition, smooth_step_transition, simplify_result, simplify_points_for_spline, simplify_douglas_peucker_detailed, simplify_douglas_peucker, set_vector2, set_transform, set_rectangle, set_identity_transform, set_frustum_bounds, set_color, set_circle, select_lod_by_zoom, select_lod_by_screen_size, select_lod_by_screen_error, select_discrete_lod_level, screen_to_world_size, screen_space_distance, scale_transform, scale_rectangle, scale_circle, rotate_transform, right_of_rectangle, right_of_frustum, remove_quadtree_node, remove_quadtree, rectangle, radius_of_circle, query_range_quadtree_node, query_range_quadtree, query_radius_quadtree_node, query_radius_quadtree, quadtree_point, quadtree_node, quadtree, prepend_translation_transform, prepend_scale_transform, prepend_rotation_transform, polyline_length, polyline_area_under_curve, point_count_quadtree_node, point_count_quadtree, perpendicular_distance_to_line, normalize_vector2, near_of_frustum, multiply_vector2, multiply_transform, lod_viewport, lod_result, lod_level, lod_config, lerp_vector2, lerp_lod_values, lerp_color, length_vector2, length_squared_vector2, length_quadratic_bezier, length_cubic_bezier, left_of_rectangle, left_of_frustum, is_lod_transition_stable, is_leaf_quadtree_node, is_identity_transform, is_equal_vector2, is_empty_rectangle, is_empty_quadtree, is_empty_frustum, is_empty_circle, invert_transform, intersects_rectangle_circle, intersects_rectangle, intersects_frustum_rectangle, intersects_circle, intersection_rectangle, intersection_frustum_rectangle, interpolate_lod_detail_factor, insert_quadtree_node, insert_quadtree, identity_transform, height_of_rectangle, height_of_frustum, get_spline_length, get_detail_factor_for_level, frustum, from_trs_transform, from_rgb_color, from_points_cubic_bezier, from_hex_color, from_center_rectangle, find_nearest_quadtree_node, find_nearest_quadtree, find_lod_level_by_index, find_k_nearest_quadtree, find_farthest_point, filter_visible_rectangles_frustum, far_of_frustum, expand_rectangle, expand_frustum, evaluate_spline_segment, evaluate_spline_at_t, evaluate_spline_at_points, evaluate_quadratic_bezier, evaluate_cubic_bezier, estimate_epsilon_from_points, equals_transform, equals_rectangle, equals_frustum, equals_color, equals_circle, dot_vector2, divide_vector2, distance_vector2, distance_to_circle, distance_squared_vector2, distance_from_viewport, diameter_of_circle, determinant_transform, detect_collisions_rectangle_quadtree, detect_collisions_quadtree, derivative_quadratic_bezier, derivative_cubic_bezier, depth_of_quadtree_node, depth_of_quadtree, data_of_quadtree_point, cull_rectangles_frustum, cull_rectangle_frustum, cross_vector2, create_vector2, create_transform, create_spline, create_simplify_result, create_rectangle, create_quadtree_point, create_quadtree_node, create_quadtree, create_quadratic_bezier, create_lod_viewport, create_lod_result, create_lod_level, create_lod_config, create_frustum_from_view_matrix, create_frustum_from_rectangle, create_frustum_from_camera, create_frustum_from_bounds, create_frustum, create_cubic_bezier, create_color, create_circle, create_adaptive_lod_config, count_visible_rectangles_frustum, copy_vector2, copy_transform, copy_simplify_result, copy_lod_viewport, copy_frustum, copy_color, copy_circle, contains_rectangle_frustum, contains_rectangle, contains_point_rectangle, contains_point_frustum, contains_point_circle, contains_circle, color, collect_all_points_quadtree_node, closest_point_cubic_bezier, clone_vector2, clone_transform, clone_spline, clone_simplify_result, clone_rectangle, clone_quadratic_bezier, clone_lod_viewport, clone_frustum, clone_cubic_bezier, clone_color, clone_circle, clear_quadtree, circumference_of_circle, circle, center_of_rectangle, center_of_frustum, center_of_circle, calculate_temporal_lod_blend, calculate_smooth_lod_transition, calculate_screen_space_error, calculate_pixel_density_lod, calculate_lod_distance, calculate_hysteresis_lod, calculate_geometric_error_for_lod, calculate_continuous_lod, calculate_alpha_blend_factor, build_natural_spline_from_points, build_natural_spline_1d, bounds_of_quadtree, bounding_rectangle_circle, bottom_of_rectangle, bottom_of_frustum, black_color, bezier_quadratic, bezier_cubic, area_of_rectangle, area_of_frustum, area_of_circle, append_translation_transform, append_scale_transform, append_rotation_transform, add_vector2 };
@@ -0,0 +1,302 @@
1
+ type vector2 = [number, number];
2
+ declare function create_vector2(x: number, y: number): vector2;
3
+ declare function zero_vector2(): vector2;
4
+ declare function unit_vector2(): vector2;
5
+ declare function clone_vector2(v: vector2): vector2;
6
+ declare function copy_vector2(v: vector2, out: vector2): vector2;
7
+ declare function set_vector2(x: number, y: number, out: vector2): vector2;
8
+ declare function add_vector2(a: vector2, b: vector2, out: vector2): vector2;
9
+ declare function subtract_vector2(a: vector2, b: vector2, out: vector2): vector2;
10
+ declare function multiply_vector2(a: vector2, b: number, out: vector2): vector2;
11
+ declare function divide_vector2(a: vector2, b: number, out: vector2): vector2;
12
+ declare function normalize_vector2(a: vector2, out: vector2): vector2;
13
+ declare function lerp_vector2(a: vector2, b: vector2, t: number, out: vector2): vector2;
14
+ declare function dot_vector2(a: vector2, b: vector2): number;
15
+ declare function cross_vector2(a: vector2, b: vector2): number;
16
+ declare function length_squared_vector2(a: vector2): number;
17
+ declare function length_vector2(a: vector2): number;
18
+ declare function distance_squared_vector2(a: vector2, b: vector2): number;
19
+ declare function distance_vector2(a: vector2, b: vector2): number;
20
+ declare function is_equal_vector2(a: vector2, b: vector2, epsilon?: number): boolean;
21
+ type bezier_cubic = [vector2, vector2, vector2, vector2];
22
+ type bezier_quadratic = [vector2, vector2, vector2];
23
+ declare function create_cubic_bezier(p0: vector2, p1: vector2, p2: vector2, p3: vector2): bezier_cubic;
24
+ declare function create_quadratic_bezier(p0: vector2, p1: vector2, p2: vector2): bezier_quadratic;
25
+ declare function clone_cubic_bezier(b: bezier_cubic): bezier_cubic;
26
+ declare function clone_quadratic_bezier(b: bezier_quadratic): bezier_quadratic;
27
+ declare function evaluate_cubic_bezier(b: bezier_cubic, t: number, out: vector2): vector2;
28
+ declare function evaluate_quadratic_bezier(b: bezier_quadratic, t: number, out: vector2): vector2;
29
+ declare function derivative_cubic_bezier(b: bezier_cubic, t: number, out: vector2): vector2;
30
+ declare function derivative_quadratic_bezier(b: bezier_quadratic, t: number, out: vector2): vector2;
31
+ declare function length_cubic_bezier(b: bezier_cubic, steps?: number): number;
32
+ declare function length_quadratic_bezier(b: bezier_quadratic, steps?: number): number;
33
+ declare function subdivide_cubic_bezier(b: bezier_cubic, t: number, out1: bezier_cubic, out2: bezier_cubic): void;
34
+ declare function closest_point_cubic_bezier(b: bezier_cubic, point: vector2, steps?: number): number;
35
+ declare function from_points_cubic_bezier(points: vector2[], out: bezier_cubic[]): number;
36
+ type rectangle = [number, number, number, number];
37
+ declare function create_rectangle(x?: number, y?: number, width?: number, height?: number): rectangle;
38
+ declare function clone_rectangle(r: rectangle): rectangle;
39
+ declare function from_center_rectangle(center: vector2, width: number, height: number, out: rectangle): rectangle;
40
+ declare function top_of_rectangle(r: rectangle): number;
41
+ declare function left_of_rectangle(r: rectangle): number;
42
+ declare function right_of_rectangle(r: rectangle): number;
43
+ declare function bottom_of_rectangle(r: rectangle): number;
44
+ declare function center_of_rectangle(r: rectangle, out: vector2): vector2;
45
+ declare function width_of_rectangle(r: rectangle): number;
46
+ declare function height_of_rectangle(r: rectangle): number;
47
+ declare function area_of_rectangle(r: rectangle): number;
48
+ declare function set_rectangle(x: number, y: number, width: number, height: number, out: rectangle): rectangle;
49
+ declare function translate_rectangle(r: rectangle, dx: number, dy: number, out: rectangle): rectangle;
50
+ declare function scale_rectangle(r: rectangle, scale: number, out: rectangle): rectangle;
51
+ declare function contains_point_rectangle(r: rectangle, x: number, y: number): boolean;
52
+ declare function contains_rectangle(r1: rectangle, r2: rectangle): boolean;
53
+ declare function intersects_rectangle(r1: rectangle, r2: rectangle): boolean;
54
+ declare function intersection_rectangle(r1: rectangle, r2: rectangle, out: rectangle): rectangle | null;
55
+ declare function union_rectangle(r1: rectangle, r2: rectangle, out: rectangle): rectangle;
56
+ declare function expand_rectangle(r: rectangle, amount: number, out: rectangle): rectangle;
57
+ declare function is_empty_rectangle(r: rectangle): boolean;
58
+ declare function equals_rectangle(r1: rectangle, r2: rectangle): boolean;
59
+ type circle = [number, number, number];
60
+ declare function create_circle(x?: number, y?: number, radius?: number): circle;
61
+ declare function clone_circle(c: circle): circle;
62
+ declare function set_circle(x: number, y: number, radius: number, out: circle): circle;
63
+ declare function copy_circle(c: circle, out: circle): circle;
64
+ declare function center_of_circle(c: circle, out: vector2): vector2;
65
+ declare function radius_of_circle(c: circle): number;
66
+ declare function diameter_of_circle(c: circle): number;
67
+ declare function area_of_circle(c: circle): number;
68
+ declare function circumference_of_circle(c: circle): number;
69
+ declare function contains_point_circle(c: circle, x: number, y: number): boolean;
70
+ declare function contains_circle(c1: circle, c2: circle): boolean;
71
+ declare function intersects_circle(c1: circle, c2: circle): boolean;
72
+ declare function intersects_rectangle_circle(c: circle, r: rectangle): boolean;
73
+ declare function distance_to_circle(c1: circle, c2: circle): number;
74
+ declare function translate_circle(c: circle, dx: number, dy: number, out: circle): circle;
75
+ declare function scale_circle(c: circle, scale: number, out: circle): circle;
76
+ declare function bounding_rectangle_circle(c: circle, out: rectangle): rectangle;
77
+ declare function equals_circle(c1: circle, c2: circle, epsilon?: number): boolean;
78
+ declare function is_empty_circle(c: circle): boolean;
79
+ type color = [number, number, number, number];
80
+ declare function create_color(r?: number, g?: number, b?: number, a?: number): color;
81
+ declare function clone_color(c: color): color;
82
+ declare function set_color(r: number, g: number, b: number, a: number | undefined, out: color): color;
83
+ declare function copy_color(c: color, out: color): color;
84
+ declare function from_rgb_color(r: number, g: number, b: number, a?: number): color;
85
+ declare function from_hex_color(hex: string): color;
86
+ declare function to_rgba_string_color(c: color): string;
87
+ declare function to_hex_string_color(c: color): string;
88
+ declare function lerp_color(c1: color, c2: color, t: number, out: color): color;
89
+ declare function equals_color(c1: color, c2: color, epsilon?: number): boolean;
90
+ declare function white_color(): color;
91
+ declare function black_color(): color;
92
+ declare function transparent_color(): color;
93
+ type frustum = [number, number, number, number, number, number];
94
+ declare function create_frustum(left: number, right: number, top: number, bottom: number, near: number, far: number): frustum;
95
+ declare function create_frustum_from_bounds(min_x: number, max_x: number, min_y: number, max_y: number, out: frustum): frustum;
96
+ declare function create_frustum_from_rectangle(view_bounds: rectangle, out: frustum): frustum;
97
+ declare function left_of_frustum(f: frustum): number;
98
+ declare function right_of_frustum(f: frustum): number;
99
+ declare function top_of_frustum(f: frustum): number;
100
+ declare function bottom_of_frustum(f: frustum): number;
101
+ declare function near_of_frustum(f: frustum): number;
102
+ declare function far_of_frustum(f: frustum): number;
103
+ declare function width_of_frustum(f: frustum): number;
104
+ declare function height_of_frustum(f: frustum): number;
105
+ declare function set_frustum_bounds(left: number, right: number, top: number, bottom: number, near: number, far: number, out: frustum): frustum;
106
+ declare function clone_frustum(f: frustum): frustum;
107
+ declare function copy_frustum(f: frustum, out: frustum): frustum;
108
+ declare function create_frustum_from_camera(camera_x: number, camera_y: number, viewport_width: number, viewport_height: number, zoom: number, out: frustum): frustum;
109
+ declare function create_frustum_from_view_matrix(camera_position: vector2, viewport_size: vector2, zoom: number, out: frustum): frustum;
110
+ declare function expand_frustum(f: frustum, margin: number, out: frustum): frustum;
111
+ declare function intersects_frustum_rectangle(f: frustum, r: rectangle): boolean;
112
+ declare function contains_rectangle_frustum(f: frustum, r: rectangle): boolean;
113
+ declare function contains_point_frustum(f: frustum, x: number, y: number): boolean;
114
+ declare function cull_rectangle_frustum(f: frustum, r: rectangle): boolean;
115
+ declare function cull_rectangles_frustum(f: frustum, rectangles: rectangle[]): rectangle[];
116
+ declare function filter_visible_rectangles_frustum(f: frustum, rectangles: rectangle[], out_visible: rectangle[]): rectangle[];
117
+ declare function count_visible_rectangles_frustum(f: frustum, rectangles: rectangle[]): number;
118
+ declare function is_empty_frustum(f: frustum): boolean;
119
+ declare function equals_frustum(f1: frustum, f2: frustum): boolean;
120
+ declare function area_of_frustum(f: frustum): number;
121
+ declare function center_of_frustum(f: frustum, out: vector2): vector2;
122
+ declare function translate_frustum(f: frustum, dx: number, dy: number, out: frustum): frustum;
123
+ declare function intersection_frustum_rectangle(f: frustum, r: rectangle, out: rectangle): rectangle | null;
124
+ type lod_level = {
125
+ readonly level: number;
126
+ readonly min_distance: number;
127
+ readonly max_distance: number;
128
+ readonly detail_factor: number;
129
+ };
130
+ type lod_config = {
131
+ readonly levels: readonly lod_level[];
132
+ readonly max_level: number;
133
+ readonly min_level: number;
134
+ readonly base_distance: number;
135
+ readonly distance_multiplier: number;
136
+ };
137
+ type lod_result = {
138
+ level: number;
139
+ blend_factor: number;
140
+ next_level: number;
141
+ distance: number;
142
+ screen_error: number;
143
+ };
144
+ type lod_viewport = {
145
+ readonly position: vector2;
146
+ readonly zoom_level: number;
147
+ readonly screen_width: number;
148
+ readonly screen_height: number;
149
+ readonly field_of_view: number;
150
+ };
151
+ declare function create_lod_level(level: number, min_distance: number, max_distance: number, detail_factor: number): lod_level;
152
+ declare function create_lod_config(levels: lod_level[], base_distance?: number, distance_multiplier?: number): lod_config;
153
+ declare function create_lod_result(): lod_result;
154
+ declare function create_lod_viewport(position: vector2, zoom_level: number, screen_width: number, screen_height: number, field_of_view?: number): lod_viewport;
155
+ declare function clone_lod_viewport(viewport: lod_viewport): lod_viewport;
156
+ declare function copy_lod_viewport(viewport: lod_viewport, out_viewport: vector2, out_zoom: {
157
+ zoom_level: number;
158
+ }, out_screen: {
159
+ screen_width: number;
160
+ screen_height: number;
161
+ }, out_fov: {
162
+ field_of_view: number;
163
+ }): void;
164
+ declare function distance_from_viewport(viewport: lod_viewport, object_position: vector2): number;
165
+ declare function zoom_adjusted_distance(distance: number, zoom_level: number): number;
166
+ declare function screen_space_distance(distance: number, viewport: lod_viewport): number;
167
+ declare function calculate_lod_distance(object_position: vector2, viewport: lod_viewport): number;
168
+ declare function world_to_screen_size(world_size: number, distance: number, viewport: lod_viewport): number;
169
+ declare function screen_to_world_size(screen_size: number, distance: number, viewport: lod_viewport): number;
170
+ declare function select_discrete_lod_level(distance: number, config: lod_config): number;
171
+ declare function select_lod_by_zoom(object_position: vector2, viewport: lod_viewport, config: lod_config): number;
172
+ declare function select_lod_by_screen_size(object_world_size: number, object_position: vector2, viewport: lod_viewport, config: lod_config, pixel_threshold?: number): number;
173
+ declare function find_lod_level_by_index(config: lod_config, level_index: number): lod_level | null;
174
+ declare function get_detail_factor_for_level(config: lod_config, level_index: number): number;
175
+ declare function calculate_continuous_lod(distance: number, config: lod_config, out_result: lod_result): lod_result;
176
+ declare function interpolate_lod_detail_factor(result: lod_result, config: lod_config): number;
177
+ declare function calculate_smooth_lod_transition(object_position: vector2, viewport: lod_viewport, config: lod_config, out_result: lod_result): lod_result;
178
+ declare function lerp_lod_values(value_a: number, value_b: number, blend_factor: number): number;
179
+ declare function smooth_step_transition(t: number): number;
180
+ declare function smoother_step_transition(t: number): number;
181
+ declare function calculate_alpha_blend_factor(result: lod_result, transition_distance?: number): number;
182
+ declare function calculate_hysteresis_lod(current_lod: number, target_lod: number, distance: number, config: lod_config, hysteresis_factor?: number): number;
183
+ declare function calculate_temporal_lod_blend(previous_result: lod_result, current_result: lod_result, delta_time: number, blend_speed?: number): number;
184
+ declare function is_lod_transition_stable(result: lod_result, stability_threshold?: number): boolean;
185
+ declare function calculate_screen_space_error(geometric_error: number, distance: number, viewport: lod_viewport): number;
186
+ declare function calculate_geometric_error_for_lod(config: lod_config, level_index: number, base_error?: number): number;
187
+ declare function select_lod_by_screen_error(object_position: vector2, viewport: lod_viewport, config: lod_config, max_screen_error?: number, base_geometric_error?: number): number;
188
+ declare function calculate_pixel_density_lod(object_bounds: rectangle, object_position: vector2, viewport: lod_viewport, config: lod_config, target_pixels_per_unit?: number): number;
189
+ declare function update_lod_result_screen_error(result: lod_result, viewport: lod_viewport, config: lod_config, base_geometric_error: number | undefined, out_result: lod_result): lod_result;
190
+ declare function create_adaptive_lod_config(max_levels?: number, base_distance?: number, distance_multiplier?: number, detail_falloff?: number): lod_config;
191
+ type quadtree_point = [number, number, unknown];
192
+ type quadtree_node = {
193
+ readonly boundary: rectangle;
194
+ readonly points: readonly quadtree_point[];
195
+ readonly children: readonly quadtree_node[] | null;
196
+ readonly capacity: number;
197
+ readonly depth: number;
198
+ };
199
+ type quadtree = {
200
+ readonly root: quadtree_node;
201
+ readonly capacity: number;
202
+ readonly max_depth: number;
203
+ };
204
+ declare function create_quadtree_point(x: number, y: number, data?: unknown): quadtree_point;
205
+ declare function x_of_quadtree_point(point: quadtree_point): number;
206
+ declare function y_of_quadtree_point(point: quadtree_point): number;
207
+ declare function data_of_quadtree_point(point: quadtree_point): unknown;
208
+ declare function create_quadtree_node(boundary: rectangle, capacity?: number, depth?: number): quadtree_node;
209
+ declare function create_quadtree(boundary: rectangle, capacity?: number, max_depth?: number): quadtree;
210
+ declare function is_leaf_quadtree_node(node: quadtree_node): boolean;
211
+ declare function point_count_quadtree_node(node: quadtree_node): number;
212
+ declare function subdivide_quadtree_node(node: quadtree_node, max_depth: number): quadtree_node;
213
+ declare function insert_quadtree_node(node: quadtree_node, point: quadtree_point, max_depth: number): quadtree_node | null;
214
+ declare function insert_quadtree(tree: quadtree, point: quadtree_point): quadtree;
215
+ declare function query_range_quadtree_node(node: quadtree_node, range: rectangle, out_results: quadtree_point[]): quadtree_point[];
216
+ declare function query_range_quadtree(tree: quadtree, range: rectangle, out_results: quadtree_point[]): quadtree_point[];
217
+ declare function query_radius_quadtree_node(node: quadtree_node, center_x: number, center_y: number, radius: number, out_results: quadtree_point[]): quadtree_point[];
218
+ declare function query_radius_quadtree(tree: quadtree, center_x: number, center_y: number, radius: number, out_results: quadtree_point[]): quadtree_point[];
219
+ declare function find_nearest_quadtree(tree: quadtree, x: number, y: number, max_distance?: number): quadtree_point | null;
220
+ declare function find_nearest_quadtree_node(node: quadtree_node, x: number, y: number, max_distance?: number): quadtree_point | null;
221
+ declare function remove_quadtree_node(node: quadtree_node, point: quadtree_point): quadtree_node;
222
+ declare function remove_quadtree(tree: quadtree, point: quadtree_point): quadtree;
223
+ declare function collect_all_points_quadtree_node(node: quadtree_node, out_points: quadtree_point[]): quadtree_point[];
224
+ declare function clear_quadtree(tree: quadtree): quadtree;
225
+ declare function point_count_quadtree(tree: quadtree): number;
226
+ declare function depth_of_quadtree_node(node: quadtree_node): number;
227
+ declare function depth_of_quadtree(tree: quadtree): number;
228
+ declare function is_empty_quadtree(tree: quadtree): boolean;
229
+ declare function bounds_of_quadtree(tree: quadtree, out_bounds: rectangle): rectangle;
230
+ declare function find_k_nearest_quadtree(tree: quadtree, x: number, y: number, k: number, max_distance: number, out_results: quadtree_point[]): quadtree_point[];
231
+ declare function detect_collisions_quadtree(tree: quadtree, point: quadtree_point, radius: number, out_collisions: quadtree_point[]): quadtree_point[];
232
+ declare function detect_collisions_rectangle_quadtree(tree: quadtree, rect: rectangle, out_collisions: quadtree_point[]): quadtree_point[];
233
+ type simplify_result = {
234
+ points: vector2[];
235
+ original_count: number;
236
+ simplified_count: number;
237
+ reduction_ratio: number;
238
+ };
239
+ declare function create_simplify_result(): simplify_result;
240
+ declare function clone_simplify_result(result: simplify_result): simplify_result;
241
+ declare function copy_simplify_result(result: simplify_result, out: simplify_result): simplify_result;
242
+ declare function perpendicular_distance_to_line(point: vector2, line_start: vector2, line_end: vector2): number;
243
+ declare function find_farthest_point(points: vector2[], start_index: number, end_index: number, out_result: {
244
+ index: number;
245
+ distance: number;
246
+ }): {
247
+ index: number;
248
+ distance: number;
249
+ };
250
+ declare function simplify_douglas_peucker(points: vector2[], epsilon: number, out_points: vector2[]): number;
251
+ declare function simplify_douglas_peucker_detailed(points: vector2[], epsilon: number, out_result: simplify_result): simplify_result;
252
+ declare function estimate_epsilon_from_points(points: vector2[], tolerance_factor?: number): number;
253
+ declare function polyline_length(points: vector2[]): number;
254
+ declare function polyline_area_under_curve(points: vector2[]): number;
255
+ declare function validate_simplified_polyline(points: vector2[]): boolean;
256
+ type spline_segment = {
257
+ a: number;
258
+ b: number;
259
+ c: number;
260
+ d: number;
261
+ x_start: number;
262
+ x_end: number;
263
+ };
264
+ type spline = {
265
+ segments_x: spline_segment[];
266
+ segments_y: spline_segment[];
267
+ point_count: number;
268
+ };
269
+ declare function create_spline(): spline;
270
+ declare function clone_spline(s: spline): spline;
271
+ declare function build_natural_spline_1d(points: number[], t_values: number[]): spline_segment[];
272
+ declare function build_natural_spline_from_points(points: vector2[], spline: spline): spline;
273
+ declare function evaluate_spline_segment(segment: spline_segment, t: number): number;
274
+ declare function evaluate_spline_at_t(spline: spline, t: number, out: vector2): vector2 | null;
275
+ declare function evaluate_spline_at_points(spline: spline, t_values: number[], out_points: vector2[]): number;
276
+ declare function get_spline_length(spline: spline, steps?: number): number;
277
+ declare function simplify_points_for_spline(points: vector2[], tolerance?: number): vector2[];
278
+ type transform = [number, number, number, number, number, number];
279
+ declare function create_transform(a?: number, b?: number, c?: number, d?: number, tx?: number, ty?: number): transform;
280
+ declare function clone_transform(t: transform): transform;
281
+ declare function set_transform(a: number, b: number, c: number, d: number, tx: number, ty: number, out: transform): transform;
282
+ declare function copy_transform(t: transform, out: transform): transform;
283
+ declare function identity_transform(): transform;
284
+ declare function set_identity_transform(out: transform): transform;
285
+ declare function translate_transform(x: number, y: number): transform;
286
+ declare function scale_transform(sx: number, sy?: number): transform;
287
+ declare function rotate_transform(angle: number): transform;
288
+ declare function from_trs_transform(translation: vector2, rotation: number, scale: vector2): transform;
289
+ declare function multiply_transform(t1: transform, t2: transform, out: transform): transform;
290
+ declare function determinant_transform(t: transform): number;
291
+ declare function invert_transform(t: transform, out: transform): transform | null;
292
+ declare function transform_point_transform(t: transform, point: vector2, out: vector2): vector2;
293
+ declare function transform_vector_transform(t: transform, vector: vector2, out: vector2): vector2;
294
+ declare function append_translation_transform(t: transform, x: number, y: number, out: transform): transform;
295
+ declare function append_rotation_transform(t: transform, angle: number, out: transform): transform;
296
+ declare function append_scale_transform(t: transform, sx: number, sy: number | undefined, out: transform): transform;
297
+ declare function prepend_translation_transform(x: number, y: number, t: transform, out: transform): transform;
298
+ declare function prepend_rotation_transform(angle: number, t: transform, out: transform): transform;
299
+ declare function prepend_scale_transform(sx: number, sy: number | undefined, t: transform, out: transform): transform;
300
+ declare function equals_transform(t1: transform, t2: transform, epsilon?: number): boolean;
301
+ declare function is_identity_transform(t: transform, epsilon?: number): boolean;
302
+ export { zoom_adjusted_distance, zero_vector2, y_of_quadtree_point, x_of_quadtree_point, world_to_screen_size, width_of_rectangle, width_of_frustum, white_color, vector2, validate_simplified_polyline, update_lod_result_screen_error, unit_vector2, union_rectangle, transparent_color, translate_transform, translate_rectangle, translate_frustum, translate_circle, transform_vector_transform, transform_point_transform, transform, top_of_rectangle, top_of_frustum, to_rgba_string_color, to_hex_string_color, subtract_vector2, subdivide_quadtree_node, subdivide_cubic_bezier, spline_segment, spline, smoother_step_transition, smooth_step_transition, simplify_result, simplify_points_for_spline, simplify_douglas_peucker_detailed, simplify_douglas_peucker, set_vector2, set_transform, set_rectangle, set_identity_transform, set_frustum_bounds, set_color, set_circle, select_lod_by_zoom, select_lod_by_screen_size, select_lod_by_screen_error, select_discrete_lod_level, screen_to_world_size, screen_space_distance, scale_transform, scale_rectangle, scale_circle, rotate_transform, right_of_rectangle, right_of_frustum, remove_quadtree_node, remove_quadtree, rectangle, radius_of_circle, query_range_quadtree_node, query_range_quadtree, query_radius_quadtree_node, query_radius_quadtree, quadtree_point, quadtree_node, quadtree, prepend_translation_transform, prepend_scale_transform, prepend_rotation_transform, polyline_length, polyline_area_under_curve, point_count_quadtree_node, point_count_quadtree, perpendicular_distance_to_line, normalize_vector2, near_of_frustum, multiply_vector2, multiply_transform, lod_viewport, lod_result, lod_level, lod_config, lerp_vector2, lerp_lod_values, lerp_color, length_vector2, length_squared_vector2, length_quadratic_bezier, length_cubic_bezier, left_of_rectangle, left_of_frustum, is_lod_transition_stable, is_leaf_quadtree_node, is_identity_transform, is_equal_vector2, is_empty_rectangle, is_empty_quadtree, is_empty_frustum, is_empty_circle, invert_transform, intersects_rectangle_circle, intersects_rectangle, intersects_frustum_rectangle, intersects_circle, intersection_rectangle, intersection_frustum_rectangle, interpolate_lod_detail_factor, insert_quadtree_node, insert_quadtree, identity_transform, height_of_rectangle, height_of_frustum, get_spline_length, get_detail_factor_for_level, frustum, from_trs_transform, from_rgb_color, from_points_cubic_bezier, from_hex_color, from_center_rectangle, find_nearest_quadtree_node, find_nearest_quadtree, find_lod_level_by_index, find_k_nearest_quadtree, find_farthest_point, filter_visible_rectangles_frustum, far_of_frustum, expand_rectangle, expand_frustum, evaluate_spline_segment, evaluate_spline_at_t, evaluate_spline_at_points, evaluate_quadratic_bezier, evaluate_cubic_bezier, estimate_epsilon_from_points, equals_transform, equals_rectangle, equals_frustum, equals_color, equals_circle, dot_vector2, divide_vector2, distance_vector2, distance_to_circle, distance_squared_vector2, distance_from_viewport, diameter_of_circle, determinant_transform, detect_collisions_rectangle_quadtree, detect_collisions_quadtree, derivative_quadratic_bezier, derivative_cubic_bezier, depth_of_quadtree_node, depth_of_quadtree, data_of_quadtree_point, cull_rectangles_frustum, cull_rectangle_frustum, cross_vector2, create_vector2, create_transform, create_spline, create_simplify_result, create_rectangle, create_quadtree_point, create_quadtree_node, create_quadtree, create_quadratic_bezier, create_lod_viewport, create_lod_result, create_lod_level, create_lod_config, create_frustum_from_view_matrix, create_frustum_from_rectangle, create_frustum_from_camera, create_frustum_from_bounds, create_frustum, create_cubic_bezier, create_color, create_circle, create_adaptive_lod_config, count_visible_rectangles_frustum, copy_vector2, copy_transform, copy_simplify_result, copy_lod_viewport, copy_frustum, copy_color, copy_circle, contains_rectangle_frustum, contains_rectangle, contains_point_rectangle, contains_point_frustum, contains_point_circle, contains_circle, color, collect_all_points_quadtree_node, closest_point_cubic_bezier, clone_vector2, clone_transform, clone_spline, clone_simplify_result, clone_rectangle, clone_quadratic_bezier, clone_lod_viewport, clone_frustum, clone_cubic_bezier, clone_color, clone_circle, clear_quadtree, circumference_of_circle, circle, center_of_rectangle, center_of_frustum, center_of_circle, calculate_temporal_lod_blend, calculate_smooth_lod_transition, calculate_screen_space_error, calculate_pixel_density_lod, calculate_lod_distance, calculate_hysteresis_lod, calculate_geometric_error_for_lod, calculate_continuous_lod, calculate_alpha_blend_factor, build_natural_spline_from_points, build_natural_spline_1d, bounds_of_quadtree, bounding_rectangle_circle, bottom_of_rectangle, bottom_of_frustum, black_color, bezier_quadratic, bezier_cubic, area_of_rectangle, area_of_frustum, area_of_circle, append_translation_transform, append_scale_transform, append_rotation_transform, add_vector2 };