@tableslayer/ui 0.1.4 → 0.1.6

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 (387) hide show
  1. package/dist/components/MarkerTooltip/MarkerTooltip.svelte +9 -1
  2. package/dist/components/MarkerTooltip/MarkerTooltip.svelte.d.ts +13 -16
  3. package/dist/components/index.d.ts +0 -5
  4. package/dist/components/index.js +0 -5
  5. package/package.json +9 -16
  6. package/dist/components/DrawingSliders/DrawingSliders.svelte +0 -379
  7. package/dist/components/DrawingSliders/DrawingSliders.svelte.d.ts +0 -16
  8. package/dist/components/DrawingSliders/index.d.ts +0 -1
  9. package/dist/components/DrawingSliders/index.js +0 -1
  10. package/dist/components/MyCounterButton.svelte +0 -11
  11. package/dist/components/MyCounterButton.svelte.d.ts +0 -3
  12. package/dist/components/PropsTable/PropsTable.svelte +0 -107
  13. package/dist/components/PropsTable/PropsTable.svelte.d.ts +0 -26
  14. package/dist/components/RadialMenu/EffectPreview.svelte +0 -36
  15. package/dist/components/RadialMenu/EffectPreview.svelte.d.ts +0 -9
  16. package/dist/components/RadialMenu/EffectPreviewScene.svelte +0 -194
  17. package/dist/components/RadialMenu/EffectPreviewScene.svelte.d.ts +0 -8
  18. package/dist/components/RadialMenu/RadialMenu.svelte +0 -503
  19. package/dist/components/RadialMenu/RadialMenu.svelte.d.ts +0 -4
  20. package/dist/components/RadialMenu/RadialMenuItem.svelte +0 -176
  21. package/dist/components/RadialMenu/RadialMenuItem.svelte.d.ts +0 -11
  22. package/dist/components/RadialMenu/index.d.ts +0 -2
  23. package/dist/components/RadialMenu/index.js +0 -2
  24. package/dist/components/RadialMenu/types.d.ts +0 -35
  25. package/dist/components/RadialMenu/types.js +0 -1
  26. package/dist/components/Stage/components/AnnotationLayer/AnnotationLayer.svelte +0 -445
  27. package/dist/components/Stage/components/AnnotationLayer/AnnotationLayer.svelte.d.ts +0 -19
  28. package/dist/components/Stage/components/AnnotationLayer/AnnotationMaterial.svelte +0 -167
  29. package/dist/components/Stage/components/AnnotationLayer/AnnotationMaterial.svelte.d.ts +0 -20
  30. package/dist/components/Stage/components/AnnotationLayer/types.d.ts +0 -121
  31. package/dist/components/Stage/components/AnnotationLayer/types.js +0 -71
  32. package/dist/components/Stage/components/CursorLayer/CursorLayer.svelte +0 -148
  33. package/dist/components/Stage/components/CursorLayer/CursorLayer.svelte.d.ts +0 -7
  34. package/dist/components/Stage/components/CursorLayer/cursor.svg +0 -26
  35. package/dist/components/Stage/components/CursorLayer/index.d.ts +0 -2
  36. package/dist/components/Stage/components/CursorLayer/index.js +0 -1
  37. package/dist/components/Stage/components/CursorLayer/types.d.ts +0 -28
  38. package/dist/components/Stage/components/CursorLayer/types.js +0 -1
  39. package/dist/components/Stage/components/DrawingLayer/DrawingMaterial.svelte +0 -364
  40. package/dist/components/Stage/components/DrawingLayer/DrawingMaterial.svelte.d.ts +0 -24
  41. package/dist/components/Stage/components/DrawingLayer/types.d.ts +0 -56
  42. package/dist/components/Stage/components/DrawingLayer/types.js +0 -23
  43. package/dist/components/Stage/components/EdgeOverlayLayer/EdgeOverlayLayer.svelte +0 -72
  44. package/dist/components/Stage/components/EdgeOverlayLayer/EdgeOverlayLayer.svelte.d.ts +0 -11
  45. package/dist/components/Stage/components/EdgeOverlayLayer/types.d.ts +0 -29
  46. package/dist/components/Stage/components/EdgeOverlayLayer/types.js +0 -1
  47. package/dist/components/Stage/components/FogLayer/FogLayer.svelte +0 -75
  48. package/dist/components/Stage/components/FogLayer/FogLayer.svelte.d.ts +0 -11
  49. package/dist/components/Stage/components/FogLayer/types.d.ts +0 -42
  50. package/dist/components/Stage/components/FogLayer/types.js +0 -1
  51. package/dist/components/Stage/components/FogOfWarLayer/FogOfWarLayer.svelte +0 -249
  52. package/dist/components/Stage/components/FogOfWarLayer/FogOfWarLayer.svelte.d.ts +0 -19
  53. package/dist/components/Stage/components/FogOfWarLayer/FogOfWarMaterial.svelte +0 -200
  54. package/dist/components/Stage/components/FogOfWarLayer/FogOfWarMaterial.svelte.d.ts +0 -18
  55. package/dist/components/Stage/components/FogOfWarLayer/types.d.ts +0 -143
  56. package/dist/components/Stage/components/FogOfWarLayer/types.js +0 -1
  57. package/dist/components/Stage/components/GridLayer/GridLayer.svelte +0 -20
  58. package/dist/components/Stage/components/GridLayer/GridLayer.svelte.d.ts +0 -12
  59. package/dist/components/Stage/components/GridLayer/GridMaterial.svelte +0 -69
  60. package/dist/components/Stage/components/GridLayer/GridMaterial.svelte.d.ts +0 -10
  61. package/dist/components/Stage/components/GridLayer/types.d.ts +0 -65
  62. package/dist/components/Stage/components/GridLayer/types.js +0 -10
  63. package/dist/components/Stage/components/LayerInput/LayerInput.svelte +0 -300
  64. package/dist/components/Stage/components/LayerInput/LayerInput.svelte.d.ts +0 -20
  65. package/dist/components/Stage/components/MapLayer/MapLayer.svelte +0 -196
  66. package/dist/components/Stage/components/MapLayer/MapLayer.svelte.d.ts +0 -24
  67. package/dist/components/Stage/components/MapLayer/dataSources/GifDataSource.d.ts +0 -93
  68. package/dist/components/Stage/components/MapLayer/dataSources/GifDataSource.js +0 -229
  69. package/dist/components/Stage/components/MapLayer/dataSources/IMapDataSource.d.ts +0 -51
  70. package/dist/components/Stage/components/MapLayer/dataSources/IMapDataSource.js +0 -1
  71. package/dist/components/Stage/components/MapLayer/dataSources/ImageDataSource.d.ts +0 -49
  72. package/dist/components/Stage/components/MapLayer/dataSources/ImageDataSource.js +0 -87
  73. package/dist/components/Stage/components/MapLayer/dataSources/VideoDataSource.d.ts +0 -52
  74. package/dist/components/Stage/components/MapLayer/dataSources/VideoDataSource.js +0 -141
  75. package/dist/components/Stage/components/MapLayer/dataSources/dataSourceFactory.d.ts +0 -21
  76. package/dist/components/Stage/components/MapLayer/dataSources/dataSourceFactory.js +0 -44
  77. package/dist/components/Stage/components/MapLayer/dataSources/index.d.ts +0 -15
  78. package/dist/components/Stage/components/MapLayer/dataSources/index.js +0 -14
  79. package/dist/components/Stage/components/MapLayer/types.d.ts +0 -54
  80. package/dist/components/Stage/components/MapLayer/types.js +0 -9
  81. package/dist/components/Stage/components/MarkerLayer/MarkerLayer.svelte +0 -398
  82. package/dist/components/Stage/components/MarkerLayer/MarkerLayer.svelte.d.ts +0 -24
  83. package/dist/components/Stage/components/MarkerLayer/MarkerToken.svelte +0 -262
  84. package/dist/components/Stage/components/MarkerLayer/MarkerToken.svelte.d.ts +0 -27
  85. package/dist/components/Stage/components/MarkerLayer/types.d.ts +0 -109
  86. package/dist/components/Stage/components/MarkerLayer/types.js +0 -21
  87. package/dist/components/Stage/components/MeasurementLayer/MeasurementLayer.svelte +0 -364
  88. package/dist/components/Stage/components/MeasurementLayer/MeasurementLayer.svelte.d.ts +0 -49
  89. package/dist/components/Stage/components/MeasurementLayer/MeasurementManager.svelte +0 -473
  90. package/dist/components/Stage/components/MeasurementLayer/MeasurementManager.svelte.d.ts +0 -24
  91. package/dist/components/Stage/components/MeasurementLayer/measurements/BaseMeasurement.d.ts +0 -150
  92. package/dist/components/Stage/components/MeasurementLayer/measurements/BaseMeasurement.js +0 -274
  93. package/dist/components/Stage/components/MeasurementLayer/measurements/BeamMeasurement.d.ts +0 -10
  94. package/dist/components/Stage/components/MeasurementLayer/measurements/BeamMeasurement.js +0 -58
  95. package/dist/components/Stage/components/MeasurementLayer/measurements/CircleMeasurement.d.ts +0 -9
  96. package/dist/components/Stage/components/MeasurementLayer/measurements/CircleMeasurement.js +0 -66
  97. package/dist/components/Stage/components/MeasurementLayer/measurements/ConeMeasurement.d.ts +0 -10
  98. package/dist/components/Stage/components/MeasurementLayer/measurements/ConeMeasurement.js +0 -103
  99. package/dist/components/Stage/components/MeasurementLayer/measurements/LineMeasurement.d.ts +0 -9
  100. package/dist/components/Stage/components/MeasurementLayer/measurements/LineMeasurement.js +0 -75
  101. package/dist/components/Stage/components/MeasurementLayer/measurements/RectangleMeasurement.d.ts +0 -9
  102. package/dist/components/Stage/components/MeasurementLayer/measurements/RectangleMeasurement.js +0 -73
  103. package/dist/components/Stage/components/MeasurementLayer/measurements/index.d.ts +0 -2
  104. package/dist/components/Stage/components/MeasurementLayer/measurements/index.js +0 -7
  105. package/dist/components/Stage/components/MeasurementLayer/types.d.ts +0 -76
  106. package/dist/components/Stage/components/MeasurementLayer/types.js +0 -9
  107. package/dist/components/Stage/components/MeasurementLayer/utils/canvasDrawing.d.ts +0 -83
  108. package/dist/components/Stage/components/MeasurementLayer/utils/canvasDrawing.js +0 -267
  109. package/dist/components/Stage/components/MeasurementLayer/utils/distanceCalculations.d.ts +0 -74
  110. package/dist/components/Stage/components/MeasurementLayer/utils/distanceCalculations.js +0 -130
  111. package/dist/components/Stage/components/ParticleSystem/ParticleSystem.svelte +0 -220
  112. package/dist/components/Stage/components/ParticleSystem/ParticleSystem.svelte.d.ts +0 -9
  113. package/dist/components/Stage/components/ParticleSystem/particles/atlases/ash.png +0 -0
  114. package/dist/components/Stage/components/ParticleSystem/particles/atlases/leaves.png +0 -0
  115. package/dist/components/Stage/components/ParticleSystem/particles/atlases/rain.png +0 -0
  116. package/dist/components/Stage/components/ParticleSystem/particles/atlases/snow.png +0 -0
  117. package/dist/components/Stage/components/ParticleSystem/rng.d.ts +0 -7
  118. package/dist/components/Stage/components/ParticleSystem/rng.js +0 -20
  119. package/dist/components/Stage/components/ParticleSystem/types.d.ts +0 -88
  120. package/dist/components/Stage/components/ParticleSystem/types.js +0 -37
  121. package/dist/components/Stage/components/PerformanceDebugger/PerformanceDebugger.svelte +0 -144
  122. package/dist/components/Stage/components/PerformanceDebugger/PerformanceDebugger.svelte.d.ts +0 -19
  123. package/dist/components/Stage/components/PerformanceDebugger/index.d.ts +0 -1
  124. package/dist/components/Stage/components/PerformanceDebugger/index.js +0 -1
  125. package/dist/components/Stage/components/PerformanceOverlay/PerformanceOverlay.svelte +0 -208
  126. package/dist/components/Stage/components/PerformanceOverlay/PerformanceOverlay.svelte.d.ts +0 -7
  127. package/dist/components/Stage/components/PerformanceOverlay/index.d.ts +0 -1
  128. package/dist/components/Stage/components/PerformanceOverlay/index.js +0 -1
  129. package/dist/components/Stage/components/PointerInputManager/PointerInputManager.svelte +0 -201
  130. package/dist/components/Stage/components/PointerInputManager/PointerInputManager.svelte.d.ts +0 -17
  131. package/dist/components/Stage/components/Scene/Scene.svelte +0 -651
  132. package/dist/components/Stage/components/Scene/Scene.svelte.d.ts +0 -88
  133. package/dist/components/Stage/components/Scene/luts.d.ts +0 -7
  134. package/dist/components/Stage/components/Scene/luts.js +0 -33
  135. package/dist/components/Stage/components/Scene/types.d.ts +0 -207
  136. package/dist/components/Stage/components/Scene/types.js +0 -35
  137. package/dist/components/Stage/components/Stage/Stage.svelte +0 -332
  138. package/dist/components/Stage/components/Stage/Stage.svelte.d.ts +0 -86
  139. package/dist/components/Stage/components/Stage/types.d.ts +0 -163
  140. package/dist/components/Stage/components/Stage/types.js +0 -5
  141. package/dist/components/Stage/components/WeatherLayer/WeatherLayer.svelte +0 -135
  142. package/dist/components/Stage/components/WeatherLayer/WeatherLayer.svelte.d.ts +0 -13
  143. package/dist/components/Stage/components/WeatherLayer/presets/AshPreset.d.ts +0 -3
  144. package/dist/components/Stage/components/WeatherLayer/presets/AshPreset.js +0 -69
  145. package/dist/components/Stage/components/WeatherLayer/presets/LeavesPreset.d.ts +0 -3
  146. package/dist/components/Stage/components/WeatherLayer/presets/LeavesPreset.js +0 -68
  147. package/dist/components/Stage/components/WeatherLayer/presets/RainPreset.d.ts +0 -3
  148. package/dist/components/Stage/components/WeatherLayer/presets/RainPreset.js +0 -67
  149. package/dist/components/Stage/components/WeatherLayer/presets/SnowPreset.d.ts +0 -3
  150. package/dist/components/Stage/components/WeatherLayer/presets/SnowPreset.js +0 -68
  151. package/dist/components/Stage/components/WeatherLayer/presets/index.d.ts +0 -5
  152. package/dist/components/Stage/components/WeatherLayer/presets/index.js +0 -5
  153. package/dist/components/Stage/components/WeatherLayer/types.d.ts +0 -31
  154. package/dist/components/Stage/components/WeatherLayer/types.js +0 -9
  155. package/dist/components/Stage/helpers/clippingPlaneStore.svelte.d.ts +0 -7
  156. package/dist/components/Stage/helpers/clippingPlaneStore.svelte.js +0 -23
  157. package/dist/components/Stage/helpers/debugState.svelte.d.ts +0 -10
  158. package/dist/components/Stage/helpers/debugState.svelte.js +0 -13
  159. package/dist/components/Stage/helpers/grid.d.ts +0 -72
  160. package/dist/components/Stage/helpers/grid.js +0 -444
  161. package/dist/components/Stage/helpers/lazyBrush.d.ts +0 -63
  162. package/dist/components/Stage/helpers/lazyBrush.js +0 -137
  163. package/dist/components/Stage/helpers/performanceMetrics.svelte.d.ts +0 -62
  164. package/dist/components/Stage/helpers/performanceMetrics.svelte.js +0 -165
  165. package/dist/components/Stage/helpers/utils.d.ts +0 -3
  166. package/dist/components/Stage/helpers/utils.js +0 -18
  167. package/dist/components/Stage/index.d.ts +0 -21
  168. package/dist/components/Stage/index.js +0 -21
  169. package/dist/components/Stage/shaders/AnnotationEffects.frag +0 -1070
  170. package/dist/components/Stage/shaders/Annotations.frag +0 -29
  171. package/dist/components/Stage/shaders/Drawing.frag +0 -83
  172. package/dist/components/Stage/shaders/Drawing.vert +0 -5
  173. package/dist/components/Stage/shaders/Fog.frag +0 -147
  174. package/dist/components/Stage/shaders/FractalNoise.frag +0 -96
  175. package/dist/components/Stage/shaders/GridShader.frag +0 -174
  176. package/dist/components/Stage/shaders/Overlay.frag +0 -23
  177. package/dist/components/Stage/shaders/Overlay.vert +0 -0
  178. package/dist/components/Stage/shaders/Particles.frag +0 -27
  179. package/dist/components/Stage/shaders/Particles.vert +0 -51
  180. package/dist/components/Stage/shaders/ToolOutline.frag +0 -59
  181. package/dist/components/Stage/shaders/default.vert +0 -8
  182. package/dist/components/Stage/types.d.ts +0 -4
  183. package/dist/components/Stage/types.js +0 -1
  184. package/src/lib/components/Avatar/Avatar.svelte +0 -82
  185. package/src/lib/components/Avatar/AvatarFileInput.svelte +0 -85
  186. package/src/lib/components/Avatar/AvatarPopover.svelte +0 -34
  187. package/src/lib/components/Avatar/index.ts +0 -4
  188. package/src/lib/components/Avatar/types.ts +0 -24
  189. package/src/lib/components/BrushSizeSlider/BrushSizeSlider.svelte +0 -174
  190. package/src/lib/components/BrushSizeSlider/index.ts +0 -1
  191. package/src/lib/components/Button/Button.svelte +0 -182
  192. package/src/lib/components/Button/ConfirmActionButton.svelte +0 -98
  193. package/src/lib/components/Button/IconButton.svelte +0 -121
  194. package/src/lib/components/Button/RadioButton.svelte +0 -93
  195. package/src/lib/components/Button/index.ts +0 -5
  196. package/src/lib/components/Button/types.ts +0 -54
  197. package/src/lib/components/CardFan/CardFan.svelte +0 -165
  198. package/src/lib/components/CardFan/index.ts +0 -2
  199. package/src/lib/components/CardFan/types.ts +0 -6
  200. package/src/lib/components/CodeBlock/Code.svelte +0 -7
  201. package/src/lib/components/CodeBlock/CodeBlock.svelte +0 -102
  202. package/src/lib/components/CodeBlock/index.ts +0 -3
  203. package/src/lib/components/CodeBlock/types.ts +0 -10
  204. package/src/lib/components/ColorMode/ColorMode.svelte +0 -8
  205. package/src/lib/components/ColorMode/index.ts +0 -2
  206. package/src/lib/components/ColorMode/types.ts +0 -12
  207. package/src/lib/components/ColorPicker/ColorPicker.svelte +0 -838
  208. package/src/lib/components/ColorPicker/ColorPickerSwatch.svelte +0 -32
  209. package/src/lib/components/ColorPicker/index.ts +0 -3
  210. package/src/lib/components/ColorPicker/types.ts +0 -51
  211. package/src/lib/components/ContextMenu/ContextMenu.svelte +0 -86
  212. package/src/lib/components/ContextMenu/index.ts +0 -2
  213. package/src/lib/components/ContextMenu/types.ts +0 -15
  214. package/src/lib/components/DrawingSliders/DrawingSliders.svelte +0 -379
  215. package/src/lib/components/DrawingSliders/index.ts +0 -1
  216. package/src/lib/components/Editor/Editor.svelte +0 -825
  217. package/src/lib/components/Editor/index.ts +0 -1
  218. package/src/lib/components/FogSliders/FogSliders.svelte +0 -33
  219. package/src/lib/components/FogSliders/index.ts +0 -1
  220. package/src/lib/components/Hr/Hr.svelte +0 -15
  221. package/src/lib/components/Hr/index.ts +0 -1
  222. package/src/lib/components/Icon/Icon.svelte +0 -6
  223. package/src/lib/components/Icon/index.ts +0 -2
  224. package/src/lib/components/Icon/types.ts +0 -20
  225. package/src/lib/components/Input/DualInputSlider.svelte +0 -126
  226. package/src/lib/components/Input/FileInput.svelte +0 -176
  227. package/src/lib/components/Input/FormControl.svelte +0 -150
  228. package/src/lib/components/Input/FormError.svelte +0 -37
  229. package/src/lib/components/Input/Input.svelte +0 -56
  230. package/src/lib/components/Input/InputCheckbox.svelte +0 -99
  231. package/src/lib/components/Input/InputSlider.svelte +0 -86
  232. package/src/lib/components/Input/Label.svelte +0 -19
  233. package/src/lib/components/Input/index.ts +0 -9
  234. package/src/lib/components/Input/types.ts +0 -39
  235. package/src/lib/components/Link/Link.svelte +0 -41
  236. package/src/lib/components/Link/LinkBox.svelte +0 -20
  237. package/src/lib/components/Link/LinkOverlay.svelte +0 -23
  238. package/src/lib/components/Link/index.ts +0 -4
  239. package/src/lib/components/Link/types.ts +0 -17
  240. package/src/lib/components/Loading/Loader.svelte +0 -60
  241. package/src/lib/components/Loading/Skeleton.svelte +0 -9
  242. package/src/lib/components/Loading/index.ts +0 -2
  243. package/src/lib/components/Logo/Logo.svelte +0 -16
  244. package/src/lib/components/Logo/index.ts +0 -1
  245. package/src/lib/components/MarkerTooltip/MarkerTooltip.svelte +0 -435
  246. package/src/lib/components/MarkerTooltip/index.ts +0 -1
  247. package/src/lib/components/Menu/SelectorMenu.svelte +0 -280
  248. package/src/lib/components/Menu/index.ts +0 -2
  249. package/src/lib/components/Menu/types.ts +0 -17
  250. package/src/lib/components/MyCounterButton.svelte +0 -11
  251. package/src/lib/components/Panel/index.ts +0 -2
  252. package/src/lib/components/Panel/panel.svelte +0 -18
  253. package/src/lib/components/Panel/types.ts +0 -8
  254. package/src/lib/components/PersistButton/PersistButton.svelte +0 -100
  255. package/src/lib/components/PersistButton/index.ts +0 -1
  256. package/src/lib/components/Popover/Popover.svelte +0 -81
  257. package/src/lib/components/Popover/index.ts +0 -2
  258. package/src/lib/components/Popover/types.ts +0 -19
  259. package/src/lib/components/PropsTable/PropsTable.svelte +0 -107
  260. package/src/lib/components/RadialMenu/EffectPreview.svelte +0 -36
  261. package/src/lib/components/RadialMenu/EffectPreviewScene.svelte +0 -194
  262. package/src/lib/components/RadialMenu/RadialMenu.svelte +0 -503
  263. package/src/lib/components/RadialMenu/RadialMenuItem.svelte +0 -176
  264. package/src/lib/components/RadialMenu/index.ts +0 -2
  265. package/src/lib/components/RadialMenu/types.ts +0 -35
  266. package/src/lib/components/Select/Select.svelte +0 -342
  267. package/src/lib/components/Select/index.ts +0 -2
  268. package/src/lib/components/Select/types.ts +0 -22
  269. package/src/lib/components/Spacer/Spacer.svelte +0 -14
  270. package/src/lib/components/Spacer/index.ts +0 -2
  271. package/src/lib/components/Spacer/types.ts +0 -5
  272. package/src/lib/components/Stage/components/AnnotationLayer/AnnotationLayer.svelte +0 -445
  273. package/src/lib/components/Stage/components/AnnotationLayer/AnnotationMaterial.svelte +0 -167
  274. package/src/lib/components/Stage/components/AnnotationLayer/types.ts +0 -196
  275. package/src/lib/components/Stage/components/CursorLayer/CursorLayer.svelte +0 -148
  276. package/src/lib/components/Stage/components/CursorLayer/cursor.svg +0 -26
  277. package/src/lib/components/Stage/components/CursorLayer/index.ts +0 -2
  278. package/src/lib/components/Stage/components/CursorLayer/types.ts +0 -23
  279. package/src/lib/components/Stage/components/DrawingLayer/DrawingMaterial.svelte +0 -364
  280. package/src/lib/components/Stage/components/DrawingLayer/types.ts +0 -65
  281. package/src/lib/components/Stage/components/EdgeOverlayLayer/EdgeOverlayLayer.svelte +0 -72
  282. package/src/lib/components/Stage/components/EdgeOverlayLayer/types.ts +0 -34
  283. package/src/lib/components/Stage/components/FogLayer/FogLayer.svelte +0 -75
  284. package/src/lib/components/Stage/components/FogLayer/types.ts +0 -51
  285. package/src/lib/components/Stage/components/FogOfWarLayer/FogOfWarLayer.svelte +0 -249
  286. package/src/lib/components/Stage/components/FogOfWarLayer/FogOfWarMaterial.svelte +0 -200
  287. package/src/lib/components/Stage/components/FogOfWarLayer/types.ts +0 -116
  288. package/src/lib/components/Stage/components/GridLayer/GridLayer.svelte +0 -20
  289. package/src/lib/components/Stage/components/GridLayer/GridMaterial.svelte +0 -69
  290. package/src/lib/components/Stage/components/GridLayer/types.ts +0 -79
  291. package/src/lib/components/Stage/components/LayerInput/LayerInput.svelte +0 -300
  292. package/src/lib/components/Stage/components/MapLayer/MapLayer.svelte +0 -196
  293. package/src/lib/components/Stage/components/MapLayer/dataSources/GifDataSource.ts +0 -265
  294. package/src/lib/components/Stage/components/MapLayer/dataSources/IMapDataSource.ts +0 -55
  295. package/src/lib/components/Stage/components/MapLayer/dataSources/ImageDataSource.ts +0 -87
  296. package/src/lib/components/Stage/components/MapLayer/dataSources/VideoDataSource.ts +0 -150
  297. package/src/lib/components/Stage/components/MapLayer/dataSources/dataSourceFactory.ts +0 -48
  298. package/src/lib/components/Stage/components/MapLayer/dataSources/index.ts +0 -16
  299. package/src/lib/components/Stage/components/MapLayer/types.ts +0 -58
  300. package/src/lib/components/Stage/components/MarkerLayer/MarkerLayer.svelte +0 -398
  301. package/src/lib/components/Stage/components/MarkerLayer/MarkerToken.svelte +0 -262
  302. package/src/lib/components/Stage/components/MarkerLayer/types.ts +0 -126
  303. package/src/lib/components/Stage/components/MeasurementLayer/MeasurementLayer.svelte +0 -364
  304. package/src/lib/components/Stage/components/MeasurementLayer/MeasurementManager.svelte +0 -473
  305. package/src/lib/components/Stage/components/MeasurementLayer/measurements/BaseMeasurement.ts +0 -427
  306. package/src/lib/components/Stage/components/MeasurementLayer/measurements/BeamMeasurement.ts +0 -105
  307. package/src/lib/components/Stage/components/MeasurementLayer/measurements/CircleMeasurement.ts +0 -98
  308. package/src/lib/components/Stage/components/MeasurementLayer/measurements/ConeMeasurement.ts +0 -163
  309. package/src/lib/components/Stage/components/MeasurementLayer/measurements/LineMeasurement.ts +0 -102
  310. package/src/lib/components/Stage/components/MeasurementLayer/measurements/RectangleMeasurement.ts +0 -120
  311. package/src/lib/components/Stage/components/MeasurementLayer/measurements/index.ts +0 -7
  312. package/src/lib/components/Stage/components/MeasurementLayer/types.ts +0 -94
  313. package/src/lib/components/Stage/components/MeasurementLayer/utils/canvasDrawing.ts +0 -357
  314. package/src/lib/components/Stage/components/MeasurementLayer/utils/distanceCalculations.ts +0 -170
  315. package/src/lib/components/Stage/components/ParticleSystem/ParticleSystem.svelte +0 -220
  316. package/src/lib/components/Stage/components/ParticleSystem/particles/atlases/ash.png +0 -0
  317. package/src/lib/components/Stage/components/ParticleSystem/particles/atlases/leaves.png +0 -0
  318. package/src/lib/components/Stage/components/ParticleSystem/particles/atlases/rain.png +0 -0
  319. package/src/lib/components/Stage/components/ParticleSystem/particles/atlases/snow.png +0 -0
  320. package/src/lib/components/Stage/components/ParticleSystem/rng.js +0 -20
  321. package/src/lib/components/Stage/components/ParticleSystem/types.ts +0 -95
  322. package/src/lib/components/Stage/components/PerformanceDebugger/PerformanceDebugger.svelte +0 -144
  323. package/src/lib/components/Stage/components/PerformanceDebugger/index.ts +0 -1
  324. package/src/lib/components/Stage/components/PerformanceOverlay/PerformanceOverlay.svelte +0 -208
  325. package/src/lib/components/Stage/components/PerformanceOverlay/index.ts +0 -1
  326. package/src/lib/components/Stage/components/PointerInputManager/PointerInputManager.svelte +0 -201
  327. package/src/lib/components/Stage/components/Scene/Scene.svelte +0 -651
  328. package/src/lib/components/Stage/components/Scene/luts.ts +0 -24
  329. package/src/lib/components/Stage/components/Scene/types.ts +0 -225
  330. package/src/lib/components/Stage/components/Stage/Stage.svelte +0 -332
  331. package/src/lib/components/Stage/components/Stage/types.ts +0 -136
  332. package/src/lib/components/Stage/components/WeatherLayer/WeatherLayer.svelte +0 -135
  333. package/src/lib/components/Stage/components/WeatherLayer/presets/AshPreset.ts +0 -71
  334. package/src/lib/components/Stage/components/WeatherLayer/presets/LeavesPreset.ts +0 -70
  335. package/src/lib/components/Stage/components/WeatherLayer/presets/RainPreset.ts +0 -68
  336. package/src/lib/components/Stage/components/WeatherLayer/presets/SnowPreset.ts +0 -70
  337. package/src/lib/components/Stage/components/WeatherLayer/presets/index.ts +0 -6
  338. package/src/lib/components/Stage/components/WeatherLayer/types.ts +0 -35
  339. package/src/lib/components/Stage/helpers/clippingPlaneStore.svelte.ts +0 -28
  340. package/src/lib/components/Stage/helpers/debugState.svelte.ts +0 -18
  341. package/src/lib/components/Stage/helpers/grid.ts +0 -548
  342. package/src/lib/components/Stage/helpers/lazyBrush.ts +0 -171
  343. package/src/lib/components/Stage/helpers/performanceMetrics.svelte.ts +0 -220
  344. package/src/lib/components/Stage/helpers/utils.ts +0 -21
  345. package/src/lib/components/Stage/index.ts +0 -49
  346. package/src/lib/components/Stage/shaders/AnnotationEffects.frag +0 -1070
  347. package/src/lib/components/Stage/shaders/Annotations.frag +0 -29
  348. package/src/lib/components/Stage/shaders/Drawing.frag +0 -83
  349. package/src/lib/components/Stage/shaders/Drawing.vert +0 -5
  350. package/src/lib/components/Stage/shaders/Fog.frag +0 -147
  351. package/src/lib/components/Stage/shaders/FractalNoise.frag +0 -96
  352. package/src/lib/components/Stage/shaders/GridShader.frag +0 -174
  353. package/src/lib/components/Stage/shaders/Overlay.frag +0 -23
  354. package/src/lib/components/Stage/shaders/Overlay.vert +0 -0
  355. package/src/lib/components/Stage/shaders/Particles.frag +0 -27
  356. package/src/lib/components/Stage/shaders/Particles.vert +0 -51
  357. package/src/lib/components/Stage/shaders/ToolOutline.frag +0 -59
  358. package/src/lib/components/Stage/shaders/default.vert +0 -8
  359. package/src/lib/components/Stage/types.ts +0 -4
  360. package/src/lib/components/Table/Table.svelte +0 -16
  361. package/src/lib/components/Table/Td.svelte +0 -17
  362. package/src/lib/components/Table/Th.svelte +0 -18
  363. package/src/lib/components/Table/index.ts +0 -4
  364. package/src/lib/components/Table/types.ts +0 -14
  365. package/src/lib/components/Text/Text.svelte +0 -23
  366. package/src/lib/components/Text/index.ts +0 -2
  367. package/src/lib/components/Text/types.ts +0 -12
  368. package/src/lib/components/Title/Title.svelte +0 -54
  369. package/src/lib/components/Title/index.ts +0 -2
  370. package/src/lib/components/Title/types.ts +0 -9
  371. package/src/lib/components/Toast/Toast.svelte +0 -155
  372. package/src/lib/components/Toast/index.ts +0 -5
  373. package/src/lib/components/Toast/toastCookie.ts +0 -24
  374. package/src/lib/components/Toast/types.ts +0 -6
  375. package/src/lib/components/ToolTip/ToolTip.svelte +0 -70
  376. package/src/lib/components/ToolTip/index.ts +0 -2
  377. package/src/lib/components/ToolTip/types.ts +0 -14
  378. package/src/lib/components/index.ts +0 -32
  379. package/src/lib/components/types.ts +0 -0
  380. package/src/lib/index.ts +0 -2
  381. package/src/lib/styles/globals.css +0 -108
  382. package/src/lib/styles/normalize.css +0 -9
  383. package/src/lib/styles/reset.css +0 -133
  384. package/src/lib/styles/utilities.css +0 -179
  385. package/src/lib/styles/vars.css +0 -1103
  386. package/src/lib/types/awareness.ts +0 -17
  387. package/src/lib/utils/rle.ts +0 -217
@@ -1,548 +0,0 @@
1
- import * as THREE from 'three';
2
- import { GridMode, GridType, type GridLayerProps } from '../components/GridLayer/types';
3
- import type { DisplayProps } from '../components/Stage/types';
4
-
5
- // Hexagonal grid offset factor
6
- const s = { x: 1.0, y: 1.7320508 }; // sqrt(3)
7
-
8
- /**
9
- * Gets the size of a grid cell in pixels
10
- * @param gridType Type of grid (square or hex)
11
- * @param gridSizePixels Base grid size in pixels
12
- * @returns Width of grid cell in pixels
13
- */
14
- export function getGridCellSize(grid: GridLayerProps, display: DisplayProps): number {
15
- return (grid.spacing * display.resolution.x) / display.size.x;
16
- }
17
-
18
- /**
19
- * Calculates the grid origin for Map defined mode
20
- * Matches the shader logic for grid positioning
21
- * @param grid Grid configuration
22
- * @param display Display properties
23
- * @returns Grid origin in pixels (from top-left corner)
24
- */
25
- export function getGridOrigin(grid: GridLayerProps, display: DisplayProps): THREE.Vector2 {
26
- // In FillSpace mode, grid is centered with padding
27
- if ((grid.gridMode || 0) === GridMode.FillSpace) {
28
- // Grid starts at padding position
29
- return new THREE.Vector2(display.padding.x, display.padding.y);
30
- }
31
-
32
- // In MapDefined mode, calculate based on grid size
33
- if (!grid.fixedGridCount) {
34
- // Fallback to padding if no fixed count
35
- return new THREE.Vector2(display.padding.x, display.padding.y);
36
- }
37
-
38
- // Calculate pixel pitch (inches per pixel)
39
- const pixelPitchX = display.size.x / display.resolution.x;
40
- const pixelPitchY = display.size.y / display.resolution.y;
41
-
42
- // Calculate grid spacing in pixels
43
- const gridSpacingX = grid.spacing / pixelPitchX;
44
- const gridSpacingY = grid.spacing / pixelPitchY;
45
-
46
- // Calculate total grid size in pixels (must match shader calculation)
47
- // This matches the shader: gridSize_px = gridSpacing_px * gridCount + uLineThickness / 2.0
48
- const gridWidthPx = gridSpacingX * grid.fixedGridCount.x + grid.lineThickness / 2.0;
49
- const gridHeightPx = gridSpacingY * grid.fixedGridCount.y + grid.lineThickness / 2.0;
50
-
51
- let originX: number;
52
- let originY: number;
53
-
54
- // If grid fits horizontally, center it; otherwise align left
55
- if (gridWidthPx <= display.resolution.x) {
56
- originX = (display.resolution.x - gridWidthPx) / 2.0;
57
- } else {
58
- originX = 0;
59
- }
60
-
61
- // If grid fits vertically, center it; otherwise align top
62
- if (gridHeightPx <= display.resolution.y) {
63
- originY = (display.resolution.y - gridHeightPx) / 2.0;
64
- } else {
65
- // Grid overflows - start at top (Y=0 in screen coordinates)
66
- originY = 0;
67
- }
68
-
69
- return new THREE.Vector2(originX, originY);
70
- }
71
-
72
- /**
73
- * Snaps a position to the nearest square grid intersection
74
- * @param position Position to snap in pixels
75
- * @param spacing Grid spacing in pixels
76
- * @returns Snapped position in pixels
77
- */
78
- function snapToSquareGrid(position: THREE.Vector2, spacing: THREE.Vector2): THREE.Vector2 {
79
- const roundedX = Math.round(position.x / spacing.x) * spacing.x;
80
- const roundedY = Math.round(position.y / spacing.y) * spacing.y;
81
-
82
- return new THREE.Vector2(roundedX, roundedY);
83
- }
84
-
85
- /**
86
- * Snaps a position to the nearest hexagonal grid center only
87
- * Exactly matches the shader's getHex implementation
88
- * @param position Position to snap in pixels
89
- * @param spacing Grid spacing in pixels
90
- * @returns The nearest hex center position
91
- */
92
- function snapToHexCenter(position: THREE.Vector2, spacing: THREE.Vector2): THREE.Vector2 {
93
- // Exact match of shader's getHex function
94
- // First normalize by spacing like the shader does: hexUv = getHex(coords / spacing)
95
- const p = new THREE.Vector2(position.x / spacing.x, position.y / spacing.y);
96
-
97
- // vec4 hC = floor(vec4(p, p - vec2(0.5, 1.0)) / s.xyxy) + 0.5;
98
- // where s = vec2(1.0, 1.7320508)
99
- const hC = {
100
- x: Math.floor(p.x / s.x) + 0.5,
101
- y: Math.floor(p.y / s.y) + 0.5,
102
- z: Math.floor((p.x - 0.5) / s.x) + 0.5,
103
- w: Math.floor((p.y - 1.0) / s.y) + 0.5
104
- };
105
-
106
- // vec4 h = vec4(p - hC.xy * s, p - (hC.zw + 0.5) * s);
107
- const h = {
108
- x: p.x - hC.x * s.x,
109
- y: p.y - hC.y * s.y,
110
- z: p.x - (hC.z + 0.5) * s.x,
111
- w: p.y - (hC.w + 0.5) * s.y
112
- };
113
-
114
- // dot(h.xy, h.xy) < dot(h.zw, h.zw)
115
- const dist1 = h.x * h.x + h.y * h.y;
116
- const dist2 = h.z * h.z + h.w * h.w;
117
-
118
- // The shader returns the relative position, but we want the actual center
119
- // So we need to convert back to the center position
120
- let center: THREE.Vector2;
121
- if (dist1 < dist2) {
122
- // First grid center
123
- center = new THREE.Vector2(hC.x * s.x, hC.y * s.y);
124
- } else {
125
- // Second grid center (offset)
126
- center = new THREE.Vector2((hC.z + 0.5) * s.x, (hC.w + 0.5) * s.y);
127
- }
128
-
129
- // Scale back to pixel coordinates
130
- return new THREE.Vector2(center.x * spacing.x, center.y * spacing.y);
131
- }
132
-
133
- /**
134
- * Snaps a position to the nearest hexagonal grid intersection (includes vertices and edges)
135
- * Based on the shader's hexagonal grid implementation
136
- * @param position Position to snap in pixels
137
- * @param spacing Grid spacing in pixels
138
- * @returns The distance to the nearest center and the center
139
- */
140
- function distanceToHexCenter(position: THREE.Vector2, spacing: THREE.Vector2): THREE.Vector2 {
141
- // This function finds the nearest center in a hexagonal grid. The centers of a
142
- // hexagonal grid can be represented by two offset square grids. The two grids
143
- // are offset by half the grid spacing in the x direction and sqrt(3)/2 times
144
- // the grid spacing in the y direction.
145
-
146
- // Calculate the nearest cell for first grid
147
- const gridPoints = {
148
- first: {
149
- x: Math.floor(position.x / (spacing.x * s.x)) + 0.5,
150
- y: Math.floor(position.y / (spacing.y * s.y)) + 0.5
151
- },
152
- // Offset in x and y directions
153
- second: {
154
- x: Math.floor((position.x - s.x * spacing.x * 0.5) / (spacing.x * s.x)) + 0.5,
155
- y: Math.floor((position.y - s.y * spacing.y * 0.5) / (spacing.y * s.y)) + 0.5
156
- },
157
- // Additional grid offset in y direction by spacing/sqrt(3)
158
- third: {
159
- x: Math.floor(position.x / (spacing.x * s.x)) + 0.5,
160
- y: Math.floor((position.y - spacing.y / Math.sqrt(3)) / (spacing.y * s.y)) + 0.5
161
- },
162
- // Additional grid offset in y direction by spacing/sqrt(3)
163
- fourth: {
164
- x: Math.floor(position.x / (spacing.x * s.x)) + 0.5,
165
- y: Math.floor((position.y + spacing.y / Math.sqrt(3)) / (spacing.y * s.y)) + 0.5
166
- }
167
- };
168
-
169
- // Calculate the centers
170
- const center1 = new THREE.Vector2(gridPoints.first.x * spacing.x * s.x, gridPoints.first.y * spacing.y * s.y);
171
- const center2 = new THREE.Vector2(
172
- (gridPoints.second.x + 0.5) * spacing.x * s.x,
173
- (gridPoints.second.y + 0.5) * spacing.y * s.y
174
- );
175
- const center3 = new THREE.Vector2(
176
- gridPoints.third.x * spacing.x * s.x,
177
- gridPoints.third.y * spacing.y * s.y + spacing.y / Math.sqrt(3)
178
- );
179
- const center4 = new THREE.Vector2(
180
- gridPoints.fourth.x * spacing.x * s.x,
181
- gridPoints.fourth.y * spacing.y * s.y - spacing.y / Math.sqrt(3)
182
- );
183
-
184
- // Calculate vertices around each center (line intersections)
185
- const getHexVertices = (center: THREE.Vector2) => {
186
- const vertices: THREE.Vector2[] = [];
187
- const radius = spacing.x; // Distance from center to vertex
188
-
189
- for (let i = 0; i < 6; i++) {
190
- const angle = (Math.PI / 3) * i;
191
- vertices.push(new THREE.Vector2(center.x + radius * Math.cos(angle), center.y + radius * Math.sin(angle)));
192
- }
193
- return vertices;
194
- };
195
-
196
- // Get vertices for each center
197
- const vertices1 = getHexVertices(center1);
198
- const vertices2 = getHexVertices(center2);
199
- const vertices3 = getHexVertices(center3);
200
- const vertices4 = getHexVertices(center4);
201
-
202
- // Calculate distances to all points (centers and vertices)
203
- const distances = [
204
- { d: Math.pow(position.x - center1.x, 2) + Math.pow(position.y - center1.y, 2), point: center1 },
205
- { d: Math.pow(position.x - center2.x, 2) + Math.pow(position.y - center2.y, 2), point: center2 },
206
- { d: Math.pow(position.x - center3.x, 2) + Math.pow(position.y - center3.y, 2), point: center3 },
207
- { d: Math.pow(position.x - center4.x, 2) + Math.pow(position.y - center4.y, 2), point: center4 },
208
- ...vertices1.map((v) => ({
209
- d: Math.pow(position.x - v.x, 2) + Math.pow(position.y - v.y, 2),
210
- point: v
211
- })),
212
- ...vertices2.map((v) => ({
213
- d: Math.pow(position.x - v.x, 2) + Math.pow(position.y - v.y, 2),
214
- point: v
215
- })),
216
- ...vertices3.map((v) => ({
217
- d: Math.pow(position.x - v.x, 2) + Math.pow(position.y - v.y, 2),
218
- point: v
219
- })),
220
- ...vertices4.map((v) => ({
221
- d: Math.pow(position.x - v.x, 2) + Math.pow(position.y - v.y, 2),
222
- point: v
223
- }))
224
- ];
225
-
226
- // Find the closest point
227
- const closest = distances.reduce((prev, curr) => (curr.d < prev.d ? curr : prev));
228
-
229
- return closest.point;
230
- }
231
-
232
- /**
233
- * Snaps a position to the nearest grid intersection based on the current grid configuration
234
- * @param position Position to snap (in screen coordinates, relative to center)
235
- * @param grid Grid configuration
236
- * @param display Display properties
237
- * @param centerOnly For hex grids, whether to snap to centers only (used for measurements)
238
- * @returns Snapped position (in screen coordinates, relative to center)
239
- */
240
- export function snapToGrid(
241
- position: THREE.Vector2,
242
- grid: GridLayerProps,
243
- display: DisplayProps,
244
- centerOnly: boolean = false
245
- ): THREE.Vector2 {
246
- // Compute the pixel pitch in inches
247
- const pixelsPerInch = new THREE.Vector2(display.resolution.x / display.size.x, display.resolution.y / display.size.y);
248
-
249
- // Compute the grid spacing in pixels
250
- const gridSpacingPixels = new THREE.Vector2(grid.spacing * pixelsPerInch.x, grid.spacing * pixelsPerInch.y);
251
-
252
- // In Map defined mode, we need to adjust for the grid origin and shader offset
253
- if (grid.gridMode === GridMode.MapDefined && grid.fixedGridCount) {
254
- // Get the grid origin in screen coordinates
255
- const gridOrigin = getGridOrigin(grid, display);
256
-
257
- // Convert position from center-relative to top-left relative (screen coords)
258
- const screenPos = new THREE.Vector2(
259
- position.x + display.resolution.x / 2,
260
- display.resolution.y / 2 - position.y // Flip Y axis
261
- );
262
-
263
- // Convert to grid-relative coordinates
264
- let gridRelativePos = new THREE.Vector2(screenPos.x - gridOrigin.x, screenPos.y - gridOrigin.y);
265
-
266
- // Account for the shader offset (t / 4.0) that shifts the visual grid lines
267
- const shaderOffset = grid.lineThickness / 4.0;
268
- gridRelativePos.x -= shaderOffset;
269
- gridRelativePos.y -= shaderOffset;
270
-
271
- let snappedGridPos: THREE.Vector2;
272
-
273
- if (grid.gridType === GridType.Square) {
274
- // For square grids, snap to cell centers (half-spacing increments)
275
- const halfSpacing = new THREE.Vector2(gridSpacingPixels.x / 2.0, gridSpacingPixels.y / 2.0);
276
- snappedGridPos = snapToSquareGrid(gridRelativePos, halfSpacing);
277
- } else {
278
- // For hex grids, use center-only snapping if requested (e.g., for measurements)
279
- if (centerOnly) {
280
- snappedGridPos = snapToHexCenter(gridRelativePos, gridSpacingPixels);
281
- } else {
282
- // Otherwise allow snapping to vertices and edges too
283
- snappedGridPos = distanceToHexCenter(gridRelativePos, gridSpacingPixels);
284
- }
285
- }
286
-
287
- // Add back the shader offset
288
- snappedGridPos.x += shaderOffset;
289
- snappedGridPos.y += shaderOffset;
290
-
291
- // Convert back to screen coordinates
292
- const snappedScreenPos = new THREE.Vector2(snappedGridPos.x + gridOrigin.x, snappedGridPos.y + gridOrigin.y);
293
-
294
- // Convert back to center-relative coordinates
295
- const result = new THREE.Vector2(
296
- snappedScreenPos.x - display.resolution.x / 2,
297
- display.resolution.y / 2 - snappedScreenPos.y // Flip Y axis back
298
- );
299
-
300
- return result;
301
- }
302
-
303
- // Fill space mode - use the original simple logic
304
- if (grid.gridType === GridType.Square) {
305
- // For square grids, snap to cell centers (half-spacing increments)
306
- const halfSpacing = new THREE.Vector2(gridSpacingPixels.x / 2.0, gridSpacingPixels.y / 2.0);
307
- return snapToSquareGrid(position, halfSpacing);
308
- } else {
309
- // For hex grids, use center-only snapping if requested (e.g., for measurements)
310
- if (centerOnly) {
311
- return snapToHexCenter(position, gridSpacingPixels);
312
- } else {
313
- // Otherwise allow snapping to vertices and edges too
314
- return distanceToHexCenter(position, gridSpacingPixels);
315
- }
316
- }
317
- }
318
-
319
- // =============================================================================
320
- // HEX GRID COORDINATE FUNCTIONS
321
- // =============================================================================
322
-
323
- /**
324
- * Hex coordinate type using axial coordinates (q, r)
325
- */
326
- export interface HexCoordinate {
327
- q: number;
328
- r: number;
329
- }
330
-
331
- /**
332
- * Cube coordinate type for hex calculations (x, y, z where x + y + z = 0)
333
- */
334
- export interface CubeCoordinate {
335
- x: number;
336
- y: number;
337
- z: number;
338
- }
339
-
340
- /**
341
- * Rounds fractional hex coordinates to the nearest hex
342
- * @param hex Fractional hex coordinates
343
- * @returns Rounded hex coordinates
344
- */
345
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
346
- function hexRound(hex: HexCoordinate): HexCoordinate {
347
- // Convert to cube coordinates for rounding
348
- const cube = axialToCube(hex);
349
-
350
- let rx = Math.round(cube.x);
351
- let ry = Math.round(cube.y);
352
- let rz = Math.round(cube.z);
353
-
354
- const xDiff = Math.abs(rx - cube.x);
355
- const yDiff = Math.abs(ry - cube.y);
356
- const zDiff = Math.abs(rz - cube.z);
357
-
358
- // Reset the coordinate with the largest rounding error
359
- if (xDiff > yDiff && xDiff > zDiff) {
360
- rx = -ry - rz;
361
- } else if (yDiff > zDiff) {
362
- ry = -rx - rz;
363
- } else {
364
- rz = -rx - ry;
365
- }
366
-
367
- return cubeToAxial({ x: rx, y: ry, z: rz });
368
- }
369
-
370
- /**
371
- * Converts axial hex coordinates to cube coordinates
372
- * @param hex Axial coordinates
373
- * @returns Cube coordinates
374
- */
375
- function axialToCube(hex: HexCoordinate): CubeCoordinate {
376
- const x = hex.q;
377
- const z = hex.r;
378
- const y = -x - z;
379
- return { x, y, z };
380
- }
381
-
382
- /**
383
- * Converts cube coordinates to axial hex coordinates
384
- * @param cube Cube coordinates
385
- * @returns Axial coordinates
386
- */
387
- function cubeToAxial(cube: CubeCoordinate): HexCoordinate {
388
- return { q: cube.x, r: cube.z };
389
- }
390
-
391
- /**
392
- * Converts pixel coordinates to hex grid coordinates
393
- * Returns the grid indices of the hex containing the point
394
- * @param point Position in pixel coordinates
395
- * @param spacing Grid spacing in pixels
396
- * @returns Hex grid coordinates (indices and grid type)
397
- */
398
- export function pixelToHex(point: THREE.Vector2, spacing: number): HexCoordinate & { isGrid2?: boolean } {
399
- // Exact match of shader's getHex function
400
- const p = new THREE.Vector2(point.x / spacing, point.y / spacing);
401
-
402
- // Calculate candidate grid positions
403
- const hC = {
404
- x: Math.floor(p.x / s.x) + 0.5,
405
- y: Math.floor(p.y / s.y) + 0.5,
406
- z: Math.floor((p.x - 0.5) / s.x) + 0.5,
407
- w: Math.floor((p.y - 1.0) / s.y) + 0.5
408
- };
409
-
410
- // Calculate relative positions
411
- const h = {
412
- x: p.x - hC.x * s.x,
413
- y: p.y - hC.y * s.y,
414
- z: p.x - (hC.z + 0.5) * s.x,
415
- w: p.y - (hC.w + 0.5) * s.y
416
- };
417
-
418
- // Choose the closer center
419
- const dist1 = h.x * h.x + h.y * h.y;
420
- const dist2 = h.z * h.z + h.w * h.w;
421
-
422
- if (dist1 < dist2) {
423
- // Grid 1 - use the indices directly
424
- return { q: Math.floor(hC.x), r: Math.floor(hC.y), isGrid2: false };
425
- } else {
426
- // Grid 2 - offset grid
427
- return { q: Math.floor(hC.z), r: Math.floor(hC.w), isGrid2: true };
428
- }
429
- }
430
-
431
- /**
432
- * Converts hex grid coordinates to pixel coordinates
433
- * For flat-topped hexagons in offset coordinate system
434
- * @param hex Hex grid coordinates in offset format
435
- * @param spacing Grid spacing in pixels (width of hex)
436
- * @returns Position in pixel coordinates
437
- */
438
- export function hexToPixel(hex: HexCoordinate, spacing: number): THREE.Vector2 {
439
- const hexHeight = spacing * Math.sqrt(3);
440
- const hexWidth = spacing;
441
-
442
- // Calculate pixel position
443
- let x: number;
444
- const y = hex.r * hexHeight * 0.75; // Rows overlap by 1/4
445
-
446
- if (hex.r % 2 === 0) {
447
- // Even row - no offset
448
- x = hex.q * hexWidth;
449
- } else {
450
- // Odd row - offset by half a hex width
451
- x = hex.q * hexWidth + hexWidth / 2;
452
- }
453
-
454
- return new THREE.Vector2(x, y);
455
- }
456
-
457
- /**
458
- * Calculates the hex distance between two hex positions
459
- * Returns 1 for adjacent hexes, 2 for hexes with one between them, etc.
460
- * @param hex1 First hex coordinate (with isGrid2 flag)
461
- * @param hex2 Second hex coordinate (with isGrid2 flag)
462
- * @returns Number of hexes in the shortest path
463
- */
464
- export function hexDistance(
465
- hex1: HexCoordinate & { isGrid2?: boolean },
466
- hex2: HexCoordinate & { isGrid2?: boolean }
467
- ): number {
468
- // Special case: if the indices and grid types are identical, distance is 0
469
- if (hex1.q === hex2.q && hex1.r === hex2.r && hex1.isGrid2 === hex2.isGrid2) {
470
- return 0;
471
- }
472
-
473
- // For the shader's two-grid system, we can use a simpler approach
474
- // The grids are offset by (0.5, 0.5) in grid units
475
- // This creates a regular hex pattern
476
-
477
- // Calculate effective positions in a unified coordinate system
478
- let q1 = hex1.q * 2; // Scale up to avoid fractions
479
- let r1 = hex1.r * 2;
480
- let q2 = hex2.q * 2;
481
- let r2 = hex2.r * 2;
482
-
483
- // Adjust for grid 2 offset
484
- if (hex1.isGrid2) {
485
- q1 += 1;
486
- r1 += 1;
487
- }
488
- if (hex2.isGrid2) {
489
- q2 += 1;
490
- r2 += 1;
491
- }
492
-
493
- // Now we have positions in a unified grid where each hex is at integer coordinates
494
- // For pointy-top hexagons arranged by the shader's method:
495
- // Adjacent hexes differ by specific patterns
496
-
497
- const dq = Math.abs(q2 - q1);
498
- const dr = Math.abs(r2 - r1);
499
-
500
- // For pointy-top hexagons in the shader's two-grid system:
501
- // Direct neighbors can be at different patterns depending on direction
502
-
503
- // Simple case: same column (dq === 0)
504
- if (dq === 0) {
505
- // Moving directly north/south
506
- // Adjacent hexes are at dr = 1 (switching between grid1 and grid2)
507
- // Two hexes away are at dr = 2 (same grid type)
508
- return dr;
509
- }
510
-
511
- // Same row (dr === 0)
512
- if (dr === 0) {
513
- // Moving directly east/west
514
- // In the shader's arrangement, moving horizontally by 2 units = 1 hex
515
- return Math.ceil(dq / 2);
516
- }
517
-
518
- // Diagonal movement in the two-grid system
519
- // The actual hex distance depends on the specific arrangement
520
- // Use Manhattan distance as an approximation, then adjust
521
- const manhattan = dq + dr;
522
-
523
- // In the shader's hex arrangement:
524
- // - Direct neighbors are at manhattan distance 2 (e.g., (0,0) to (1,1))
525
- // - Hexes with one between are at manhattan distance 4
526
- // So we divide by 2
527
- const distance = Math.ceil(manhattan / 2);
528
-
529
- // However, we need to account for the hex geometry
530
- // Some diagonal moves are shorter in hex distance
531
- // If both dq and dr are non-zero and similar, it's a diagonal move
532
- if (dq > 0 && dr > 0) {
533
- // For true hex distance, we need to consider that some diagonals are direct neighbors
534
- // In a hex grid, you can move diagonally in 6 directions
535
- const minDiff = Math.min(dq, dr);
536
- const maxDiff = Math.max(dq, dr);
537
-
538
- // If moving equally in both directions, it's a direct diagonal
539
- if (minDiff === maxDiff) {
540
- return minDiff;
541
- }
542
-
543
- // Otherwise, it's a combination of diagonal and straight moves
544
- return minDiff + Math.ceil((maxDiff - minDiff) / 2);
545
- }
546
-
547
- return distance;
548
- }