astro-viewer 1.3.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 (236) hide show
  1. package/README.md +373 -0
  2. package/dist/astroviewer.cjs +13941 -0
  3. package/dist/astroviewer.cjs.map +1 -0
  4. package/dist/astroviewer.js +2 -0
  5. package/dist/astroviewer.js.map +1 -0
  6. package/dist/astroviewer.min.js +2 -0
  7. package/dist/astroviewer.min.js.map +1 -0
  8. package/lib-esm/AstroSphere.d.ts +114 -0
  9. package/lib-esm/AstroSphere.d.ts.map +1 -0
  10. package/lib-esm/AstroSphere.js +679 -0
  11. package/lib-esm/AstroSphere.js.map +1 -0
  12. package/lib-esm/AstroViewer.d.ts +81 -0
  13. package/lib-esm/AstroViewer.d.ts.map +1 -0
  14. package/lib-esm/AstroViewer.js +348 -0
  15. package/lib-esm/AstroViewer.js.map +1 -0
  16. package/lib-esm/Camera.d.ts +74 -0
  17. package/lib-esm/Camera.d.ts.map +1 -0
  18. package/lib-esm/Camera.js +334 -0
  19. package/lib-esm/Camera.js.map +1 -0
  20. package/lib-esm/Config.d.ts +20 -0
  21. package/lib-esm/Config.d.ts.map +1 -0
  22. package/lib-esm/Config.js +32 -0
  23. package/lib-esm/Config.js.map +1 -0
  24. package/lib-esm/Global.d.ts +27 -0
  25. package/lib-esm/Global.d.ts.map +1 -0
  26. package/lib-esm/Global.js +52 -0
  27. package/lib-esm/Global.js.map +1 -0
  28. package/lib-esm/index.d.ts +17 -0
  29. package/lib-esm/index.d.ts.map +1 -0
  30. package/lib-esm/index.js +16 -0
  31. package/lib-esm/index.js.map +1 -0
  32. package/lib-esm/model/AbstractSkyEntity.d.ts +55 -0
  33. package/lib-esm/model/AbstractSkyEntity.d.ts.map +1 -0
  34. package/lib-esm/model/AbstractSkyEntity.js +153 -0
  35. package/lib-esm/model/AbstractSkyEntity.js.map +1 -0
  36. package/lib-esm/model/AstroGL.d.ts +11 -0
  37. package/lib-esm/model/AstroGL.d.ts.map +1 -0
  38. package/lib-esm/model/AstroGL.js +2 -0
  39. package/lib-esm/model/AstroGL.js.map +1 -0
  40. package/lib-esm/model/ColorMaps.d.ts +17 -0
  41. package/lib-esm/model/ColorMaps.d.ts.map +1 -0
  42. package/lib-esm/model/ColorMaps.js +1288 -0
  43. package/lib-esm/model/ColorMaps.js.map +1 -0
  44. package/lib-esm/model/FoV.d.ts +63 -0
  45. package/lib-esm/model/FoV.d.ts.map +1 -0
  46. package/lib-esm/model/FoV.js +275 -0
  47. package/lib-esm/model/FoV.js.map +1 -0
  48. package/lib-esm/model/MetadataColumn.d.ts +50 -0
  49. package/lib-esm/model/MetadataColumn.d.ts.map +1 -0
  50. package/lib-esm/model/MetadataColumn.js +95 -0
  51. package/lib-esm/model/MetadataColumn.js.map +1 -0
  52. package/lib-esm/model/MetadataManager.d.ts +43 -0
  53. package/lib-esm/model/MetadataManager.d.ts.map +1 -0
  54. package/lib-esm/model/MetadataManager.js +117 -0
  55. package/lib-esm/model/MetadataManager.js.map +1 -0
  56. package/lib-esm/model/Point.d.ts +53 -0
  57. package/lib-esm/model/Point.d.ts.map +1 -0
  58. package/lib-esm/model/Point.js +133 -0
  59. package/lib-esm/model/Point.js.map +1 -0
  60. package/lib-esm/model/Point2D.d.ts +9 -0
  61. package/lib-esm/model/Point2D.d.ts.map +1 -0
  62. package/lib-esm/model/Point2D.js +16 -0
  63. package/lib-esm/model/Point2D.js.map +1 -0
  64. package/lib-esm/model/Source.d.ts +34 -0
  65. package/lib-esm/model/Source.d.ts.map +1 -0
  66. package/lib-esm/model/Source.js +63 -0
  67. package/lib-esm/model/Source.js.map +1 -0
  68. package/lib-esm/model/catalogues/CatalogueGL.d.ts +91 -0
  69. package/lib-esm/model/catalogues/CatalogueGL.d.ts.map +1 -0
  70. package/lib-esm/model/catalogues/CatalogueGL.js +614 -0
  71. package/lib-esm/model/catalogues/CatalogueGL.js.map +1 -0
  72. package/lib-esm/model/catalogues/CatalogueProps.d.ts +2 -0
  73. package/lib-esm/model/catalogues/CatalogueProps.d.ts.map +1 -0
  74. package/lib-esm/model/catalogues/CatalogueProps.js +156 -0
  75. package/lib-esm/model/catalogues/CatalogueProps.js.map +1 -0
  76. package/lib-esm/model/footprints/Footprint.d.ts +44 -0
  77. package/lib-esm/model/footprints/Footprint.d.ts.map +1 -0
  78. package/lib-esm/model/footprints/Footprint.js +104 -0
  79. package/lib-esm/model/footprints/Footprint.js.map +1 -0
  80. package/lib-esm/model/footprints/FootprintProps.d.ts +2 -0
  81. package/lib-esm/model/footprints/FootprintProps.d.ts.map +1 -0
  82. package/lib-esm/model/footprints/FootprintProps.js +87 -0
  83. package/lib-esm/model/footprints/FootprintProps.js.map +1 -0
  84. package/lib-esm/model/footprints/FootprintSetGL.d.ts +106 -0
  85. package/lib-esm/model/footprints/FootprintSetGL.d.ts.map +1 -0
  86. package/lib-esm/model/footprints/FootprintSetGL.js +592 -0
  87. package/lib-esm/model/footprints/FootprintSetGL.js.map +1 -0
  88. package/lib-esm/model/grid/EquatorialGrid.d.ts +49 -0
  89. package/lib-esm/model/grid/EquatorialGrid.d.ts.map +1 -0
  90. package/lib-esm/model/grid/EquatorialGrid.js +302 -0
  91. package/lib-esm/model/grid/EquatorialGrid.js.map +1 -0
  92. package/lib-esm/model/grid/GridTextHelper.d.ts +26 -0
  93. package/lib-esm/model/grid/GridTextHelper.d.ts.map +1 -0
  94. package/lib-esm/model/grid/GridTextHelper.js +92 -0
  95. package/lib-esm/model/grid/GridTextHelper.js.map +1 -0
  96. package/lib-esm/model/grid/HealpixGrid.d.ts +49 -0
  97. package/lib-esm/model/grid/HealpixGrid.d.ts.map +1 -0
  98. package/lib-esm/model/grid/HealpixGrid.js +306 -0
  99. package/lib-esm/model/grid/HealpixGrid.js.map +1 -0
  100. package/lib-esm/model/hips/AllSky.d.ts +40 -0
  101. package/lib-esm/model/hips/AllSky.d.ts.map +1 -0
  102. package/lib-esm/model/hips/AllSky.js +232 -0
  103. package/lib-esm/model/hips/AllSky.js.map +1 -0
  104. package/lib-esm/model/hips/AncestorTile.d.ts +38 -0
  105. package/lib-esm/model/hips/AncestorTile.d.ts.map +1 -0
  106. package/lib-esm/model/hips/AncestorTile.js +248 -0
  107. package/lib-esm/model/hips/AncestorTile.js.map +1 -0
  108. package/lib-esm/model/hips/FoVHelper.d.ts +11 -0
  109. package/lib-esm/model/hips/FoVHelper.d.ts.map +1 -0
  110. package/lib-esm/model/hips/FoVHelper.js +107 -0
  111. package/lib-esm/model/hips/FoVHelper.js.map +1 -0
  112. package/lib-esm/model/hips/HiPS.d.ts +47 -0
  113. package/lib-esm/model/hips/HiPS.d.ts.map +1 -0
  114. package/lib-esm/model/hips/HiPS.js +222 -0
  115. package/lib-esm/model/hips/HiPS.js.map +1 -0
  116. package/lib-esm/model/hips/HiPSDescriptor.d.ts +37 -0
  117. package/lib-esm/model/hips/HiPSDescriptor.d.ts.map +1 -0
  118. package/lib-esm/model/hips/HiPSDescriptor.js +132 -0
  119. package/lib-esm/model/hips/HiPSDescriptor.js.map +1 -0
  120. package/lib-esm/model/hips/Tile.d.ts +51 -0
  121. package/lib-esm/model/hips/Tile.d.ts.map +1 -0
  122. package/lib-esm/model/hips/Tile.js +355 -0
  123. package/lib-esm/model/hips/Tile.js.map +1 -0
  124. package/lib-esm/model/hips/TileBuffer.d.ts +39 -0
  125. package/lib-esm/model/hips/TileBuffer.d.ts.map +1 -0
  126. package/lib-esm/model/hips/TileBuffer.js +148 -0
  127. package/lib-esm/model/hips/TileBuffer.js.map +1 -0
  128. package/lib-esm/model/hips/VisibleTilesManager.d.ts +35 -0
  129. package/lib-esm/model/hips/VisibleTilesManager.d.ts.map +1 -0
  130. package/lib-esm/model/hips/VisibleTilesManager.js +160 -0
  131. package/lib-esm/model/hips/VisibleTilesManager.js.map +1 -0
  132. package/lib-esm/model/tap/TapMetadata.d.ts +31 -0
  133. package/lib-esm/model/tap/TapMetadata.d.ts.map +1 -0
  134. package/lib-esm/model/tap/TapMetadata.js +55 -0
  135. package/lib-esm/model/tap/TapMetadata.js.map +1 -0
  136. package/lib-esm/model/tap/TapMetadataList.d.ts +23 -0
  137. package/lib-esm/model/tap/TapMetadataList.d.ts.map +1 -0
  138. package/lib-esm/model/tap/TapMetadataList.js +58 -0
  139. package/lib-esm/model/tap/TapMetadataList.js.map +1 -0
  140. package/lib-esm/model/tap/TapRepo.d.ts +27 -0
  141. package/lib-esm/model/tap/TapRepo.d.ts.map +1 -0
  142. package/lib-esm/model/tap/TapRepo.js +51 -0
  143. package/lib-esm/model/tap/TapRepo.js.map +1 -0
  144. package/lib-esm/services/SesameService.d.ts +14 -0
  145. package/lib-esm/services/SesameService.d.ts.map +1 -0
  146. package/lib-esm/services/SesameService.js +54 -0
  147. package/lib-esm/services/SesameService.js.map +1 -0
  148. package/lib-esm/services/helpers.d.ts +5 -0
  149. package/lib-esm/services/helpers.d.ts.map +1 -0
  150. package/lib-esm/services/helpers.js +16 -0
  151. package/lib-esm/services/helpers.js.map +1 -0
  152. package/lib-esm/services/hipsNodeService.d.ts +7 -0
  153. package/lib-esm/services/hipsNodeService.d.ts.map +1 -0
  154. package/lib-esm/services/hipsNodeService.js +65 -0
  155. package/lib-esm/services/hipsNodeService.js.map +1 -0
  156. package/lib-esm/services/parse-hipslist.d.ts +3 -0
  157. package/lib-esm/services/parse-hipslist.d.ts.map +1 -0
  158. package/lib-esm/services/parse-hipslist.js +25 -0
  159. package/lib-esm/services/parse-hipslist.js.map +1 -0
  160. package/lib-esm/services/queryCatalogueByFoV.d.ts +2 -0
  161. package/lib-esm/services/queryCatalogueByFoV.d.ts.map +1 -0
  162. package/lib-esm/services/queryCatalogueByFoV.js +56 -0
  163. package/lib-esm/services/queryCatalogueByFoV.js.map +1 -0
  164. package/lib-esm/services/queryFootprintSetByFov.d.ts +2 -0
  165. package/lib-esm/services/queryFootprintSetByFov.d.ts.map +1 -0
  166. package/lib-esm/services/queryFootprintSetByFov.js +128 -0
  167. package/lib-esm/services/queryFootprintSetByFov.js.map +1 -0
  168. package/lib-esm/services/tapRepoService.d.ts +2 -0
  169. package/lib-esm/services/tapRepoService.d.ts.map +1 -0
  170. package/lib-esm/services/tapRepoService.js +190 -0
  171. package/lib-esm/services/tapRepoService.js.map +1 -0
  172. package/lib-esm/services/types.d.ts +13 -0
  173. package/lib-esm/services/types.d.ts.map +1 -0
  174. package/lib-esm/services/types.js +2 -0
  175. package/lib-esm/services/types.js.map +1 -0
  176. package/lib-esm/shader/CatalogueShaderProgram.d.ts +35 -0
  177. package/lib-esm/shader/CatalogueShaderProgram.d.ts.map +1 -0
  178. package/lib-esm/shader/CatalogueShaderProgram.js +94 -0
  179. package/lib-esm/shader/CatalogueShaderProgram.js.map +1 -0
  180. package/lib-esm/shader/FootprintShaderProgram.d.ts +31 -0
  181. package/lib-esm/shader/FootprintShaderProgram.d.ts.map +1 -0
  182. package/lib-esm/shader/FootprintShaderProgram.js +86 -0
  183. package/lib-esm/shader/FootprintShaderProgram.js.map +1 -0
  184. package/lib-esm/shader/GridShaderManager.d.ts +6 -0
  185. package/lib-esm/shader/GridShaderManager.d.ts.map +1 -0
  186. package/lib-esm/shader/GridShaderManager.js +29 -0
  187. package/lib-esm/shader/GridShaderManager.js.map +1 -0
  188. package/lib-esm/shader/HiPSShaderProgram.d.ts +54 -0
  189. package/lib-esm/shader/HiPSShaderProgram.d.ts.map +1 -0
  190. package/lib-esm/shader/HiPSShaderProgram.js +257 -0
  191. package/lib-esm/shader/HiPSShaderProgram.js.map +1 -0
  192. package/lib-esm/shader/ShaderManager.d.ts +12 -0
  193. package/lib-esm/shader/ShaderManager.d.ts.map +1 -0
  194. package/lib-esm/shader/ShaderManager.js +344 -0
  195. package/lib-esm/shader/ShaderManager.js.map +1 -0
  196. package/lib-esm/shader/ShaderManagerMutliHiPS.d.ts +12 -0
  197. package/lib-esm/shader/ShaderManagerMutliHiPS.d.ts.map +1 -0
  198. package/lib-esm/shader/ShaderManagerMutliHiPS.js +750 -0
  199. package/lib-esm/shader/ShaderManagerMutliHiPS.js.map +1 -0
  200. package/lib-esm/utils/CoordsType.d.ts +10 -0
  201. package/lib-esm/utils/CoordsType.d.ts.map +1 -0
  202. package/lib-esm/utils/CoordsType.js +12 -0
  203. package/lib-esm/utils/CoordsType.js.map +1 -0
  204. package/lib-esm/utils/FoVUtils.d.ts +46 -0
  205. package/lib-esm/utils/FoVUtils.d.ts.map +1 -0
  206. package/lib-esm/utils/FoVUtils.js +217 -0
  207. package/lib-esm/utils/FoVUtils.js.map +1 -0
  208. package/lib-esm/utils/GeomUtils.d.ts +36 -0
  209. package/lib-esm/utils/GeomUtils.d.ts.map +1 -0
  210. package/lib-esm/utils/GeomUtils.js +267 -0
  211. package/lib-esm/utils/GeomUtils.js.map +1 -0
  212. package/lib-esm/utils/MouseHelper.d.ts +36 -0
  213. package/lib-esm/utils/MouseHelper.d.ts.map +1 -0
  214. package/lib-esm/utils/MouseHelper.js +94 -0
  215. package/lib-esm/utils/MouseHelper.js.map +1 -0
  216. package/lib-esm/utils/PerspectiveMatrixManager.d.ts +11 -0
  217. package/lib-esm/utils/PerspectiveMatrixManager.d.ts.map +1 -0
  218. package/lib-esm/utils/PerspectiveMatrixManager.js +37 -0
  219. package/lib-esm/utils/PerspectiveMatrixManager.js.map +1 -0
  220. package/lib-esm/utils/RayPickingUtils.d.ts +30 -0
  221. package/lib-esm/utils/RayPickingUtils.d.ts.map +1 -0
  222. package/lib-esm/utils/RayPickingUtils.js +112 -0
  223. package/lib-esm/utils/RayPickingUtils.js.map +1 -0
  224. package/lib-esm/utils/STCSParser.d.ts +16 -0
  225. package/lib-esm/utils/STCSParser.d.ts.map +1 -0
  226. package/lib-esm/utils/STCSParser.js +96 -0
  227. package/lib-esm/utils/STCSParser.js.map +1 -0
  228. package/lib-esm/utils/ShaderUtility.d.ts +2 -0
  229. package/lib-esm/utils/ShaderUtility.d.ts.map +1 -0
  230. package/lib-esm/utils/ShaderUtility.js +23 -0
  231. package/lib-esm/utils/ShaderUtility.js.map +1 -0
  232. package/lib-esm/utils/Utils.d.ts +32 -0
  233. package/lib-esm/utils/Utils.d.ts.map +1 -0
  234. package/lib-esm/utils/Utils.js +77 -0
  235. package/lib-esm/utils/Utils.js.map +1 -0
  236. package/package.json +82 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeomUtils.js","sourceRoot":"","sources":["../../src/utils/GeomUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @author Fabrizio Giordano (Fab)
3
+ */
4
+ import { ReadonlyVec3 } from "gl-matrix";
5
+ import { type SphericalCoords, type AstroCoords, type HMS, type DMS } from "./Utils.js";
6
+ type XYZ = [number, number, number];
7
+ declare class MouseHelper {
8
+ private _xyz;
9
+ private _raDecDeg;
10
+ private _phiThetaDeg;
11
+ raHMS?: HMS;
12
+ decDMS?: DMS;
13
+ /**
14
+ * @param in_xyz [x, y, z]
15
+ * @param in_raDecDeg { ra, dec } in degrees (ICRS/J2000)
16
+ * @param in_phiThetaDeg { phi, theta } in degrees (spherical)
17
+ */
18
+ constructor(in_xyz?: XYZ | null, in_raDecDeg?: AstroCoords | null, in_phiThetaDeg?: SphericalCoords | null);
19
+ /** (Formerly `computeNpix256`) Uses global.nsideForSelection. */
20
+ computeNpix(): number | null;
21
+ /** Update helper state from a world-space 3D point on the unit sphere. */
22
+ update(mousePoint: ReadonlyVec3 | XYZ): void;
23
+ clear(): void;
24
+ get xyz(): XYZ | null;
25
+ get x(): number | null;
26
+ get y(): number | null;
27
+ get z(): number | null;
28
+ get ra(): number | null;
29
+ get dec(): number | null;
30
+ get phi(): number | null;
31
+ get theta(): number | null;
32
+ get raDecDeg(): AstroCoords | null;
33
+ get phiThetaDeg(): SphericalCoords | null;
34
+ }
35
+ export default MouseHelper;
36
+ //# sourceMappingURL=MouseHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MouseHelper.d.ts","sourceRoot":"","sources":["../../src/utils/MouseHelper.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAQ,YAAY,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,GAAG,EACR,KAAK,GAAG,EACT,MAAM,YAAY,CAAC;AAEpB,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAMpC,cAAM,WAAW;IACf,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,YAAY,CAAgC;IAEpD,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,CAAC;IAEb;;;;OAIG;gBAED,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI,EACnB,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,EAChC,cAAc,CAAC,EAAE,eAAe,GAAG,IAAI;IAYzC,iEAAiE;IACjE,WAAW,IAAI,MAAM,GAAG,IAAI;IAQ5B,0EAA0E;IAC1E,MAAM,CAAC,UAAU,EAAE,YAAY,GAAG,GAAG,GAAG,IAAI;IAY5C,KAAK,IAAI,IAAI;IASb,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,CAEpB;IACD,IAAI,CAAC,IAAI,MAAM,GAAG,IAAI,CAErB;IACD,IAAI,CAAC,IAAI,MAAM,GAAG,IAAI,CAErB;IACD,IAAI,CAAC,IAAI,MAAM,GAAG,IAAI,CAErB;IAED,IAAI,EAAE,IAAI,MAAM,GAAG,IAAI,CAEtB;IACD,IAAI,GAAG,IAAI,MAAM,GAAG,IAAI,CAEvB;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,IAAI,CAEvB;IACD,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzB;IAED,IAAI,QAAQ,IAAI,WAAW,GAAG,IAAI,CAEjC;IACD,IAAI,WAAW,IAAI,eAAe,GAAG,IAAI,CAExC;CACF;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * @author Fabrizio Giordano (Fab)
3
+ */
4
+ import { vec3 } from "gl-matrix";
5
+ import { Vec3, Pointing } from "healpixjs";
6
+ import global from "../Global.js";
7
+ import { cartesianToSpherical, sphericalToAstroDeg, raDegToHMS, decDegToDMS, } from "./Utils.js";
8
+ function toVec3(p) {
9
+ return Array.isArray(p) ? vec3.fromValues(p[0], p[1], p[2]) : p;
10
+ }
11
+ class MouseHelper {
12
+ _xyz = null;
13
+ _raDecDeg = null;
14
+ _phiThetaDeg = null;
15
+ raHMS;
16
+ decDMS;
17
+ /**
18
+ * @param in_xyz [x, y, z]
19
+ * @param in_raDecDeg { ra, dec } in degrees (ICRS/J2000)
20
+ * @param in_phiThetaDeg { phi, theta } in degrees (spherical)
21
+ */
22
+ constructor(in_xyz, in_raDecDeg, in_phiThetaDeg) {
23
+ if (in_xyz != null)
24
+ this._xyz = in_xyz;
25
+ if (in_raDecDeg != null)
26
+ this._raDecDeg = in_raDecDeg;
27
+ if (in_phiThetaDeg != null)
28
+ this._phiThetaDeg = in_phiThetaDeg;
29
+ if (this._raDecDeg) {
30
+ this.raHMS = raDegToHMS(this._raDecDeg.ra);
31
+ this.decDMS = decDegToDMS(this._raDecDeg.dec);
32
+ }
33
+ }
34
+ /** (Formerly `computeNpix256`) Uses global.nsideForSelection. */
35
+ computeNpix() {
36
+ if (!this._xyz)
37
+ return null;
38
+ const hp = global.getHealpix(global.nsideForSelection);
39
+ const v = new Vec3(this._xyz[0], this._xyz[1], this._xyz[2]);
40
+ const ptg = new Pointing(v, false);
41
+ return hp.ang2pix(ptg, false);
42
+ }
43
+ /** Update helper state from a world-space 3D point on the unit sphere. */
44
+ update(mousePoint) {
45
+ const mp = toVec3(mousePoint);
46
+ const sph = cartesianToSpherical(mp);
47
+ const radec = sphericalToAstroDeg(sph.phi, sph.theta);
48
+ this._xyz = [mp[0], mp[1], mp[2]];
49
+ this._phiThetaDeg = sph;
50
+ this._raDecDeg = radec;
51
+ this.raHMS = raDegToHMS(radec.ra);
52
+ this.decDMS = decDegToDMS(radec.dec);
53
+ }
54
+ clear() {
55
+ this._xyz = null;
56
+ this._raDecDeg = null;
57
+ this._phiThetaDeg = null;
58
+ this.raHMS = undefined;
59
+ this.decDMS = undefined;
60
+ }
61
+ // --- getters ---
62
+ get xyz() {
63
+ return this._xyz;
64
+ }
65
+ get x() {
66
+ return this._xyz ? this._xyz[0] : null;
67
+ }
68
+ get y() {
69
+ return this._xyz ? this._xyz[1] : null;
70
+ }
71
+ get z() {
72
+ return this._xyz ? this._xyz[2] : null;
73
+ }
74
+ get ra() {
75
+ return this._raDecDeg ? this._raDecDeg.ra : null;
76
+ }
77
+ get dec() {
78
+ return this._raDecDeg ? this._raDecDeg.dec : null;
79
+ }
80
+ get phi() {
81
+ return this._phiThetaDeg ? this._phiThetaDeg.phi : null;
82
+ }
83
+ get theta() {
84
+ return this._phiThetaDeg ? this._phiThetaDeg.theta : null;
85
+ }
86
+ get raDecDeg() {
87
+ return this._raDecDeg;
88
+ }
89
+ get phiThetaDeg() {
90
+ return this._phiThetaDeg;
91
+ }
92
+ }
93
+ export default MouseHelper;
94
+ //# sourceMappingURL=MouseHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MouseHelper.js","sourceRoot":"","sources":["../../src/utils/MouseHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { mat4, ReadonlyMat4 } from "gl-matrix";
2
+ import Camera from "../Camera.js";
3
+ export declare class PerspectiveMatrixManager {
4
+ private _pMatrix;
5
+ private _aspectRatio;
6
+ constructor(canvas: HTMLCanvasElement, camera: Camera, fovDeg: number, nearPlane: number | undefined, insideSphere: boolean);
7
+ get pMatrix(): ReadonlyMat4;
8
+ set pMatrix(pMatrix: Float32Array);
9
+ computePerspectiveMatrix(canvas: HTMLCanvasElement, camera: Camera, fovDeg: number, nearPlane: number | undefined, insideSphere: boolean): mat4;
10
+ }
11
+ //# sourceMappingURL=PerspectiveMatrixManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerspectiveMatrixManager.d.ts","sourceRoot":"","sources":["../../src/utils/PerspectiveMatrixManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,YAAY,CAAK;gBAEZ,MAAM,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,YAAM,EACvB,YAAY,EAAE,OAAO;IAIvB,IAAI,OAAO,IAAI,YAAY,CAE1B;IACD,IAAI,OAAO,CAAC,OAAO,EAAC,YAAY,EAE/B;IAED,wBAAwB,CACtB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,YAAM,EACvB,YAAY,EAAE,OAAO,GACpB,IAAI;CAyBR"}
@@ -0,0 +1,37 @@
1
+ import { mat4 } from "gl-matrix";
2
+ export class PerspectiveMatrixManager {
3
+ _pMatrix;
4
+ _aspectRatio = 1;
5
+ constructor(canvas, camera, fovDeg, nearPlane = 0.1, insideSphere) {
6
+ this._pMatrix = this.computePerspectiveMatrix(canvas, camera, fovDeg, nearPlane, insideSphere);
7
+ }
8
+ get pMatrix() {
9
+ return this._pMatrix;
10
+ }
11
+ set pMatrix(pMatrix) {
12
+ this._pMatrix = pMatrix;
13
+ }
14
+ computePerspectiveMatrix(canvas, camera, fovDeg, nearPlane = 0.1, insideSphere) {
15
+ this._aspectRatio = canvas.width / canvas.height;
16
+ const p = mat4.create();
17
+ let farPlane;
18
+ if (insideSphere) {
19
+ // Inside the sphere: cap slightly beyond radius
20
+ farPlane = 1.1;
21
+ }
22
+ else {
23
+ const camMat = camera.getCameraMatrix();
24
+ const distCamera = -Number(camMat[14]); // camera z translation
25
+ const r = 1; // HiPS sphere radius (inject real value if available)
26
+ // Guard against negative due to rounding/logic
27
+ const c2 = Math.sqrt(Math.max(distCamera ** 2 - r ** 2, 0));
28
+ const beta = Math.atan2(c2, r);
29
+ const cf = c2 * Math.sin(beta);
30
+ farPlane = cf > 0 ? cf : r;
31
+ }
32
+ mat4.perspective(p, (fovDeg * Math.PI) / 180, this._aspectRatio, nearPlane, farPlane);
33
+ this._pMatrix = p;
34
+ return p;
35
+ }
36
+ }
37
+ //# sourceMappingURL=PerspectiveMatrixManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerspectiveMatrixManager.js","sourceRoot":"","sources":["../../src/utils/PerspectiveMatrixManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAgB,MAAM,WAAW,CAAC;AAG/C,MAAM,OAAO,wBAAwB;IAC3B,QAAQ,CAAc;IACtB,YAAY,GAAG,CAAC,CAAC;IAEzB,YAAa,MAAyB,EACpC,MAAc,EACd,MAAc,EACd,YAAoB,GAAG,EACvB,YAAqB;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;IAChG,CAAC;IAEH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,CAAC,OAAoB;QAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,wBAAwB,CACtB,MAAyB,EACzB,MAAc,EACd,MAAc,EACd,YAAoB,GAAG,EACvB,YAAqB;QAErB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAEjD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,IAAI,QAAgB,CAAC;QAErB,IAAI,YAAY,EAAE,CAAC;YACjB,gDAAgD;YAChD,QAAQ,GAAG,GAAG,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,EAAS,CAAC;YAC/C,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,uBAAuB;YAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,sDAAsD;YAEnE,+CAA+C;YAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/B,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACtF,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC;CACF"}
@@ -0,0 +1,30 @@
1
+ import { vec3, ReadonlyVec3, ReadonlyMat4 } from "gl-matrix";
2
+ import { HealpixGrid } from "../model/grid/HealpixGrid.js";
3
+ import Camera from "../Camera.js";
4
+ declare class RayPickingUtils {
5
+ private static lastNearestVisibleObjectIdx;
6
+ /** Get index of the last object found under the mouse (if any). */
7
+ static getNearestVisibleObjectIdx(): number;
8
+ /**
9
+ * Builds a world-space ray from mouse coords.
10
+ * @param mouseX ClientX (page pixels)
11
+ * @param mouseY ClientY (page pixels)
12
+ * @param pMatrix Projection matrix
13
+ * @returns World-space direction (normalized) as a vec3
14
+ */
15
+ static getRayFromMouse(mouseX: number, mouseY: number, pMatrix: ReadonlyMat4, webgl: WebGL2RenderingContext, vMatrix: ReadonlyMat4): vec3;
16
+ /** a*b (4x4 * vec4) → vec4 (in `out`) */
17
+ private static mat4MultiplyVec4;
18
+ /**
19
+ * Ray–sphere intersection (world space).
20
+ * @returns distance `t` along the ray to the first hit, or `-1` if no hit.
21
+ */
22
+ static raySphere(rayOrigWorld: ReadonlyVec3, rayDirectionWorld: ReadonlyVec3, healpixGridSingleton: HealpixGrid): number;
23
+ /**
24
+ * Compute intersection with a single model (defaults to the Healpix grid).
25
+ * @returns model-space intersection point (vec3) if hit, otherwise empty array; and the picked model.
26
+ */
27
+ static getIntersectionPointWithSingleModel(mouseX: number, mouseY: number, healpixGrid: HealpixGrid, webgl: WebGL2RenderingContext, camera: Camera, pMatrix: ReadonlyMat4): number[];
28
+ }
29
+ export default RayPickingUtils;
30
+ //# sourceMappingURL=RayPickingUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RayPickingUtils.d.ts","sourceRoot":"","sources":["../../src/utils/RayPickingUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAQ,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,MAAM,MAAM,cAAc,CAAC;AAIlC,cAAM,eAAe;IACnB,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAAM;IAEhD,mEAAmE;IACnE,MAAM,CAAC,0BAA0B,IAAI,MAAM;IAI3C;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,sBAAsB,EAC7B,OAAO,EAAE,YAAY,GACpB,IAAI;IAkCP,yCAAyC;IACzC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAa/B;;;OAGG;IACH,MAAM,CAAC,SAAS,CACd,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,YAAY,EAC/B,oBAAoB,EAAE,WAAW,GAAG,MAAM;IAiC5C;;;OAGG;IACH,MAAM,CAAC,mCAAmC,CACxC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAC9B,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,sBAAsB,EAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE;CA4BnC;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * @author Fabrizio Giordano (Fab)
3
+ */
4
+ "use strict";
5
+ import { vec3, mat4 } from "gl-matrix";
6
+ class RayPickingUtils {
7
+ static lastNearestVisibleObjectIdx = -1;
8
+ /** Get index of the last object found under the mouse (if any). */
9
+ static getNearestVisibleObjectIdx() {
10
+ return this.lastNearestVisibleObjectIdx;
11
+ }
12
+ /**
13
+ * Builds a world-space ray from mouse coords.
14
+ * @param mouseX ClientX (page pixels)
15
+ * @param mouseY ClientY (page pixels)
16
+ * @param pMatrix Projection matrix
17
+ * @returns World-space direction (normalized) as a vec3
18
+ */
19
+ static getRayFromMouse(mouseX, mouseY, pMatrix, webgl, vMatrix) {
20
+ const gl = webgl;
21
+ const canvas = gl.canvas;
22
+ const rect = canvas.getBoundingClientRect();
23
+ // mouseX / mouseY are already local to the canvas (CSS pixels)
24
+ const canvasMX = mouseX;
25
+ const canvasMY = mouseY;
26
+ // Use rect.width / rect.height (CSS) for NDC
27
+ const x = (2.0 * canvasMX) / rect.width - 1.0;
28
+ const y = 1.0 - (2.0 * canvasMY) / rect.height;
29
+ const z = -1.0;
30
+ const rayClip = [x, y, z, 1.0];
31
+ const pInv = mat4.create();
32
+ mat4.invert(pInv, pMatrix);
33
+ const rayEye4 = [0, 0, 0, 0];
34
+ RayPickingUtils.mat4MultiplyVec4(pInv, rayClip, rayEye4);
35
+ // direction in eye space
36
+ const rayEye = [rayEye4[0], rayEye4[1], -1.0, 0.0];
37
+ const vInv = mat4.create();
38
+ mat4.invert(vInv, vMatrix);
39
+ const rayWorld4 = [0, 0, 0, 0];
40
+ RayPickingUtils.mat4MultiplyVec4(vInv, rayEye, rayWorld4);
41
+ const rayWorld = vec3.fromValues(rayWorld4[0], rayWorld4[1], rayWorld4[2]);
42
+ vec3.normalize(rayWorld, rayWorld);
43
+ return rayWorld;
44
+ }
45
+ /** a*b (4x4 * vec4) → vec4 (in `out`) */
46
+ static mat4MultiplyVec4(a, b, out) {
47
+ const d = b[0], e = b[1], g = b[2], w = b[3];
48
+ out[0] = a[0] * d + a[4] * e + a[8] * g + a[12] * w;
49
+ out[1] = a[1] * d + a[5] * e + a[9] * g + a[13] * w;
50
+ out[2] = a[2] * d + a[6] * e + a[10] * g + a[14] * w;
51
+ out[3] = a[3] * d + a[7] * e + a[11] * g + a[15] * w;
52
+ return out;
53
+ }
54
+ /**
55
+ * Ray–sphere intersection (world space).
56
+ * @returns distance `t` along the ray to the first hit, or `-1` if no hit.
57
+ */
58
+ static raySphere(rayOrigWorld, rayDirectionWorld, healpixGridSingleton) {
59
+ let intersectionDistance = -1;
60
+ const L = vec3.create();
61
+ vec3.subtract(L, rayOrigWorld, healpixGridSingleton.center);
62
+ const b = vec3.dot(rayDirectionWorld, L);
63
+ const c = vec3.dot(L, L) - healpixGridSingleton.radius * healpixGridSingleton.radius;
64
+ const disc = b * b - c;
65
+ if (disc > 0.0) {
66
+ const s = Math.sqrt(disc);
67
+ const ta = -b + s;
68
+ const tb = -b - s;
69
+ if (ta < 0.0 && tb < 0.0) {
70
+ // behind camera
71
+ }
72
+ else if (tb < 0.0) {
73
+ intersectionDistance = ta;
74
+ }
75
+ else {
76
+ intersectionDistance = Math.min(ta, tb);
77
+ }
78
+ }
79
+ else if (disc === 0.0) {
80
+ const t = -b; // tangent
81
+ if (t >= 0.0) {
82
+ intersectionDistance = t;
83
+ }
84
+ }
85
+ return intersectionDistance;
86
+ }
87
+ /**
88
+ * Compute intersection with a single model (defaults to the Healpix grid).
89
+ * @returns model-space intersection point (vec3) if hit, otherwise empty array; and the picked model.
90
+ */
91
+ static getIntersectionPointWithSingleModel(mouseX, mouseY, healpixGrid, webgl, camera, pMatrix) {
92
+ const vMatrix = camera.getCameraMatrix();
93
+ const rayWorld = RayPickingUtils.getRayFromMouse(mouseX, mouseY, pMatrix, webgl, vMatrix);
94
+ const t = RayPickingUtils.raySphere(camera.getCameraPosition(), rayWorld, healpixGrid);
95
+ let intersectionModelPoint = [];
96
+ if (t >= 0) {
97
+ // world intersection
98
+ const worldHit = vec3.create();
99
+ vec3.scale(worldHit, rayWorld, t);
100
+ vec3.add(worldHit, camera.getCameraPosition(), worldHit);
101
+ // world → model
102
+ const worldHit4 = [worldHit[0], worldHit[1], worldHit[2], 1.0];
103
+ const modelHit4 = [0, 0, 0, 0];
104
+ // RayPickingUtils.mat4MultiplyVec4(healpixGridSingleton.getModelMatrixInverse(), worldHit4, modelHit4);
105
+ RayPickingUtils.mat4MultiplyVec4(healpixGrid.getModelMatrixInverse(), worldHit4, modelHit4);
106
+ intersectionModelPoint = [modelHit4[0], modelHit4[1], modelHit4[2]];
107
+ }
108
+ return intersectionModelPoint;
109
+ }
110
+ }
111
+ export default RayPickingUtils;
112
+ //# sourceMappingURL=RayPickingUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RayPickingUtils.js","sourceRoot":"","sources":["../../src/utils/RayPickingUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @author Fabrizio Giordano (Fab77)
3
+ */
4
+ import { Point } from "../model/Point.js";
5
+ export interface STCSParseResult {
6
+ totpoints: number;
7
+ polygons: Point[][];
8
+ }
9
+ declare class STCSParser {
10
+ static parseSTCS(stcs: string): STCSParseResult;
11
+ static cleanStcs(stcs: string): string;
12
+ static parsePolygon(stcs: string): STCSParseResult;
13
+ static parseCircle(stcs: string): STCSParseResult;
14
+ }
15
+ export default STCSParser;
16
+ //# sourceMappingURL=STCSParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"STCSParser.d.ts","sourceRoot":"","sources":["../../src/utils/STCSParser.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAIxC,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;CACrB;AAED,cAAM,UAAU;IACd,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAgB/C,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAqBtC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAuClD,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;CAkClD;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * @author Fabrizio Giordano (Fab77)
3
+ */
4
+ import { Point } from "../model/Point.js";
5
+ import { CoordsType } from "./CoordsType.js";
6
+ import global from "../Global.js";
7
+ class STCSParser {
8
+ static parseSTCS(stcs) {
9
+ const stcsParsed = STCSParser.cleanStcs(stcs);
10
+ let totPoints = 0;
11
+ const polygons = [];
12
+ if (stcsParsed.includes("POLYGON")) {
13
+ return STCSParser.parsePolygon(stcsParsed);
14
+ }
15
+ else if (stcsParsed.includes("CIRCLE")) {
16
+ return STCSParser.parseCircle(stcsParsed);
17
+ }
18
+ else {
19
+ console.warn("STCS not recognised");
20
+ }
21
+ return { totpoints: totPoints, polygons };
22
+ }
23
+ static cleanStcs(stcs) {
24
+ // Uppercase once
25
+ let s = stcs.toUpperCase();
26
+ // Remove tokens
27
+ s = s
28
+ .replace(/'ICRS'/g, '')
29
+ .replace(/\bICRS\b/g, '')
30
+ .replace(/\bJ2000\b/g, '')
31
+ .replace(/\bUNION\b/g, '')
32
+ .replace(/\bTOPOCENTER\b/g, '');
33
+ // Remove parentheses
34
+ s = s.replace(/[()]/g, '');
35
+ // Collapse extra spaces and trim
36
+ s = s.replace(/ {2,}/g, ' ').trim();
37
+ return s;
38
+ }
39
+ static parsePolygon(stcs) {
40
+ let totPoints = 0;
41
+ const polygons = [];
42
+ const MAX_DECIMALS = global.MAX_DECIMALS ?? 12;
43
+ const polys = stcs.split("POLYGON ");
44
+ for (let i = 1; i < polys.length; i++) {
45
+ const currPoly = [];
46
+ const points = polys[i].trim().split(" ");
47
+ // If first point is repeated as last, remove the duplicate
48
+ const p0 = Number(parseFloat(points[0]).toFixed(MAX_DECIMALS));
49
+ const p1 = Number(parseFloat(points[1]).toFixed(MAX_DECIMALS));
50
+ const plast0 = Number(parseFloat(points[points.length - 2]).toFixed(MAX_DECIMALS));
51
+ const plast1 = Number(parseFloat(points[points.length - 1]).toFixed(MAX_DECIMALS));
52
+ if (p0 === plast0 && p1 === plast1) {
53
+ points.splice(points.length - 2, 2);
54
+ }
55
+ if (points.length > 2) {
56
+ for (let p = 0; p < points.length - 1; p += 2) {
57
+ const raDeg = Number(parseFloat(points[p]).toFixed(MAX_DECIMALS));
58
+ const decDeg = Number(parseFloat(points[p + 1]).toFixed(MAX_DECIMALS));
59
+ const point = new Point({ raDeg, decDeg }, CoordsType.ASTRO);
60
+ currPoly.push(point);
61
+ totPoints += 1;
62
+ }
63
+ polygons.push(currPoly);
64
+ }
65
+ }
66
+ return { totpoints: totPoints, polygons };
67
+ }
68
+ // Example format: "CIRCLE ICRS 8.739685 4.38147 0.027833"
69
+ static parseCircle(stcs) {
70
+ let totPoints = 0;
71
+ const polygons = [];
72
+ const polys = stcs.split("CIRCLE ");
73
+ for (let i = 1; i < polys.length; i++) {
74
+ const currPoly = [];
75
+ const tokens = polys[i].trim().split(" ");
76
+ const ra = Number(tokens[0]);
77
+ const dec = Number(tokens[1]);
78
+ const radius = Number(tokens[2]);
79
+ const POINTS_PER_QUADRANT = 6;
80
+ const npoints = POINTS_PER_QUADRANT * 4;
81
+ const alpha = (2 * Math.PI) / npoints;
82
+ // Generate points around the circle
83
+ for (let p = npoints; p > 0; p--) {
84
+ const curra = radius * Math.cos(p * alpha) + ra;
85
+ const curdec = radius * Math.sin(p * alpha) + dec;
86
+ const point = new Point({ raDeg: curra, decDeg: curdec }, CoordsType.ASTRO);
87
+ currPoly.push(point);
88
+ totPoints += 1;
89
+ }
90
+ polygons.push(currPoly);
91
+ }
92
+ return { totpoints: totPoints, polygons };
93
+ }
94
+ }
95
+ export default STCSParser;
96
+ //# sourceMappingURL=STCSParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"STCSParser.js","sourceRoot":"","sources":["../../src/utils/STCSParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ShaderUtility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShaderUtility.d.ts","sourceRoot":"","sources":["../../src/utils/ShaderUtility.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ // import global from "../Global.js";
2
+ // // import ShaderManager from "../shader/ShaderManager.js";
3
+ export {};
4
+ // // type GL = WebGLRenderingContext | WebGL2RenderingContext;
5
+ // class ShaderUtility {
6
+ // private lastUsedProgram: WebGLProgram | null = null;
7
+ // /** Bind a WebGL program only if it's not already bound. */
8
+ // // useProgram(program: WebGLProgram, webgl: WebGL2RenderingContext): void {
9
+ // useProgram(program: WebGLProgram): void {
10
+ // const gl = global.gl;
11
+ // // const gl = webgl;
12
+ // if (!gl) {
13
+ // throw new Error("WebGL context is not initialized.");
14
+ // }
15
+ // if (this.lastUsedProgram !== program) {
16
+ // gl.useProgram(program);
17
+ // this.lastUsedProgram = program;
18
+ // }
19
+ // }
20
+ // }
21
+ // export const shaderUtility = new ShaderUtility();
22
+ // export default ShaderUtility;
23
+ //# sourceMappingURL=ShaderUtility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShaderUtility.js","sourceRoot":"","sources":["../../src/utils/ShaderUtility.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,6DAA6D;;AAE7D,+DAA+D;AAE/D,wBAAwB;AACxB,yDAAyD;AAEzD,gEAAgE;AAChE,gFAAgF;AAChF,8CAA8C;AAC9C,4BAA4B;AAC5B,2BAA2B;AAC3B,iBAAiB;AACjB,8DAA8D;AAC9D,QAAQ;AACR,8CAA8C;AAC9C,gCAAgC;AAChC,wCAAwC;AACxC,QAAQ;AACR,MAAM;AACN,IAAI;AAEJ,oDAAoD;AACpD,gCAAgC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @author Fabrizio Giordano (Fab)
3
+ */
4
+ import { vec3 } from "gl-matrix";
5
+ export interface SphericalCoords {
6
+ phi: number;
7
+ theta: number;
8
+ }
9
+ export interface AstroCoords {
10
+ ra: number;
11
+ dec: number;
12
+ }
13
+ export interface HMS {
14
+ h: number;
15
+ m: number;
16
+ s: number;
17
+ }
18
+ export interface DMS {
19
+ d: number;
20
+ m: number;
21
+ s: number;
22
+ }
23
+ export declare function cartesianToSpherical(xyz: vec3): SphericalCoords;
24
+ export declare function colorHex2RGB(hexColor: string): [number, number, number];
25
+ export declare function degToRad(degrees: number): number;
26
+ export declare function radToDeg(radians: number): number;
27
+ export declare function sphericalToAstroDeg(phiDeg: number, thetaDeg: number): AstroCoords;
28
+ export declare function sphericalToCartesian(phiDeg: number, thetaDeg: number, r?: number): [number, number, number];
29
+ export declare function astroDegToSpherical(raDeg: number, decDeg: number): SphericalCoords;
30
+ export declare function raDegToHMS(raDeg: number): HMS;
31
+ export declare function decDegToDMS(decDeg: number): DMS;
32
+ //# sourceMappingURL=Utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../src/utils/Utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,GAAG;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,GAAG;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAGD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,IAAI,GAAG,eAAe,CAe/D;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAcvE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAOjF;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,CAAC,GAAE,MAAU,GACZ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAK1B;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAOlF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAK7C;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAa/C"}