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,614 @@
1
+ import { Source } from '../Source.js';
2
+ import { Point } from '../Point.js';
3
+ import { CoordsType } from '../..//utils/CoordsType.js';
4
+ import { colorHex2RGB } from '../../utils/Utils.js';
5
+ import { CatalogueShaderProgram } from '../../shader/CatalogueShaderProgram.js';
6
+ import { MetadataManager } from '../MetadataManager.js';
7
+ export class CatalogueGL {
8
+ _kind = "CatalogueGL";
9
+ static ELEM_SIZE = 6;
10
+ static BYTES_X_ELEM = new Float32Array().BYTES_PER_ELEMENT;
11
+ static STANDARD_SHAPE_SIZE = 10.0;
12
+ static STANDARD_SHAPE_HUE = 3.0;
13
+ _ready;
14
+ _name;
15
+ _description;
16
+ // Data
17
+ _sources;
18
+ // gl: GL;
19
+ // Buffers & arrays
20
+ vertexCataloguePositionBuffer = null;
21
+ vertexhoveredCataloguePositionBuffer = null;
22
+ vertexCataloguePosition;
23
+ _bufferInitialised = false;
24
+ _webgl;
25
+ // Index/selection bookkeeping
26
+ hoveredIndexes;
27
+ selectedIndexes;
28
+ extHoveredIndexes;
29
+ // extSelectedIndexes: number[];
30
+ _oldMouseCoords;
31
+ _metadataManager;
32
+ _isVisible = true;
33
+ _shapeColor = '#8F00FF';
34
+ _healpixDensityMap;
35
+ _providerUrl;
36
+ _catalogueShaderProgram;
37
+ _visibleTilesManager;
38
+ constructor(catalogueName, catalogueDescription, providerUrl, metadataManager, webgl, visibleTilesManager) {
39
+ this._webgl = webgl;
40
+ this._ready = false;
41
+ this._visibleTilesManager = visibleTilesManager;
42
+ this.TYPE = 'SOURCE_CATALOGUE';
43
+ this._name = catalogueName;
44
+ this._description = catalogueDescription;
45
+ this._providerUrl = providerUrl;
46
+ this._metadataManager = metadataManager;
47
+ this._sources = [];
48
+ // GL init
49
+ // this.gl = global.gl as GL;
50
+ // this.vertexCataloguePositionBuffer = this.gl.createBuffer();
51
+ // this.vertexhoveredCataloguePositionBuffer = this.gl.createBuffer();
52
+ this.vertexCataloguePosition = new Float32Array(0);
53
+ this.hoveredIndexes = [];
54
+ this.selectedIndexes = [];
55
+ this.extHoveredIndexes = [];
56
+ // this.extSelectedIndexes = [];
57
+ this._oldMouseCoords = null;
58
+ this._healpixDensityMap = new Map();
59
+ // this.catalogueProps = new CatalogueProps(metadataManager, defaultColor);
60
+ // call catalogueShaderProgram to init shaders if they are not yet initialised
61
+ this._catalogueShaderProgram = new CatalogueShaderProgram(this._webgl);
62
+ this._catalogueShaderProgram.shaderProgram;
63
+ // catalogueShaderProgram.shaderProgram
64
+ this._isVisible = true;
65
+ }
66
+ setIsVisible(visibility) {
67
+ this._isVisible = visibility;
68
+ }
69
+ get shapeColor() {
70
+ return this._shapeColor;
71
+ }
72
+ get providerUrl() {
73
+ return this._providerUrl;
74
+ }
75
+ get name() {
76
+ return this._name;
77
+ }
78
+ get isVisible() {
79
+ return this._isVisible;
80
+ }
81
+ minMax(columnindex) {
82
+ if (!this._sources.length)
83
+ return { min: 0, max: 0 };
84
+ let min = this._sources[0].details[columnindex];
85
+ if (isNaN(Number(min))) {
86
+ // console.warn(`${this.catalogueProps.tapMetadataList.metadataList[columnindex].name} doesn't contain only number values`)
87
+ console.warn(`${this._metadataManager.columns[columnindex].name} doesn't contain only number values`);
88
+ return { min: 0, max: 0 };
89
+ }
90
+ let max = min;
91
+ for (const source of this._sources) {
92
+ const v = source.details[columnindex];
93
+ if (isNaN(Number(v))) {
94
+ // console.warn(`${this.catalogueProps.tapMetadataList.metadataList[columnindex].name} doesn't contain number only values`)
95
+ console.warn(`${this._metadataManager.columns[columnindex].name} doesn't contain number only values`);
96
+ return { min: 0, max: 0 };
97
+ }
98
+ if (v < min)
99
+ min = v;
100
+ if (v > max)
101
+ max = v;
102
+ }
103
+ return {
104
+ min: Number(min),
105
+ max: Number(max)
106
+ };
107
+ }
108
+ get metadataManager() {
109
+ return this._metadataManager;
110
+ }
111
+ changeMetaRA(raColumnName) {
112
+ this._metadataManager.selectedRaColumn = raColumnName;
113
+ }
114
+ changeMetaDec(decColumnName) {
115
+ this._metadataManager.selectedDecColumn = decColumnName;
116
+ }
117
+ changeColor(color) {
118
+ this._shapeColor = color;
119
+ }
120
+ changeMetaShapeSize(metacolumnName) {
121
+ if (!this._webgl)
122
+ return;
123
+ if (metacolumnName == MetadataManager.STANDARD_SIZE) {
124
+ this._metadataManager.resetShapeColumn();
125
+ for (const source of this._sources) {
126
+ const size = CatalogueGL.STANDARD_SHAPE_SIZE;
127
+ source.shapeSize = size;
128
+ }
129
+ this._bufferInitialised = false;
130
+ // this.initBuffer(this._webgl);
131
+ return;
132
+ }
133
+ // const oldShapeSizeName = this.catalogueProps.shapeSizeColumn?.name
134
+ // this.catalogueProps.changeCatalogueMetaShapeSize(metacolumnName);
135
+ // const idx = this.catalogueProps.shapeSizeColumn?.index ?? this.catalogueProps.shapeSizeColumn?.index;
136
+ const oldShapeSizeName = this._metadataManager.selectedShapeColumn?.name;
137
+ this._metadataManager.selectedShapeColumn = metacolumnName;
138
+ const idx = this._metadataManager.selectedShapeColumn?.index ?? -1;
139
+ if (idx < 0) {
140
+ // if (oldShapeSizeName) this.catalogueProps.changeCatalogueMetaShapeSize(oldShapeSizeName);
141
+ if (oldShapeSizeName)
142
+ this._metadataManager.selectedShapeColumn = oldShapeSizeName;
143
+ return;
144
+ }
145
+ const minmax = this.minMax(idx);
146
+ if (minmax.min == minmax.max) {
147
+ console.warn(`${minmax} min and max are equals. No resizing will be applied.`);
148
+ return;
149
+ }
150
+ for (const source of this._sources) {
151
+ const raw = Number(source.getDetailByindex(idx));
152
+ const min = Number(minmax.min);
153
+ const max = Number(minmax.max);
154
+ const norm = (raw - min) / Math.max(1e-12, (max - min));
155
+ const size = norm * (20 - 8) + 8;
156
+ source.shapeSize = size;
157
+ }
158
+ this._bufferInitialised = false;
159
+ // this.initBuffer(this._webgl);
160
+ }
161
+ changeMetaShapeHue(metacolumnName) {
162
+ if (!this._webgl)
163
+ return;
164
+ if (metacolumnName == MetadataManager.STANDARD_HUE) {
165
+ this._metadataManager.resetHueColumn();
166
+ for (const source of this._sources) {
167
+ const hue = CatalogueGL.STANDARD_SHAPE_HUE;
168
+ source.brightnessFactor = hue;
169
+ }
170
+ this._bufferInitialised = false;
171
+ // this.initBuffer(this._webgl);
172
+ return;
173
+ }
174
+ const oldHueSizeName = this._metadataManager.selectedShapeColumn?.name;
175
+ this._metadataManager.selectedHueColumn = metacolumnName;
176
+ const idx = this._metadataManager.selectedHueColumn?.index ?? -1;
177
+ if (idx < 0) {
178
+ if (oldHueSizeName)
179
+ this._metadataManager.selectedHueColumn = oldHueSizeName;
180
+ return;
181
+ }
182
+ const minmax = this.minMax(idx);
183
+ if (minmax.min == minmax.max) {
184
+ console.warn(`${minmax} min and max are equals. No resizing will be applied.`);
185
+ return;
186
+ }
187
+ for (const source of this._sources) {
188
+ const raw = Number(source.getDetailByindex(idx));
189
+ const min = Number(minmax.min);
190
+ const max = Number(minmax.max);
191
+ const norm = (raw - min) / Math.max(1e-12, (max - min));
192
+ // map [0,1] -> [1,-1]
193
+ source.brightnessFactor = -(norm * 2 - 1);
194
+ }
195
+ this._bufferInitialised = false;
196
+ // this.initBuffer(this._webgl);
197
+ }
198
+ get sources() {
199
+ return this._sources;
200
+ }
201
+ addSource(source) {
202
+ this._sources.push(source);
203
+ }
204
+ /**
205
+ * @param in_data Rows of TAP results
206
+ * @param columnsmeta TapMetadataList (unused here because `CatalogueProps` already holds indices)
207
+ */
208
+ addSources(in_data, columnsmeta) {
209
+ this._ready = false;
210
+ this._sources = [];
211
+ this._metadataManager = new MetadataManager(columnsmeta);
212
+ // const raDataIndex = (this.catalogueProps.raColumn as any).index ?? (this.catalogueProps.raColumn as any)._index;
213
+ // const decDataIndex = (this.catalogueProps.decColumn as any).index ?? (this.catalogueProps.decColumn as any)._index;
214
+ const raDataIndex = this._metadataManager.selectedRaColumn?.index ?? -1;
215
+ const decDataIndex = this._metadataManager.selectedDecColumn?.index ?? -1;
216
+ if (raDataIndex < 0 || decDataIndex < 0)
217
+ throw new Error(`(ra, dec) idx not defined (${raDataIndex}, ${decDataIndex}) `);
218
+ for (let j = 0; j < in_data.length; j++) {
219
+ const point = new Point({
220
+ raDeg: in_data[j][raDataIndex],
221
+ decDeg: in_data[j][decDataIndex]
222
+ }, CoordsType.ASTRO);
223
+ const source = new Source(point, in_data[j]);
224
+ // Ensure optional fields exist
225
+ source.shapeSize = source.shapeSize ?? CatalogueGL.STANDARD_SHAPE_SIZE;
226
+ source.brightnessFactor = 3;
227
+ this.addSource(source);
228
+ // if (this.catalogueProps.shapeHueColumn?.name) {
229
+ if (this._metadataManager.selectedHueColumn?.name) {
230
+ // this.changeCatalogueMetaShapeHue(this.catalogueProps.shapeHueColumn.name)
231
+ this.changeMetaShapeHue(this._metadataManager.selectedHueColumn.name);
232
+ }
233
+ // if (this.catalogueProps.shapeSizeColumn?.name) {
234
+ if (this._metadataManager.selectedShapeColumn?.name) {
235
+ // this.changeCatalogueMetaShapeSize(this.shapeSizeColumn.name)
236
+ this.changeMetaShapeSize(this._metadataManager.selectedShapeColumn.name);
237
+ }
238
+ }
239
+ // this.initBuffer();
240
+ this._ready = true;
241
+ this._bufferInitialised = false;
242
+ }
243
+ clearSources() {
244
+ this._sources = [];
245
+ this.hoveredIndexes = [];
246
+ this._healpixDensityMap.clear();
247
+ this.vertexCataloguePosition = new Float32Array(0);
248
+ }
249
+ sourceMatches(left, right) {
250
+ if (left === right)
251
+ return true;
252
+ const leftPoint = left.point;
253
+ const rightPoint = right.point;
254
+ if (leftPoint.raDeg !== rightPoint.raDeg ||
255
+ leftPoint.decDeg !== rightPoint.decDeg) {
256
+ return false;
257
+ }
258
+ if (left.details.length !== right.details.length) {
259
+ return false;
260
+ }
261
+ for (let i = 0; i < left.details.length; i++) {
262
+ if (!Object.is(left.details[i], right.details[i])) {
263
+ return false;
264
+ }
265
+ }
266
+ return true;
267
+ }
268
+ findSourceIndex(source) {
269
+ const sourceIndex = this._sources.indexOf(source);
270
+ if (sourceIndex >= 0) {
271
+ return sourceIndex;
272
+ }
273
+ return this._sources.findIndex((candidate) => this.sourceMatches(candidate, source));
274
+ }
275
+ extHighlightSource(source, highlighted) {
276
+ const sIdx = this.findSourceIndex(source);
277
+ if (sIdx < 0)
278
+ return;
279
+ const base = sIdx * CatalogueGL.ELEM_SIZE;
280
+ if (highlighted) {
281
+ if (!this.hoveredIndexes.includes(sIdx)) {
282
+ this.hoveredIndexes.push(sIdx);
283
+ }
284
+ }
285
+ else {
286
+ if (base + 4 >= this.vertexCataloguePosition.length)
287
+ return;
288
+ const i = this.hoveredIndexes.indexOf(sIdx);
289
+ if (i >= 0) {
290
+ this.hoveredIndexes.splice(i, 1);
291
+ this.vertexCataloguePosition[base + 3] = 0.0; // not hovered
292
+ this.vertexCataloguePosition[base + 4] = this._sources[sIdx]?.shapeSize ?? CatalogueGL.STANDARD_SHAPE_SIZE;
293
+ }
294
+ }
295
+ }
296
+ extAddSources2Selected(source) {
297
+ if (!this._bufferInitialised) {
298
+ this.initBuffer();
299
+ }
300
+ const sIdx = this.findSourceIndex(source);
301
+ if (sIdx < 0)
302
+ return;
303
+ const base = sIdx * CatalogueGL.ELEM_SIZE;
304
+ if (!this.selectedIndexes.includes(sIdx)) {
305
+ this.selectedIndexes.push(sIdx);
306
+ // this.vertexCataloguePosition[base + 3] = 2.0; // selected
307
+ // this.vertexCataloguePosition[base + 4] = this._sources[sIdx]?.shapeSize ?? CatalogueGL.STANDARD_SHAPE_SIZE;
308
+ }
309
+ else {
310
+ if (base + 4 >= this.vertexCataloguePosition.length)
311
+ return;
312
+ const i = this.selectedIndexes.indexOf(sIdx);
313
+ if (i >= 0) {
314
+ this.selectedIndexes.splice(i, 1);
315
+ this.vertexCataloguePosition[base + 3] = 0.0; // not selected
316
+ this.vertexCataloguePosition[base + 4] = this._sources[sIdx]?.shapeSize ?? CatalogueGL.STANDARD_SHAPE_SIZE;
317
+ }
318
+ }
319
+ }
320
+ initBuffer() {
321
+ // this._webgl = webgl
322
+ this.vertexCataloguePositionBuffer = this._webgl.createBuffer();
323
+ this.vertexhoveredCataloguePositionBuffer = this._webgl.createBuffer();
324
+ this._webgl.bindBuffer(this._webgl.ARRAY_BUFFER, this.vertexCataloguePositionBuffer);
325
+ const nSources = this._sources.length;
326
+ this.vertexCataloguePosition = new Float32Array(nSources * CatalogueGL.ELEM_SIZE);
327
+ let positionIndex = 0;
328
+ for (let j = 0; j < nSources; j++) {
329
+ const currSource = this._sources[j];
330
+ const currPix = currSource.healpixPixel;
331
+ // density map
332
+ const bucket = this._healpixDensityMap.get(currPix);
333
+ if (bucket) {
334
+ if (!bucket.includes(j))
335
+ bucket.push(j);
336
+ }
337
+ else {
338
+ this._healpixDensityMap.set(currPix, [j]);
339
+ }
340
+ // position
341
+ this.vertexCataloguePosition[positionIndex + 0] = currSource.point.x;
342
+ this.vertexCataloguePosition[positionIndex + 1] = currSource.point.y;
343
+ this.vertexCataloguePosition[positionIndex + 2] = currSource.point.z;
344
+ // hovered flag
345
+ this.vertexCataloguePosition[positionIndex + 3] = 0.0;
346
+ // size
347
+ this.vertexCataloguePosition[positionIndex + 4] = currSource.shapeSize ?? CatalogueGL.STANDARD_SHAPE_SIZE;
348
+ // brightness
349
+ this.vertexCataloguePosition[positionIndex + 5] = currSource.brightnessFactor ?? 0.0;
350
+ positionIndex += CatalogueGL.ELEM_SIZE;
351
+ }
352
+ this._webgl.bufferData(this._webgl.ARRAY_BUFFER, this.vertexCataloguePosition, this._webgl.STATIC_DRAW);
353
+ this._bufferInitialised = true;
354
+ }
355
+ getSelectionRadius() {
356
+ const order = this._visibleTilesManager.getVisibleOrder();
357
+ switch (order) {
358
+ case 0:
359
+ case 1:
360
+ case 2:
361
+ // return 0.005;
362
+ return 0.01;
363
+ case 3:
364
+ // return 0.001;
365
+ case 4:
366
+ // return 0.0009;
367
+ case 5:
368
+ // return 0.0005;
369
+ return 0.005;
370
+ case 6:
371
+ // return 0.0001;
372
+ case 7:
373
+ // return 0.00009;
374
+ case 8:
375
+ // return 0.00005;
376
+ return 0.001;
377
+ case 9:
378
+ return 0.0005;
379
+ default:
380
+ return 0.0001;
381
+ }
382
+ }
383
+ checkClicking(in_mouseHelper) {
384
+ if (in_mouseHelper.x == null || in_mouseHelper.y == null || in_mouseHelper.z == null) {
385
+ console.log('CatalogueGL.checkClicking: missing mouse coords');
386
+ return [];
387
+ }
388
+ const clickedIndexes = [];
389
+ const mousePix = in_mouseHelper.computeNpix();
390
+ if (mousePix != null && this._healpixDensityMap.has(mousePix)) {
391
+ const candidates = this._healpixDensityMap.get(mousePix);
392
+ const selR = this.getSelectionRadius();
393
+ for (let i = 0; i < candidates.length; i++) {
394
+ const sourceIdx = candidates[i];
395
+ const source = this._sources[sourceIdx];
396
+ if (!source)
397
+ continue;
398
+ const dx = source.point.x - in_mouseHelper.x;
399
+ const dy = source.point.y - in_mouseHelper.y;
400
+ const dz = source.point.z - in_mouseHelper.z;
401
+ const dist = Math.sqrt(dx * dx + dy * dy + dz * dz);
402
+ if (dist <= selR) {
403
+ clickedIndexes.push(sourceIdx);
404
+ }
405
+ }
406
+ }
407
+ return clickedIndexes;
408
+ }
409
+ // private setSelectedIndexes(nextSelected: number[]) {
410
+ // const deduped = Array.from(new Set(nextSelected))
411
+ // .filter((idx) => idx >= 0 && idx < this._sources.length);
412
+ // if (this.vertexCataloguePosition.length) {
413
+ // for (const prevIdx of this.selectedIndexes) {
414
+ // if (deduped.includes(prevIdx)) continue;
415
+ // const base = prevIdx * CatalogueGL.ELEM_SIZE;
416
+ // if (base + 4 >= this.vertexCataloguePosition.length) continue;
417
+ // if (!this.hoveredIndexes.includes(prevIdx) && !this.extHoveredIndexes.includes(prevIdx)) {
418
+ // this.vertexCataloguePosition[base + 3] = 0.0;
419
+ // }
420
+ // this.vertexCataloguePosition[base + 4] = this._sources[prevIdx]?.shapeSize ?? CatalogueGL.STANDARD_SHAPE_SIZE;
421
+ // }
422
+ // }
423
+ // this.selectedIndexes = deduped;
424
+ // }
425
+ setSelectedIndexes(selectedIndex) {
426
+ selectedIndex.forEach(idx => {
427
+ if (idx < 0 || idx >= this._sources.length)
428
+ return;
429
+ const base = idx * CatalogueGL.ELEM_SIZE;
430
+ if (base + 4 >= this.vertexCataloguePosition.length)
431
+ return;
432
+ if (this.selectedIndexes.includes(idx)) {
433
+ this.selectedIndexes.splice(this.selectedIndexes.indexOf(idx), 1);
434
+ this.vertexCataloguePosition[base + 3] = 0.0; // not selected
435
+ this.vertexCataloguePosition[base + 4] = this._sources[idx]?.shapeSize ?? CatalogueGL.STANDARD_SHAPE_SIZE;
436
+ }
437
+ else {
438
+ this.selectedIndexes.push(idx);
439
+ this.vertexCataloguePosition[base + 3] = 2.0; // selected
440
+ this.vertexCataloguePosition[base + 4] = this._sources[idx]?.shapeSize ?? CatalogueGL.STANDARD_SHAPE_SIZE;
441
+ }
442
+ });
443
+ }
444
+ /**
445
+ * Run click-picking and update selection with the nearest candidate in current pixel.
446
+ * Returns the selected source or null if no source was hit.
447
+ */
448
+ getSourcesFromPointer(in_mouseHelper) {
449
+ const pickedIndexes = this.checkClicking(in_mouseHelper);
450
+ if (!pickedIndexes.length) {
451
+ return {
452
+ sources: [],
453
+ pickedIndexes: [],
454
+ };
455
+ }
456
+ const sources = [];
457
+ pickedIndexes.forEach(idx => {
458
+ const source = this._sources[idx];
459
+ if (source)
460
+ sources.push(source);
461
+ });
462
+ return sources.length ? { sources, pickedIndexes } : null;
463
+ }
464
+ /**
465
+ * Run click-picking and update selection with the nearest candidate in current pixel.
466
+ * Returns the selected source or null if no source was hit.
467
+ */
468
+ selectPrimarySourceFromClick(in_mouseHelper) {
469
+ const picked = this.getSourcesFromPointer(in_mouseHelper);
470
+ const clickedIndexes = picked?.pickedIndexes ?? [];
471
+ // if (!clickedIndexes.length) {
472
+ // this.setSelectedIndexes([]);
473
+ // return null;
474
+ // }
475
+ // const selectedIdx = clickedIndexes[0];
476
+ // this.setSelectedIndexes([selectedIdx]);
477
+ // return this._sources[selectedIdx] ?? null;
478
+ this.setSelectedIndexes(clickedIndexes);
479
+ if (!clickedIndexes.length) {
480
+ return {
481
+ sources: [],
482
+ selectionState: [],
483
+ };
484
+ }
485
+ const selectionState = [];
486
+ const selectedSources = [];
487
+ clickedIndexes.forEach(idx => {
488
+ const source = this._sources[idx];
489
+ if (!source)
490
+ return;
491
+ const selected = this.selectedIndexes.includes(idx);
492
+ selectionState.push({ source, selected });
493
+ selectedSources.push(source);
494
+ });
495
+ return selectedSources.length
496
+ ? { sources: selectedSources, selectionState }
497
+ : null;
498
+ }
499
+ getPrimaryHoveredSource() {
500
+ if (!this.hoveredIndexes.length)
501
+ return null;
502
+ const idx = this.hoveredIndexes[0];
503
+ return this._sources[idx] ?? null;
504
+ }
505
+ checkHovering(in_mouseHelper) {
506
+ if (in_mouseHelper.x == null || in_mouseHelper.y == null || in_mouseHelper.z == null) {
507
+ console.log('CatalogueGL.checkHovering: missing mouse coords');
508
+ return [];
509
+ }
510
+ const hoveredIndexes = [];
511
+ const mousePix = in_mouseHelper.computeNpix();
512
+ if (mousePix != null && this._healpixDensityMap.has(mousePix)) {
513
+ const candidates = this._healpixDensityMap.get(mousePix);
514
+ const selR = this.getSelectionRadius();
515
+ for (let i = 0; i < candidates.length; i++) {
516
+ const sourceIdx = candidates[i];
517
+ const source = this._sources[sourceIdx];
518
+ if (!source)
519
+ continue;
520
+ const dx = source.point.x - in_mouseHelper.x;
521
+ const dy = source.point.y - in_mouseHelper.y;
522
+ const dz = source.point.z - in_mouseHelper.z;
523
+ const dist = Math.sqrt(dx * dx + dy * dy + dz * dz);
524
+ if (dist <= selR) {
525
+ hoveredIndexes.push(sourceIdx);
526
+ }
527
+ }
528
+ }
529
+ return hoveredIndexes;
530
+ }
531
+ /**
532
+ * @param in_mMatrix Model matrix the current catalogue is associated to (e.g. HiPS matrix)
533
+ */
534
+ draw(in_mMatrix, in_mouseHelper, vMatrix, pMatrix) {
535
+ if (!this.isVisible)
536
+ return;
537
+ if (!this._ready)
538
+ return;
539
+ if (!vMatrix)
540
+ return;
541
+ if (!this._bufferInitialised)
542
+ this.initBuffer();
543
+ if (!this._webgl)
544
+ return;
545
+ this._catalogueShaderProgram.enableShaders(pMatrix, in_mMatrix, vMatrix);
546
+ this._webgl.bindBuffer(this._webgl.ARRAY_BUFFER, this.vertexCataloguePositionBuffer);
547
+ // positions
548
+ this._webgl.vertexAttribPointer(this._catalogueShaderProgram.locations.position, 3, this._webgl.FLOAT, false, CatalogueGL.BYTES_X_ELEM * CatalogueGL.ELEM_SIZE, 0);
549
+ this._webgl.enableVertexAttribArray(this._catalogueShaderProgram.locations.position);
550
+ // hovered flag
551
+ this._webgl.vertexAttribPointer(this._catalogueShaderProgram.locations.hovered, 1, this._webgl.FLOAT, false, CatalogueGL.BYTES_X_ELEM * CatalogueGL.ELEM_SIZE, CatalogueGL.BYTES_X_ELEM * 3);
552
+ this._webgl.enableVertexAttribArray(this._catalogueShaderProgram.locations.hovered);
553
+ // point size
554
+ this._webgl.vertexAttribPointer(this._catalogueShaderProgram.locations.pointSize, 1, this._webgl.FLOAT, false, CatalogueGL.BYTES_X_ELEM * CatalogueGL.ELEM_SIZE, CatalogueGL.BYTES_X_ELEM * 4);
555
+ this._webgl.enableVertexAttribArray(this._catalogueShaderProgram.locations.pointSize);
556
+ // brightness
557
+ this._webgl.vertexAttribPointer(this._catalogueShaderProgram.locations.brightness, 1, this._webgl.FLOAT, false, CatalogueGL.BYTES_X_ELEM * CatalogueGL.ELEM_SIZE, CatalogueGL.BYTES_X_ELEM * 5);
558
+ this._webgl.enableVertexAttribArray(this._catalogueShaderProgram.locations.brightness);
559
+ // color
560
+ const rgb = colorHex2RGB(this._shapeColor);
561
+ if (this._catalogueShaderProgram.locations.color) {
562
+ this._webgl.uniform4f(this._catalogueShaderProgram.locations.color, rgb[0], rgb[1], rgb[2], 1.0);
563
+ }
564
+ // selected flags
565
+ for (let s = 0; s < this.selectedIndexes.length; s++) {
566
+ const idx = this.selectedIndexes[s];
567
+ const base = idx * CatalogueGL.ELEM_SIZE;
568
+ this.vertexCataloguePosition[base + 3] = 2.0; // selected
569
+ this.vertexCataloguePosition[base + 4] = this._sources[idx].shapeSize; // size
570
+ }
571
+ // clear old hovered
572
+ for (let k = 0; k < this.hoveredIndexes.length; k++) {
573
+ const base = this.hoveredIndexes[k] * CatalogueGL.ELEM_SIZE;
574
+ // if (this.vertexCataloguePosition[base + 3] == 2.0) continue; // selected, skip hover
575
+ this.vertexCataloguePosition[base + 3] = 0.0; // not hovered
576
+ this.vertexCataloguePosition[base + 4] = this._sources[this.hoveredIndexes[k]].shapeSize; // size
577
+ }
578
+ // Hover logic on mouse move
579
+ if (in_mouseHelper != null && in_mouseHelper.xyz !== this._oldMouseCoords) {
580
+ // // clear old hovered
581
+ // for (let k = 0; k < this.hoveredIndexes.length; k++) {
582
+ // const base = this.hoveredIndexes[k] * CatalogueGL.ELEM_SIZE;
583
+ // if (this.vertexCataloguePosition[base + 3] == 2.0) continue; // selected, skip hover
584
+ // this.vertexCataloguePosition[base + 3] = 0.0; // not hovered
585
+ // this.vertexCataloguePosition[base + 4] = this._sources[this.hoveredIndexes[k]].shapeSize; // size
586
+ // }
587
+ this.hoveredIndexes = this.checkHovering(in_mouseHelper);
588
+ // // new hovered
589
+ // for (let i = 0; i < this.hoveredIndexes.length; i++) {
590
+ // const idx = this.hoveredIndexes[i];
591
+ // const base = idx * CatalogueGL.ELEM_SIZE;
592
+ // if (this.vertexCataloguePosition[base + 3] == 2.0) continue; // selected, skip hover
593
+ // this.vertexCataloguePosition[base + 3] = 1.0; // hovered
594
+ // this.vertexCataloguePosition[base + 4] = this._sources[idx].shapeSize; // size
595
+ // }
596
+ }
597
+ // new hovered
598
+ for (let i = 0; i < this.hoveredIndexes.length; i++) {
599
+ const idx = this.hoveredIndexes[i];
600
+ const base = idx * CatalogueGL.ELEM_SIZE;
601
+ // if (this.vertexCataloguePosition[base + 3] == 2.0) continue; // selected, skip hover
602
+ this.vertexCataloguePosition[base + 3] = 1.0; // hovered
603
+ this.vertexCataloguePosition[base + 4] = this._sources[idx].shapeSize; // size
604
+ }
605
+ // upload buffer
606
+ this._webgl.bufferData(this._webgl.ARRAY_BUFFER, this.vertexCataloguePosition, this._webgl.STATIC_DRAW);
607
+ // draw
608
+ const numItems = this.vertexCataloguePosition.length / CatalogueGL.ELEM_SIZE;
609
+ this._webgl.drawArrays(this._webgl.POINTS, 0, numItems);
610
+ this._oldMouseCoords = in_mouseHelper.xyz;
611
+ }
612
+ }
613
+ // export default CatalogueGL;
614
+ //# sourceMappingURL=CatalogueGL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CatalogueGL.js","sourceRoot":"","sources":["../../../src/model/catalogues/CatalogueGL.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CatalogueProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CatalogueProps.d.ts","sourceRoot":"","sources":["../../../src/model/catalogues/CatalogueProps.ts"],"names":[],"mappings":""}