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,222 @@
1
+ 'use strict';
2
+ /**
3
+ * @author Fabrizio Giordano (Fab77)
4
+ */
5
+ import { AbstractSkyEntity } from '../AbstractSkyEntity.js';
6
+ import { fovHelper } from './FoVHelper.js';
7
+ import ColorMaps from '../ColorMaps.js';
8
+ // import { hipsShaderProgram } from '../../shader/HiPSShaderProgram.js'
9
+ // import { HiPSShaderProgram } from '../../shader/HiPSShaderProgram.js'
10
+ import AncestorTile from './AncestorTile.js';
11
+ import AllSky from './AllSky.js';
12
+ export class HiPS extends AbstractSkyEntity {
13
+ _ancestorTiles;
14
+ _allSkyTile;
15
+ _descriptor;
16
+ _format;
17
+ _baseurl;
18
+ _maxorder;
19
+ _minorder;
20
+ _visibleorder = 3;
21
+ _allSky = true;
22
+ samplerIdx = 0;
23
+ colorMapIdx = 0;
24
+ colorMap = ColorMaps['native'];
25
+ _healpixGrid;
26
+ // exposed read-only helpers
27
+ get maxOrder() { return this._maxorder; }
28
+ get minOrder() { return this._minorder; }
29
+ get baseURL() { return this._baseurl; }
30
+ get format() { return this._format; }
31
+ get propertiesRawText() { return this._descriptor.propertiesRawText; }
32
+ get properties() { return this._descriptor.properties; }
33
+ constructor(radius, position, xrad, yrad, descriptor, webgl, healpixGrid) {
34
+ super(radius, position, xrad, yrad, descriptor.surveyName, webgl, descriptor.isGalactic);
35
+ this._descriptor = descriptor;
36
+ // this.initGL((global as any).gl as WebGL2RenderingContext)
37
+ this.initGL(webgl);
38
+ this._healpixGrid = healpixGrid;
39
+ // newTileBuffer.addHiPS(this)
40
+ this._healpixGrid.visibleTilesManager.tileBuffer.addHiPS(this);
41
+ // DEBUG logs kept from JS (optional)
42
+ // eslint-disable-next-line no-console
43
+ console.log('HiPS frame ' + descriptor.hipsFrame);
44
+ // eslint-disable-next-line no-console
45
+ console.log('HiPS minOrder ' + descriptor.minOrder);
46
+ this._format = descriptor.imgFormats[0];
47
+ this._baseurl = descriptor.url;
48
+ this._maxorder = descriptor.maxOrder;
49
+ this._minorder = descriptor.minOrder;
50
+ this.initShaders();
51
+ // pick initial order from a starting FoV
52
+ const fov = 180;
53
+ let order = fovHelper.getHiPSNorder(fov);
54
+ this._visibleorder = Math.min(order, this._maxorder);
55
+ this._ancestorTiles = [];
56
+ this._allSkyTile = null;
57
+ // auto-detect all-sky: original code forces true
58
+ this._allSky = true;
59
+ if (this._allSky) {
60
+ this._allSkyTile = new AllSky(this, this._webgl, this._healpixGrid.visibleTilesManager.tileBuffer, super.hipsShaderProgram);
61
+ }
62
+ else {
63
+ for (let t = 0; t < 12; t++) {
64
+ this._ancestorTiles.push(new AncestorTile(t, 0, this, this._healpixGrid.visibleTilesManager.tileBuffer, super.hipsShaderProgram, this._webgl));
65
+ }
66
+ }
67
+ }
68
+ getProperty(key) {
69
+ return this._descriptor.getProperty(key);
70
+ }
71
+ changeFormat(format) {
72
+ this._format = format;
73
+ // original code referenced _tileBuffer; if you have one, wire it back.
74
+ // Keeping calls no-op to avoid breaking at runtime if _tileBuffer is undefined.
75
+ // (newVisibleTilesManager + TileBuffer drive the actual tile lifecycle)
76
+ // @ts-ignore
77
+ if (this._tileBuffer?.clearAll)
78
+ this._tileBuffer.clearAll();
79
+ // @ts-ignore
80
+ if (this._tileBuffer)
81
+ this._tileBuffer._format = this._format;
82
+ const pixelByOrder = this.isGalacticHips
83
+ ? this._healpixGrid.visibleTilesManager.galVisibleTilesByOrder
84
+ : this._healpixGrid.visibleTilesManager.visibleTilesByOrder;
85
+ // const pixelByOrder =
86
+ // this.isGalacticHips
87
+ // ? visibleTilesManager.galVisibleTilesByOrder
88
+ // : visibleTilesManager.visibleTilesByOrder
89
+ // @ts-ignore
90
+ if (this._tileBuffer?.updateTiles)
91
+ this._tileBuffer.updateTiles(pixelByOrder.pixels, pixelByOrder.order);
92
+ }
93
+ /**
94
+ * Shader colormap switcher
95
+ * 0 -> native
96
+ * 1 -> grayscale
97
+ * 2 -> planck
98
+ * 3 -> cmb
99
+ * 4 -> rainbow
100
+ * 5 -> eosb
101
+ * 6 -> cubehelix
102
+ */
103
+ changeColorMap(colorMap) {
104
+ console.log('HiPS.changeColorMap -> shaderProgram', super.hipsShaderProgram.shaderProgram);
105
+ this.colorMap = colorMap;
106
+ switch (colorMap.name) {
107
+ case 'grayscale':
108
+ this.colorMapIdx = 1;
109
+ // hipsShaderProgram.setGrayscaleShader()
110
+ this.colorMap = ColorMaps['grayscale'];
111
+ super.hipsShaderProgram.setGrayscaleShader();
112
+ break;
113
+ case 'planck':
114
+ this.colorMapIdx = 2;
115
+ this.colorMap = ColorMaps['planck'];
116
+ // hipsShaderProgram.setColorMapShader()
117
+ super.hipsShaderProgram.setColorMapShader();
118
+ break;
119
+ case 'cmb':
120
+ this.colorMapIdx = 3;
121
+ this.colorMap = ColorMaps['cmb'];
122
+ // hipsShaderProgram.setColorMapShader()
123
+ super.hipsShaderProgram.setColorMapShader();
124
+ break;
125
+ case 'rainbow':
126
+ this.colorMapIdx = 4;
127
+ this.colorMap = ColorMaps['rainbow'];
128
+ // hipsShaderProgram.setColorMapShader()
129
+ super.hipsShaderProgram.setColorMapShader();
130
+ break;
131
+ case 'eosb':
132
+ this.colorMapIdx = 5;
133
+ this.colorMap = ColorMaps['eosb'];
134
+ super.hipsShaderProgram.setColorMapShader();
135
+ // hipsShaderProgram.setColorMapShader()
136
+ break;
137
+ case 'cubehelix':
138
+ this.colorMapIdx = 6;
139
+ this.colorMap = ColorMaps['cubehelix'];
140
+ super.hipsShaderProgram.setColorMapShader();
141
+ // hipsShaderProgram.setColorMapShader()
142
+ break;
143
+ case 'hot':
144
+ this.colorMapIdx = 7;
145
+ this.colorMap = ColorMaps['hot'];
146
+ super.hipsShaderProgram.setColorMapShader();
147
+ // hipsShaderProgram.setColorMapShader()
148
+ break;
149
+ case 'gray':
150
+ this.colorMapIdx = 8;
151
+ this.colorMap = ColorMaps['gray'];
152
+ super.hipsShaderProgram.setColorMapShader();
153
+ // hipsShaderProgram.setColorMapShader()
154
+ break;
155
+ case 'native':
156
+ this.colorMapIdx = 0;
157
+ this.colorMap = ColorMaps['native'];
158
+ super.hipsShaderProgram.setNativeShader();
159
+ break;
160
+ default:
161
+ this.colorMapIdx = 9;
162
+ this.colorMap = colorMap;
163
+ super.hipsShaderProgram.setColorMapShader();
164
+ }
165
+ }
166
+ initShaders() {
167
+ super.hipsShaderProgram.enableProgram();
168
+ // hipsShaderProgram.enableProgram()
169
+ // this.shaderProgram = super.hipsShaderProgram.shaderProgram
170
+ // this.shaderProgram = hipsShaderProgram.shaderProgram
171
+ }
172
+ getCurrentHealpixOrder() {
173
+ return this._visibleorder;
174
+ }
175
+ refresh() {
176
+ // const fov = healpixGridSingleton.getMinFoV()
177
+ const fov = this._healpixGrid.getMinFoV();
178
+ this._visibleorder = Math.min(fovHelper.getHiPSNorder(fov), this._maxorder);
179
+ }
180
+ draw(input) {
181
+ const vMatrix = input.camera.getCameraMatrix();
182
+ if (!vMatrix)
183
+ return;
184
+ const pMatrix = input.pMatrix;
185
+ if (!pMatrix)
186
+ return;
187
+ this.refresh();
188
+ // const pMatrix = computePerspectiveMatrixSingleton.pMatrix as Float32Array
189
+ const mMatrix = this.getModelMatrix();
190
+ super.hipsShaderProgram.setRuntimeColorMap(this.colorMap);
191
+ if (this._allSky && this._allSkyTile) {
192
+ if (this.isGalacticHips) {
193
+ this._allSkyTile.draw(this._healpixGrid.visibleTilesManager.galVisibleTilesByOrder.order, this._healpixGrid.visibleTilesManager.galAncestorsMap,
194
+ // visibleTilesManager.galVisibleTilesByOrder.order,
195
+ // visibleTilesManager.galAncestorsMap,
196
+ pMatrix, vMatrix, mMatrix, this.colorMapIdx);
197
+ }
198
+ else {
199
+ this._allSkyTile.draw(this._healpixGrid.visibleTilesManager.visibleTilesByOrder.order, this._healpixGrid.visibleTilesManager.ancestorsMap,
200
+ // visibleTilesManager.visibleTilesByOrder.order,
201
+ // visibleTilesManager.ancestorsMap,
202
+ pMatrix, vMatrix, mMatrix, this.colorMapIdx);
203
+ }
204
+ return;
205
+ }
206
+ // Non all-sky path
207
+ const order = this.isGalacticHips
208
+ ? this._healpixGrid.visibleTilesManager.galVisibleTilesByOrder.order
209
+ : this._healpixGrid.visibleTilesManager.visibleTilesByOrder.order;
210
+ // ? visibleTilesManager.galVisibleTilesByOrder.order
211
+ // : visibleTilesManager.visibleTilesByOrder.order
212
+ const map = this.isGalacticHips
213
+ ? this._healpixGrid.visibleTilesManager.galAncestorsMap
214
+ : this._healpixGrid.visibleTilesManager.ancestorsMap;
215
+ // ? visibleTilesManager.galAncestorsMap
216
+ // : visibleTilesManager.ancestorsMap
217
+ this._ancestorTiles.forEach((ancestor) => {
218
+ ancestor.draw(order, map, pMatrix, vMatrix, mMatrix, this.colorMapIdx);
219
+ });
220
+ }
221
+ }
222
+ //# sourceMappingURL=HiPS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiPS.js","sourceRoot":"","sources":["../../../src/model/hips/HiPS.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ export interface HiPSDataRange {
2
+ min: number | undefined;
3
+ max: number | undefined;
4
+ }
5
+ export type HiPSFrame = 'equatorial' | 'galactic' | string;
6
+ export declare class HiPSDescriptor {
7
+ private _minOrder;
8
+ private _imgformats;
9
+ private _datarange;
10
+ private _maxOrder;
11
+ private _tilewidth;
12
+ private _hipsFrame;
13
+ private _hipsName;
14
+ private _hipsurl;
15
+ private _emMin;
16
+ private _emMax;
17
+ private _isGalctic;
18
+ private _propertiesRawText;
19
+ private _propertiesMap;
20
+ constructor(hipsproperties: string, hipsurl: string);
21
+ private getValue;
22
+ get propertiesRawText(): string;
23
+ get properties(): ReadonlyMap<string, string>;
24
+ getProperty(key: string): string | undefined;
25
+ get surveyName(): string;
26
+ get url(): string;
27
+ get maxOrder(): number;
28
+ get minOrder(): number;
29
+ get imgFormats(): string[];
30
+ get hipsFrame(): HiPSFrame;
31
+ get isGalactic(): boolean;
32
+ get emMin(): number | undefined;
33
+ get emMax(): number | undefined;
34
+ get tileWidth(): number | undefined;
35
+ get dataRange(): HiPSDataRange;
36
+ }
37
+ //# sourceMappingURL=HiPSDescriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiPSDescriptor.d.ts","sourceRoot":"","sources":["../../../src/model/hips/HiPSDescriptor.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CACxB;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAA;AAE1D,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,UAAU,CAAoD;IACtE,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,cAAc,CAAiC;gBAE3C,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAmEnD,OAAO,CAAC,QAAQ;IAOhB,IAAI,iBAAiB,WAEpB;IAED,IAAI,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5C;IAED,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI5C,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,UAAU,IAAI,MAAM,EAAE,CAEzB;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,IAAI,SAAS,IAAI,aAAa,CAE7B;CACF"}
@@ -0,0 +1,132 @@
1
+ // HiPSDescriptor.ts
2
+ 'use strict';
3
+ export class HiPSDescriptor {
4
+ _minOrder = 3;
5
+ _imgformats = [];
6
+ _datarange = { min: undefined, max: undefined };
7
+ _maxOrder;
8
+ _tilewidth;
9
+ _hipsFrame;
10
+ _hipsName = 'NONAME';
11
+ _hipsurl;
12
+ _emMin;
13
+ _emMax;
14
+ _isGalctic = false;
15
+ _propertiesRawText;
16
+ _propertiesMap = new Map();
17
+ constructor(hipsproperties, hipsurl) {
18
+ this._hipsurl = hipsurl;
19
+ this._propertiesRawText = hipsproperties;
20
+ const lines = hipsproperties.split(/\r\n|\n/);
21
+ for (const raw of lines) {
22
+ const line = raw.trim();
23
+ if (!line || line.startsWith('#'))
24
+ continue;
25
+ const maybeKey = line.slice(0, line.indexOf('=')).trim();
26
+ const maybeValue = this.getValue(line);
27
+ if (maybeKey && maybeValue !== undefined) {
28
+ this._propertiesMap.set(maybeKey, maybeValue);
29
+ }
30
+ if (line.startsWith('hips_tile_format') || line.startsWith('format')) {
31
+ // normalize jpeg→jpg
32
+ const list = this.getValue(line)?.replace(/jpeg/gi, 'jpg') ?? '';
33
+ this._imgformats = list.split(/\s+/).filter(Boolean);
34
+ }
35
+ else if (line.startsWith('hips_data_range')) {
36
+ const v = this.getValue(line);
37
+ if (v) {
38
+ const [minStr, maxStr] = v.split(/\s+/);
39
+ this._datarange.min = parseFloat(minStr);
40
+ this._datarange.max = parseFloat(maxStr);
41
+ }
42
+ }
43
+ else if (line.startsWith('hips_tile_width')) {
44
+ const n = Number(this.getValue(line));
45
+ this._tilewidth = Number.isFinite(n) ? n : undefined;
46
+ }
47
+ else if (line.startsWith('hips_order_min')) {
48
+ const n = Number(this.getValue(line));
49
+ this._minOrder = Number.isFinite(n) ? n : this._minOrder;
50
+ }
51
+ else if (line.startsWith('hips_order') || line.startsWith('maxOrder')) {
52
+ const n = Number(this.getValue(line));
53
+ this._maxOrder = Number.isFinite(n) ? n : this._maxOrder;
54
+ }
55
+ else if (line.startsWith('hips_frame') || line.startsWith('frame')) {
56
+ this._hipsFrame = this.getValue(line);
57
+ }
58
+ else if (line.startsWith('obs_collection') || line.startsWith('label')) {
59
+ this._hipsName = this.getValue(line) ?? this._hipsName;
60
+ }
61
+ else if (line.startsWith('em_min')) {
62
+ const n = Number(this.getValue(line));
63
+ this._emMin = Number.isFinite(n) ? n : undefined;
64
+ }
65
+ else if (line.startsWith('em_max')) {
66
+ const n = Number(this.getValue(line));
67
+ this._emMax = Number.isFinite(n) ? n : undefined;
68
+ }
69
+ }
70
+ if (!this._hipsName) {
71
+ console.warn(`[HiPSDescriptor] hipsName not defined in properties of ${this._hipsurl}. Defaulting to 'NONAME'.`);
72
+ }
73
+ if (!this._hipsFrame) {
74
+ console.warn(`[HiPSDescriptor] hips_frame not defined in properties of ${this._hipsurl}. Defaulting to 'equatorial'.`);
75
+ this._hipsFrame = 'equatorial';
76
+ }
77
+ this._isGalctic = this._hipsFrame.toLowerCase().includes('gal');
78
+ if (this._maxOrder === undefined || this._imgformats.length === 0) {
79
+ throw new Error(`[HiPSDescriptor] Invalid properties for ${this._hipsurl}. maxOrder=${this._maxOrder}, imgFormats.length=${this._imgformats.length}`);
80
+ }
81
+ }
82
+ getValue(line) {
83
+ const idx = line.indexOf('=');
84
+ if (idx < 0)
85
+ return undefined;
86
+ return line.slice(idx + 1).trim();
87
+ }
88
+ // --- Getters ---
89
+ get propertiesRawText() {
90
+ return this._propertiesRawText;
91
+ }
92
+ get properties() {
93
+ return new Map(this._propertiesMap);
94
+ }
95
+ getProperty(key) {
96
+ return this._propertiesMap.get(key);
97
+ }
98
+ get surveyName() {
99
+ return this._hipsName;
100
+ }
101
+ get url() {
102
+ return this._hipsurl;
103
+ }
104
+ get maxOrder() {
105
+ return this._maxOrder;
106
+ }
107
+ get minOrder() {
108
+ return this._minOrder;
109
+ }
110
+ get imgFormats() {
111
+ return this._imgformats;
112
+ }
113
+ get hipsFrame() {
114
+ return this._hipsFrame;
115
+ }
116
+ get isGalactic() {
117
+ return this._isGalctic;
118
+ }
119
+ get emMin() {
120
+ return this._emMin;
121
+ }
122
+ get emMax() {
123
+ return this._emMax;
124
+ }
125
+ get tileWidth() {
126
+ return this._tilewidth;
127
+ }
128
+ get dataRange() {
129
+ return this._datarange;
130
+ }
131
+ }
132
+ //# sourceMappingURL=HiPSDescriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiPSDescriptor.js","sourceRoot":"","sources":["../../../src/model/hips/HiPSDescriptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { TileBuffer } from './TileBuffer.js';
2
+ import { HiPS } from './HiPS.js';
3
+ import { VisibleTilesManager } from './VisibleTilesManager.js';
4
+ import { HiPSShaderProgram } from '../../shader/HiPSShaderProgram.js';
5
+ type Mat4 = Float32Array;
6
+ export default class Tile {
7
+ private _hips;
8
+ private _tileno;
9
+ private _baseurl;
10
+ private _order;
11
+ private _format;
12
+ private _maxorder;
13
+ private _isGalacticHips;
14
+ private _ready;
15
+ private _abort;
16
+ private _image;
17
+ private _textureLoaded;
18
+ private _texture?;
19
+ private _texurl;
20
+ private _hipsShaderIndex;
21
+ private _cacheTime0?;
22
+ private _inView;
23
+ private _amIStillInFoV_requsetID;
24
+ private vertexPosition;
25
+ private vertexPositionBuffer;
26
+ private vertexIndices;
27
+ private vertexIndexBuffer?;
28
+ private _tileBuffer;
29
+ opacity: number;
30
+ private _webgl;
31
+ private _visibleTileManager;
32
+ constructor(tileno: number, order: number, hips: HiPS, tileBuffer: TileBuffer, webgl: WebGL2RenderingContext, visibleTileManager: VisibleTilesManager);
33
+ destroyIntervals(): void;
34
+ getReadyState(): boolean;
35
+ get cacheTime0(): number | undefined;
36
+ resetCacheTime0(): void;
37
+ setCacheTime0(): void;
38
+ private initImage;
39
+ private imageLoaded;
40
+ private textureLoaded;
41
+ private initModelBuffer;
42
+ private computeVertexIndices;
43
+ private setupPositionAndTexture4Quadrant2;
44
+ get inView(): boolean;
45
+ private moveToCache;
46
+ amIStillInFoV(): void;
47
+ draw(visibleOrder: number, visibleTilesMap: Map<number, number[]>, pMatrix: Mat4, vMatrix: Mat4, mMatrix: Mat4, colorMapIdx: number, hipsShaderProgram: HiPSShaderProgram): void;
48
+ private drawChildren;
49
+ }
50
+ export {};
51
+ //# sourceMappingURL=Tile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tile.d.ts","sourceRoot":"","sources":["../../../src/model/hips/Tile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAerE,KAAK,IAAI,GAAG,YAAY,CAAC;AAIzB,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAc;IAC/B,OAAO,CAAC,OAAO,CAAK;IAEpB,OAAO,CAAC,gBAAgB,CAAI;IAE5B,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,wBAAwB,CAAQ;IAGxC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,oBAAoB,CAAoB;IAChD,OAAO,CAAC,aAAa,CAA+C;IACpE,OAAO,CAAC,iBAAiB,CAAC,CAAa;IAEvC,OAAO,CAAC,WAAW,CAAY;IAExB,OAAO,SAAM;IACpB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,mBAAmB,CAAqB;gBAGpC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EACvC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAClC,KAAK,EAAE,sBAAsB,EAC7B,kBAAkB,EAAE,mBAAmB;IAyBzC,gBAAgB,IAAI,IAAI;IAIxB,aAAa,IAAI,OAAO;IAIxB,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED,eAAe,IAAI,IAAI;IAIvB,aAAa,IAAI,IAAI;IAIrB,OAAO,CAAC,SAAS;IA4BjB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;IAmCrB,OAAO,CAAC,eAAe;IAyCvB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,iCAAiC;IA0DzC,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,OAAO,CAAC,WAAW;IAOnB,aAAa,IAAI,IAAI;IAkErB,IAAI,CACF,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACtC,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,EACb,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,iBAAiB,GACnC,IAAI;IAuDP,OAAO,CAAC,YAAY;CAiCrB"}