astro-viewer 3.6.0 → 3.7.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 (67) hide show
  1. package/dist/64.astroviewer.cjs +37 -0
  2. package/dist/64.astroviewer.cjs.map +1 -0
  3. package/dist/64.astroviewer.js +41 -0
  4. package/dist/64.astroviewer.js.map +1 -0
  5. package/dist/64.astroviewer.min.js +2 -0
  6. package/dist/64.astroviewer.min.js.map +1 -0
  7. package/dist/911.astroviewer.cjs +4047 -0
  8. package/dist/911.astroviewer.cjs.map +1 -0
  9. package/dist/911.astroviewer.js +735 -0
  10. package/dist/911.astroviewer.js.map +1 -0
  11. package/dist/911.astroviewer.min.js +2 -0
  12. package/dist/911.astroviewer.min.js.map +1 -0
  13. package/dist/astroviewer.cjs +2704 -510
  14. package/dist/astroviewer.cjs.map +1 -1
  15. package/dist/astroviewer.js +2861 -512
  16. package/dist/astroviewer.js.map +1 -1
  17. package/dist/astroviewer.min.js +1 -1
  18. package/dist/astroviewer.min.js.map +1 -1
  19. package/lib-esm/AstroSphere.d.ts +1 -1
  20. package/lib-esm/AstroSphere.d.ts.map +1 -1
  21. package/lib-esm/AstroSphere.js +15 -25
  22. package/lib-esm/AstroSphere.js.map +1 -1
  23. package/lib-esm/AstroViewer.d.ts +25 -23
  24. package/lib-esm/AstroViewer.d.ts.map +1 -1
  25. package/lib-esm/AstroViewer.js +97 -67
  26. package/lib-esm/AstroViewer.js.map +1 -1
  27. package/lib-esm/model/hips/AllSky.d.ts +7 -3
  28. package/lib-esm/model/hips/AllSky.d.ts.map +1 -1
  29. package/lib-esm/model/hips/AllSky.js +93 -28
  30. package/lib-esm/model/hips/AllSky.js.map +1 -1
  31. package/lib-esm/model/hips/AncestorTile.d.ts +7 -4
  32. package/lib-esm/model/hips/AncestorTile.d.ts.map +1 -1
  33. package/lib-esm/model/hips/AncestorTile.js +91 -52
  34. package/lib-esm/model/hips/AncestorTile.js.map +1 -1
  35. package/lib-esm/model/hips/FitsTileLoader.d.ts +9 -0
  36. package/lib-esm/model/hips/FitsTileLoader.d.ts.map +1 -0
  37. package/lib-esm/model/hips/FitsTileLoader.js +65 -0
  38. package/lib-esm/model/hips/FitsTileLoader.js.map +1 -0
  39. package/lib-esm/model/hips/HiPS.d.ts +9 -5
  40. package/lib-esm/model/hips/HiPS.d.ts.map +1 -1
  41. package/lib-esm/model/hips/HiPS.js +120 -72
  42. package/lib-esm/model/hips/HiPS.js.map +1 -1
  43. package/lib-esm/model/hips/HiPSCoverage.d.ts +15 -0
  44. package/lib-esm/model/hips/HiPSCoverage.d.ts.map +1 -0
  45. package/lib-esm/model/hips/HiPSCoverage.js +148 -0
  46. package/lib-esm/model/hips/HiPSCoverage.js.map +1 -0
  47. package/lib-esm/model/hips/Tile.d.ts +8 -4
  48. package/lib-esm/model/hips/Tile.d.ts.map +1 -1
  49. package/lib-esm/model/hips/Tile.js +111 -55
  50. package/lib-esm/model/hips/Tile.js.map +1 -1
  51. package/lib-esm/model/hips/TileBuffer.d.ts +13 -4
  52. package/lib-esm/model/hips/TileBuffer.d.ts.map +1 -1
  53. package/lib-esm/model/hips/TileBuffer.js +46 -11
  54. package/lib-esm/model/hips/TileBuffer.js.map +1 -1
  55. package/lib-esm/model/hips/VisibleTilesManager.d.ts +5 -5
  56. package/lib-esm/model/hips/VisibleTilesManager.d.ts.map +1 -1
  57. package/lib-esm/model/hips/VisibleTilesManager.js +6 -20
  58. package/lib-esm/model/hips/VisibleTilesManager.js.map +1 -1
  59. package/lib-esm/shader/HiPSShaderProgram.d.ts +9 -2
  60. package/lib-esm/shader/HiPSShaderProgram.d.ts.map +1 -1
  61. package/lib-esm/shader/HiPSShaderProgram.js +91 -53
  62. package/lib-esm/shader/HiPSShaderProgram.js.map +1 -1
  63. package/lib-esm/shader/ShaderManager.d.ts +2 -0
  64. package/lib-esm/shader/ShaderManager.d.ts.map +1 -1
  65. package/lib-esm/shader/ShaderManager.js +193 -94
  66. package/lib-esm/shader/ShaderManager.js.map +1 -1
  67. package/package.json +3 -3
@@ -8,15 +8,15 @@
8
8
  *
9
9
  * See LICENSE.md, LICENSE-AGPL.md, and LICENSE-COMMERCIAL.md for details.
10
10
  */
11
- 'use strict';
11
+ "use strict";
12
12
  /**
13
13
  * @author Fabrizio Giordano (Fab77)
14
14
  */
15
- import { AbstractSkyEntity } from '../AbstractSkyEntity.js';
16
- import { fovHelper } from './FoVHelper.js';
17
- import ColorMaps from '../ColorMaps.js';
18
- import AncestorTile from './AncestorTile.js';
19
- import AllSky from './AllSky.js';
15
+ import { AbstractSkyEntity } from "../AbstractSkyEntity.js";
16
+ import { fovHelper } from "./FoVHelper.js";
17
+ import ColorMaps from "../ColorMaps.js";
18
+ import AncestorTile from "./AncestorTile.js";
19
+ import AllSky from "./AllSky.js";
20
20
  export class HiPS extends AbstractSkyEntity {
21
21
  _ancestorTiles;
22
22
  _allSkyTile;
@@ -29,30 +29,47 @@ export class HiPS extends AbstractSkyEntity {
29
29
  _allSky = true;
30
30
  samplerIdx = 0;
31
31
  colorMapIdx = 0;
32
- colorMap = ColorMaps['native'];
32
+ colorMap = ColorMaps["native"];
33
33
  _healpixGrid;
34
34
  // exposed read-only helpers
35
- get maxOrder() { return this._maxorder; }
36
- get minOrder() { return this._minorder; }
37
- get baseURL() { return this._baseurl; }
38
- get format() { return this._format; }
39
- get propertiesRawText() { return this._descriptor.propertiesRawText; }
40
- get properties() { return this._descriptor.properties; }
35
+ get maxOrder() {
36
+ return this._maxorder;
37
+ }
38
+ get minOrder() {
39
+ return this._minorder;
40
+ }
41
+ get baseURL() {
42
+ return this._baseurl;
43
+ }
44
+ get format() {
45
+ return this._format;
46
+ }
47
+ get propertiesRawText() {
48
+ return this._descriptor.propertiesRawText;
49
+ }
50
+ get properties() {
51
+ return this._descriptor.properties;
52
+ }
41
53
  constructor(radius, position, xrad, yrad, descriptor, webgl, healpixGrid) {
42
54
  super(radius, position, xrad, yrad, descriptor.surveyName, webgl, descriptor.isGalactic);
43
55
  this._descriptor = descriptor;
44
56
  this.initGL(webgl);
45
57
  this._healpixGrid = healpixGrid;
46
- this._healpixGrid.visibleTilesManager.tileBuffer.addHiPS(this);
47
- // DEBUG logs kept from JS (optional)
48
- // eslint-disable-next-line no-console
49
- console.log('HiPS frame ' + descriptor.hipsFrame);
50
- // eslint-disable-next-line no-console
51
- console.log('HiPS minOrder ' + descriptor.minOrder);
52
- this._format = descriptor.imgFormats[0];
58
+ this._format = this.selectDefaultFormat(descriptor.imgFormats);
53
59
  this._baseurl = descriptor.url;
54
60
  this._maxorder = descriptor.maxOrder;
55
61
  this._minorder = descriptor.minOrder;
62
+ if (this.isGalacticHips) {
63
+ this._healpixGrid.visibleTilesManager.tileBuffer.addGalHiPS(this);
64
+ }
65
+ else {
66
+ this._healpixGrid.visibleTilesManager.tileBuffer.addHiPS(this);
67
+ }
68
+ // DEBUG logs kept from JS (optional)
69
+ // eslint-disable-next-line no-console
70
+ console.log("HiPS frame " + descriptor.hipsFrame);
71
+ // eslint-disable-next-line no-console
72
+ console.log("HiPS minOrder " + descriptor.minOrder);
56
73
  this.initShaders();
57
74
  // pick initial order from a starting FoV
58
75
  const fov = 180;
@@ -62,39 +79,52 @@ export class HiPS extends AbstractSkyEntity {
62
79
  this._allSkyTile = null;
63
80
  // auto-detect all-sky: original code forces true
64
81
  this._allSky = true;
82
+ this.initBaseTiles();
83
+ }
84
+ initBaseTiles() {
85
+ this._ancestorTiles = [];
86
+ this._allSkyTile = null;
65
87
  if (this._allSky) {
66
88
  this._allSkyTile = new AllSky(this, this._webgl, this._healpixGrid.visibleTilesManager.tileBuffer, super.hipsShaderProgram);
89
+ return;
67
90
  }
68
- else {
69
- for (let t = 0; t < 12; t++) {
70
- this._ancestorTiles.push(new AncestorTile(t, 0, this, this._healpixGrid.visibleTilesManager.tileBuffer, super.hipsShaderProgram, this._webgl));
71
- }
91
+ for (let t = 0; t < 12; t++) {
92
+ this._ancestorTiles.push(new AncestorTile(t, 0, this, this._healpixGrid.visibleTilesManager.tileBuffer, super.hipsShaderProgram, this._webgl));
72
93
  }
73
94
  }
74
95
  getProperty(key) {
75
96
  return this._descriptor.getProperty(key);
76
97
  }
77
98
  changeFormat(format) {
78
- this._format = format;
79
- // original code referenced _tileBuffer; if you have one, wire it back.
80
- // Keeping calls no-op to avoid breaking at runtime if _tileBuffer is undefined.
81
- // (newVisibleTilesManager + TileBuffer drive the actual tile lifecycle)
82
- // @ts-ignore
83
- if (this._tileBuffer?.clearAll)
84
- this._tileBuffer.clearAll();
85
- // @ts-ignore
86
- if (this._tileBuffer)
87
- this._tileBuffer._format = this._format;
88
- const pixelByOrder = this.isGalacticHips
89
- ? this._healpixGrid.visibleTilesManager.galVisibleTilesByOrder
90
- : this._healpixGrid.visibleTilesManager.visibleTilesByOrder;
91
- // const pixelByOrder =
92
- // this.isGalacticHips
93
- // ? visibleTilesManager.galVisibleTilesByOrder
94
- // : visibleTilesManager.visibleTilesByOrder
95
- // @ts-ignore
96
- if (this._tileBuffer?.updateTiles)
97
- this._tileBuffer.updateTiles(pixelByOrder.pixels, pixelByOrder.order);
99
+ const normalizedFormat = format.toLowerCase();
100
+ if (!this._descriptor.imgFormats.includes(normalizedFormat)) {
101
+ throw new Error(`HiPS format "${format}" is not supported. ` +
102
+ `Available formats: ${this._descriptor.imgFormats.join(", ")}`);
103
+ }
104
+ if (normalizedFormat === this._format.toLowerCase()) {
105
+ return;
106
+ }
107
+ const tileBuffer = this._healpixGrid.visibleTilesManager.tileBuffer;
108
+ /*
109
+ * Remove Tile instances created using the previous format.
110
+ *
111
+ * TileBuffer invalidates by HiPS identity/base URL rather than by the
112
+ * current format, so both active and cached resources are discarded.
113
+ */
114
+ tileBuffer.invalidateHiPS(this);
115
+ /*
116
+ * Change format before recreating AllSky/AncestorTile because their
117
+ * constructors read hips.format.
118
+ */
119
+ this._format = normalizedFormat;
120
+ /*
121
+ * AllSky and AncestorTile also keep the format they were constructed
122
+ * with, so they must be recreated.
123
+ */
124
+ this.initBaseTiles();
125
+ }
126
+ get availableFormats() {
127
+ return this._descriptor.imgFormats;
98
128
  }
99
129
  /**
100
130
  * Shader colormap switcher
@@ -107,60 +137,60 @@ export class HiPS extends AbstractSkyEntity {
107
137
  * 6 -> cubehelix
108
138
  */
109
139
  changeColorMap(colorMap) {
110
- console.log('HiPS.changeColorMap -> shaderProgram', super.hipsShaderProgram.shaderProgram);
140
+ console.log("HiPS.changeColorMap -> shaderProgram", super.hipsShaderProgram.shaderProgram);
111
141
  this.colorMap = colorMap;
112
142
  switch (colorMap.name) {
113
- case 'grayscale':
143
+ case "grayscale":
114
144
  this.colorMapIdx = 1;
115
145
  // hipsShaderProgram.setGrayscaleShader()
116
- this.colorMap = ColorMaps['grayscale'];
146
+ this.colorMap = ColorMaps["grayscale"];
117
147
  super.hipsShaderProgram.setGrayscaleShader();
118
148
  break;
119
- case 'planck':
149
+ case "planck":
120
150
  this.colorMapIdx = 2;
121
- this.colorMap = ColorMaps['planck'];
151
+ this.colorMap = ColorMaps["planck"];
122
152
  // hipsShaderProgram.setColorMapShader()
123
153
  super.hipsShaderProgram.setColorMapShader();
124
154
  break;
125
- case 'cmb':
155
+ case "cmb":
126
156
  this.colorMapIdx = 3;
127
- this.colorMap = ColorMaps['cmb'];
157
+ this.colorMap = ColorMaps["cmb"];
128
158
  // hipsShaderProgram.setColorMapShader()
129
159
  super.hipsShaderProgram.setColorMapShader();
130
160
  break;
131
- case 'rainbow':
161
+ case "rainbow":
132
162
  this.colorMapIdx = 4;
133
- this.colorMap = ColorMaps['rainbow'];
163
+ this.colorMap = ColorMaps["rainbow"];
134
164
  // hipsShaderProgram.setColorMapShader()
135
165
  super.hipsShaderProgram.setColorMapShader();
136
166
  break;
137
- case 'eosb':
167
+ case "eosb":
138
168
  this.colorMapIdx = 5;
139
- this.colorMap = ColorMaps['eosb'];
169
+ this.colorMap = ColorMaps["eosb"];
140
170
  super.hipsShaderProgram.setColorMapShader();
141
171
  // hipsShaderProgram.setColorMapShader()
142
172
  break;
143
- case 'cubehelix':
173
+ case "cubehelix":
144
174
  this.colorMapIdx = 6;
145
- this.colorMap = ColorMaps['cubehelix'];
175
+ this.colorMap = ColorMaps["cubehelix"];
146
176
  super.hipsShaderProgram.setColorMapShader();
147
177
  // hipsShaderProgram.setColorMapShader()
148
178
  break;
149
- case 'hot':
179
+ case "hot":
150
180
  this.colorMapIdx = 7;
151
- this.colorMap = ColorMaps['hot'];
181
+ this.colorMap = ColorMaps["hot"];
152
182
  super.hipsShaderProgram.setColorMapShader();
153
183
  // hipsShaderProgram.setColorMapShader()
154
184
  break;
155
- case 'gray':
185
+ case "gray":
156
186
  this.colorMapIdx = 8;
157
- this.colorMap = ColorMaps['gray'];
187
+ this.colorMap = ColorMaps["gray"];
158
188
  super.hipsShaderProgram.setColorMapShader();
159
189
  // hipsShaderProgram.setColorMapShader()
160
190
  break;
161
- case 'native':
191
+ case "native":
162
192
  this.colorMapIdx = 0;
163
- this.colorMap = ColorMaps['native'];
193
+ this.colorMap = ColorMaps["native"];
164
194
  super.hipsShaderProgram.setNativeShader();
165
195
  break;
166
196
  default:
@@ -175,6 +205,30 @@ export class HiPS extends AbstractSkyEntity {
175
205
  // this.shaderProgram = super.hipsShaderProgram.shaderProgram
176
206
  // this.shaderProgram = hipsShaderProgram.shaderProgram
177
207
  }
208
+ // private selectDefaultFormat(formats: string[]): string {
209
+ // if (formats.includes("fits")) return "fits";
210
+ // if (formats.includes("png")) return "png";
211
+ // if (formats.includes("jpg")) return "jpg";
212
+ // if (formats.length > 0) {
213
+ // return formats[0];
214
+ // }
215
+ // throw new Error("HiPS descriptor does not define a tile format");
216
+ // }
217
+ selectDefaultFormat(formats) {
218
+ if (formats.includes("png"))
219
+ return "png";
220
+ if (formats.includes("jpg"))
221
+ return "jpg";
222
+ if (formats.includes("fits"))
223
+ return "fits";
224
+ if (formats.length > 0) {
225
+ return formats[0];
226
+ }
227
+ throw new Error("HiPS descriptor does not define a tile format");
228
+ }
229
+ get dataRange() {
230
+ return this._descriptor.dataRange;
231
+ }
178
232
  getCurrentHealpixOrder() {
179
233
  return this._visibleorder;
180
234
  }
@@ -184,7 +238,7 @@ export class HiPS extends AbstractSkyEntity {
184
238
  ? this._healpixGrid.visibleTilesManager.galVisibleTilesByOrder
185
239
  : this._healpixGrid.visibleTilesManager.visibleTilesByOrder;
186
240
  return {
187
- activeBaseLayer: 'hips',
241
+ activeBaseLayer: "hips",
188
242
  hipsName: this._descriptor.surveyName,
189
243
  hipsUrl: this._baseurl,
190
244
  isGalactic: this.isGalacticHips,
@@ -216,16 +270,10 @@ export class HiPS extends AbstractSkyEntity {
216
270
  super.hipsShaderProgram.setRuntimeColorMap(this.colorMap);
217
271
  if (this._allSky && this._allSkyTile) {
218
272
  if (this.isGalacticHips) {
219
- this._allSkyTile.draw(this._healpixGrid.visibleTilesManager.galVisibleTilesByOrder.order, this._healpixGrid.visibleTilesManager.galAncestorsMap,
220
- // visibleTilesManager.galVisibleTilesByOrder.order,
221
- // visibleTilesManager.galAncestorsMap,
222
- pMatrix, vMatrix, mMatrix, this.colorMapIdx);
273
+ this._allSkyTile.draw(this._healpixGrid.visibleTilesManager.galVisibleTilesByOrder.order, this._healpixGrid.visibleTilesManager.galAncestorsMap, pMatrix, vMatrix, mMatrix, this.colorMapIdx);
223
274
  }
224
275
  else {
225
- this._allSkyTile.draw(this._healpixGrid.visibleTilesManager.visibleTilesByOrder.order, this._healpixGrid.visibleTilesManager.ancestorsMap,
226
- // visibleTilesManager.visibleTilesByOrder.order,
227
- // visibleTilesManager.ancestorsMap,
228
- pMatrix, vMatrix, mMatrix, this.colorMapIdx);
276
+ this._allSkyTile.draw(this._healpixGrid.visibleTilesManager.visibleTilesByOrder.order, this._healpixGrid.visibleTilesManager.ancestorsMap, pMatrix, vMatrix, mMatrix, this.colorMapIdx);
229
277
  }
230
278
  return;
231
279
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HiPS.js","sourceRoot":"","sources":["../../../src/model/hips/HiPS.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,CAAA;AACZ;;GAEG;AAEH,OAAO,EAAC,iBAAiB,EAAqB,MAAM,yBAAyB,CAAA;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,SAAuB,MAAM,iBAAiB,CAAA;AACrD,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAC5C,OAAO,MAAM,MAAM,aAAa,CAAA;AAMhC,MAAM,OAAO,IAAK,SAAQ,iBAAiB;IAEjC,cAAc,CAAgB;IAC9B,WAAW,CAAe;IAC1B,WAAW,CAAgB;IAE3B,OAAO,CAAQ;IACf,QAAQ,CAAQ;IAChB,SAAS,CAAQ;IACjB,SAAS,CAAQ;IAEjB,aAAa,GAAG,CAAC,CAAA;IACjB,OAAO,GAAG,IAAI,CAAA;IAEf,UAAU,GAAG,CAAC,CAAA;IACd,WAAW,GAAG,CAAC,CAAA;IACf,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC7B,YAAY,CAAa;IAEjC,4BAA4B;IAC5B,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,SAAS,CAAA,CAAC,CAAC;IAChD,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,SAAS,CAAA,CAAC,CAAC;IAChD,IAAI,OAAO,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAA,CAAC,CAAC;IAC9C,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,OAAO,CAAA,CAAC,CAAC;IAC5C,IAAI,iBAAiB,KAAa,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAA,CAAC,CAAC;IAC7E,IAAI,UAAU,KAAkC,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAA,CAAC,CAAC;IAEpF,YACE,MAAc,EACd,QAAkC,EAClC,IAAY,EACZ,IAAY,EACZ,UAA0B,EAC1B,KAA6B,EAC7B,WAAwB;QAExB,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;QACxF,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;QAC7B,IAAI,CAAC,MAAM,CAAC,KAA+B,CAAC,CAAA;QAC5C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;QAE/B,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAE9D,qCAAqC;QACrC,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;QACjD,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QAEnD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACvC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAA;QACpC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAA;QAEpC,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,yCAAyC;QACzC,MAAM,GAAG,GAAG,GAAG,CAAA;QACf,IAAI,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAEpD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QAEvB,iDAAiD;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAC7H,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,UAAU,EAAE,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;YAChJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC1C,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,uEAAuE;QACvE,gFAAgF;QAChF,wEAAwE;QACxE,aAAa;QACb,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ;YAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAA;QAC3D,aAAa;QACb,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC7D,MAAM,YAAY,GAChB,IAAI,CAAC,cAAc;YACjB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,sBAAsB;YAC9D,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,mBAAmB,CAAA;QAC/D,uBAAuB;QACvB,wBAAwB;QACxB,mDAAmD;QACnD,gDAAgD;QAChD,aAAa;QACb,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW;YAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;IAC1G,CAAC;IAED;;;;;;;;;OASG;IACH,cAAc,CAAC,QAAkB;QAC/B,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,KAAK,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAE3F,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,WAAW;gBACd,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;gBACpB,yCAAyC;gBACzC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;gBACtC,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAA;gBAC5C,MAAK;YACP,KAAK,QAAQ;gBACX,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;gBACpB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;gBACnC,wCAAwC;gBACxC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAA;gBAC3C,MAAK;YACP,KAAK,KAAK;gBACR,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;gBACpB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;gBAChC,wCAAwC;gBACxC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAA;gBAC3C,MAAK;YACP,KAAK,SAAS;gBACZ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;gBACpB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;gBACpC,wCAAwC;gBACxC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAA;gBAC3C,MAAK;YACP,KAAK,MAAM;gBACT,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;gBACpB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;gBACjC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAA;gBAC3C,wCAAwC;gBACxC,MAAK;YACP,KAAK,WAAW;gBACd,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;gBACpB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;gBACtC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAA;gBAC3C,wCAAwC;gBACxC,MAAK;YACP,KAAK,KAAK;gBACR,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;gBACpB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;gBAChC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAA;gBAC3C,wCAAwC;gBACxC,MAAK;YACP,KAAK,MAAM;gBACT,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;gBACpB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;gBACjC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAA;gBAC3C,wCAAwC;gBACxC,MAAK;YACP,KAAK,QAAQ;gBACX,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;gBACpB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;gBACnC,KAAK,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAA;gBACzC,MAAK;YACP;gBACE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;gBACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;gBACxB,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAA;QAC/C,CAAC;IACH,CAAC;IAEO,WAAW;QACjB,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;QACvC,oCAAoC;QACpC,6DAA6D;QAC7D,uDAAuD;IACzD,CAAC;IAED,sBAAsB;QACpB,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAED,aAAa;QACX,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,UAAU,CAAA;QACnE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc;YACtC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,sBAAsB;YAC9D,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,mBAAmB,CAAA;QAE7D,OAAO;YACL,eAAe,EAAE,MAAM;YACvB,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU;YACrC,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,YAAY,EAAE,YAAY,CAAC,KAAK;YAChC,gBAAgB,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM;YAC5C,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,SAAS,EAAE,UAAU,CAAC,IAAI;YAC1B,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;SAC9C,CAAA;IACH,CAAC;IAEO,OAAO,CAAC,KAAyB;QACvC,4CAA4C;QAC5C,8EAA8E;QAC9E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAA;QAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;QACjE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IACjG,CAAC;IAED,IAAI,CAAC,KAAyB;QAE5B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,EAAkB,CAAA;QAC9D,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;QAC7B,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAEnB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAkB,CAAA;QACrD,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEzD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,KAAK,EAClE,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,eAAe;gBACrD,oDAAoD;gBACpD,uCAAuC;gBACvC,OAAuB,EACvB,OAAO,EACP,OAAO,EACP,IAAI,CAAC,WAAW,CACjB,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,KAAK,EAC/D,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,YAAY;gBAClD,iDAAiD;gBACjD,oCAAoC;gBACpC,OAAuB,EACvB,OAAO,EACP,OAAO,EACP,IAAI,CAAC,WAAW,CACjB,CAAA;YACH,CAAC;YACD,OAAM;QACR,CAAC;QAED,mBAAmB;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc;YAC/B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,KAAK;YACpE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,KAAK,CAAA;QAEnE,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc;YAC7B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,eAAe;YACvD,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,YAAY,CAAA;QAEtD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACvC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAuB,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QACxF,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"HiPS.js","sourceRoot":"","sources":["../../../src/model/hips/HiPS.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare class HiPSCoverage {
2
+ private _maxOrder;
3
+ private _intervals;
4
+ private _loaded;
5
+ get loaded(): boolean;
6
+ get maxOrder(): number;
7
+ get intervalCount(): number;
8
+ clear(): void;
9
+ load(baseUrl: string): Promise<void>;
10
+ intersectsTile(order: number, pixel: number): boolean;
11
+ private intersectsInterval;
12
+ private static decodeUniq;
13
+ private static mergeIntervals;
14
+ }
15
+ //# sourceMappingURL=HiPSCoverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiPSCoverage.d.ts","sourceRoot":"","sources":["../../../src/model/hips/HiPSCoverage.ts"],"names":[],"mappings":"AAkBA,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,OAAO,CAAS;IAExB,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,KAAK,IAAI,IAAI;IAMP,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmE1C,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAqCrD,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,MAAM,CAAC,UAAU;IAkBzB,OAAO,CAAC,MAAM,CAAC,cAAc;CAwB9B"}
@@ -0,0 +1,148 @@
1
+ /*
2
+ * AstroViewer
3
+ * Copyright (C) Fabrizio Giordano
4
+ * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-AstroViewer-Commercial
5
+ *
6
+ * AstroViewer is dual-licensed under the GNU Affero General Public License
7
+ * version 3 and a separate commercial license.
8
+ *
9
+ * See LICENSE.md, LICENSE-AGPL.md, and LICENSE-COMMERCIAL.md for details.
10
+ */
11
+ import { BinaryTableHDU, FITSParser } from "jsfitsio";
12
+ export class HiPSCoverage {
13
+ _maxOrder = 0;
14
+ _intervals = [];
15
+ _loaded = false;
16
+ get loaded() {
17
+ return this._loaded;
18
+ }
19
+ get maxOrder() {
20
+ return this._maxOrder;
21
+ }
22
+ get intervalCount() {
23
+ return this._intervals.length;
24
+ }
25
+ clear() {
26
+ this._maxOrder = 0;
27
+ this._intervals = [];
28
+ this._loaded = false;
29
+ }
30
+ async load(baseUrl) {
31
+ this.clear();
32
+ const normalizedBaseUrl = baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
33
+ const fits = await FITSParser.loadFITSFile(`${normalizedBaseUrl}Moc.fits`);
34
+ if (!fits) {
35
+ throw new Error("Unable to load HiPS Moc.fits");
36
+ }
37
+ const mocHDU = fits.hdus.find((hdu) => hdu instanceof BinaryTableHDU);
38
+ if (!(mocHDU instanceof BinaryTableHDU)) {
39
+ throw new Error("HiPS Moc.fits does not contain a BINTABLE HDU.");
40
+ }
41
+ const mocOrderItem = mocHDU.header.findById("MOCORDER");
42
+ if (!mocOrderItem) {
43
+ throw new Error("HiPS Moc.fits does not define MOCORDER.");
44
+ }
45
+ const maxOrder = Number(mocOrderItem.value);
46
+ if (!Number.isInteger(maxOrder) || maxOrder < 0) {
47
+ throw new Error(`Invalid MOCORDER value: ${mocOrderItem.value}`);
48
+ }
49
+ this._maxOrder = maxOrder;
50
+ const intervals = [];
51
+ for (let row = 0; row < mocHDU.rowCount; row++) {
52
+ const rawUniq = mocHDU.getCell(row, "UNIQ");
53
+ if (typeof rawUniq !== "number" ||
54
+ !Number.isInteger(rawUniq) ||
55
+ rawUniq < 4) {
56
+ throw new Error(`Invalid MOC UNIQ value at row ${row}: ${String(rawUniq)}`);
57
+ }
58
+ const { order, pixel } = HiPSCoverage.decodeUniq(rawUniq);
59
+ if (order > this._maxOrder) {
60
+ throw new Error(`MOC cell order ${order} exceeds MOCORDER ${this._maxOrder}.`);
61
+ }
62
+ const scale = 4 ** (this._maxOrder - order);
63
+ intervals.push({
64
+ first: pixel * scale,
65
+ last: (pixel + 1) * scale - 1,
66
+ });
67
+ }
68
+ this._intervals = HiPSCoverage.mergeIntervals(intervals);
69
+ this._loaded = true;
70
+ }
71
+ intersectsTile(order, pixel) {
72
+ if (!this._loaded) {
73
+ return true;
74
+ }
75
+ if (!Number.isInteger(order) ||
76
+ order < 0 ||
77
+ !Number.isInteger(pixel) ||
78
+ pixel < 0) {
79
+ return false;
80
+ }
81
+ let first;
82
+ let last;
83
+ if (order <= this._maxOrder) {
84
+ const scale = 4 ** (this._maxOrder - order);
85
+ first = pixel * scale;
86
+ last = (pixel + 1) * scale - 1;
87
+ }
88
+ else {
89
+ /*
90
+ * At orders finer than the MOC resolution, reduce the tile
91
+ * to its ancestor at MOCORDER.
92
+ */
93
+ const shift = 2 * (order - this._maxOrder);
94
+ const ancestor = Math.floor(pixel / 2 ** shift);
95
+ first = ancestor;
96
+ last = ancestor;
97
+ }
98
+ return this.intersectsInterval(first, last);
99
+ }
100
+ intersectsInterval(first, last) {
101
+ let low = 0;
102
+ let high = this._intervals.length - 1;
103
+ while (low <= high) {
104
+ const middle = Math.floor((low + high) / 2);
105
+ const interval = this._intervals[middle];
106
+ if (interval.last < first) {
107
+ low = middle + 1;
108
+ continue;
109
+ }
110
+ if (interval.first > last) {
111
+ high = middle - 1;
112
+ continue;
113
+ }
114
+ return true;
115
+ }
116
+ return false;
117
+ }
118
+ static decodeUniq(uniq) {
119
+ let order = 0;
120
+ while (4 ** (order + 2) <= uniq) {
121
+ order++;
122
+ }
123
+ const base = 4 ** (order + 1);
124
+ return {
125
+ order,
126
+ pixel: uniq - base,
127
+ };
128
+ }
129
+ static mergeIntervals(intervals) {
130
+ if (intervals.length === 0) {
131
+ return [];
132
+ }
133
+ intervals.sort((a, b) => a.first - b.first);
134
+ const merged = [{ ...intervals[0] }];
135
+ for (let i = 1; i < intervals.length; i++) {
136
+ const current = intervals[i];
137
+ const previous = merged[merged.length - 1];
138
+ if (current.first <= previous.last + 1) {
139
+ previous.last = Math.max(previous.last, current.last);
140
+ }
141
+ else {
142
+ merged.push({ ...current });
143
+ }
144
+ }
145
+ return merged;
146
+ }
147
+ }
148
+ //# sourceMappingURL=HiPSCoverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiPSCoverage.js","sourceRoot":"","sources":["../../../src/model/hips/HiPSCoverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAOtD,MAAM,OAAO,YAAY;IACf,SAAS,GAAG,CAAC,CAAC;IACd,UAAU,GAAuB,EAAE,CAAC;IACpC,OAAO,GAAG,KAAK,CAAC;IAExB,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;QAE1E,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,GAAG,iBAAiB,UAAU,CAAC,CAAC;QAE3E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,YAAY,cAAc,CAAC,CAAC;QAEtE,IAAI,CAAC,CAAC,MAAM,YAAY,cAAc,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAExD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,2BAA2B,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE1B,MAAM,SAAS,GAAuB,EAAE,CAAC;QAEzC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAE5C,IACE,OAAO,OAAO,KAAK,QAAQ;gBAC3B,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC1B,OAAO,GAAG,CAAC,EACX,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,iCAAiC,GAAG,KAAK,MAAM,CAAC,OAAO,CAAC,EAAE,CAC3D,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAE1D,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,kBAAkB,KAAK,qBAAqB,IAAI,CAAC,SAAS,GAAG,CAC9D,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;YAE5C,SAAS,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,KAAK,GAAG,KAAK;gBACpB,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;aAC9B,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAEzD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,cAAc,CAAC,KAAa,EAAE,KAAa;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YACxB,KAAK,GAAG,CAAC;YACT,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YACxB,KAAK,GAAG,CAAC,EACT,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,KAAa,CAAC;QAClB,IAAI,IAAY,CAAC;QAEjB,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;YAE5C,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;YACtB,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN;;;eAGG;YACH,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC;YAEhD,KAAK,GAAG,QAAQ,CAAC;YACjB,IAAI,GAAG,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEO,kBAAkB,CAAC,KAAa,EAAE,IAAY;QACpD,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAEtC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAEzC,IAAI,QAAQ,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC;gBAC1B,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC;gBACjB,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC;gBAC1B,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC;gBAClB,SAAS;YACX,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,IAAY;QAIpC,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YAChC,KAAK,EAAE,CAAC;QACV,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAE9B,OAAO;YACL,KAAK;YACL,KAAK,EAAE,IAAI,GAAG,IAAI;SACnB,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,cAAc,CAC3B,SAA6B;QAE7B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAE5C,MAAM,MAAM,GAAuB,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE3C,IAAI,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -1,7 +1,7 @@
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';
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
5
  type Mat4 = Float32Array;
6
6
  export default class Tile {
7
7
  private _hips;
@@ -18,6 +18,7 @@ export default class Tile {
18
18
  private _texture?;
19
19
  private _texurl;
20
20
  private _hipsShaderIndex;
21
+ private _fitsTile?;
21
22
  private _cacheTime0?;
22
23
  private _inView;
23
24
  private _amIStillInFoV_requsetID;
@@ -37,11 +38,14 @@ export default class Tile {
37
38
  resetCacheTime0(): void;
38
39
  setCacheTime0(): void;
39
40
  private initImage;
41
+ private loadImage;
42
+ private loadFits;
40
43
  private imageLoaded;
41
44
  private textureLoaded;
42
45
  private initModelBuffer;
43
46
  private computeVertexIndices;
44
47
  private setupPositionAndTexture4Quadrant2;
48
+ private getFitsDataRange;
45
49
  get inView(): boolean;
46
50
  private moveToCache;
47
51
  amIStillInFoV(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Tile.d.ts","sourceRoot":"","sources":["../../../src/model/hips/Tile.ts"],"names":[],"mappings":"AAaA,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,SAAS,IAAI,OAAO;IAIpB,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"}
1
+ {"version":3,"file":"Tile.d.ts","sourceRoot":"","sources":["../../../src/model/hips/Tile.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAsBtE,KAAK,IAAI,GAAG,YAAY,CAAC;AAMzB,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAU;IAEjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,CAAe;IAChC,OAAO,CAAC,OAAO,CAAM;IAErB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAe;IAEjC,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,wBAAwB,CAAS;IAGzC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,aAAa,CAAgD;IACrE,OAAO,CAAC,iBAAiB,CAAC,CAAc;IAExC,OAAO,CAAC,WAAW,CAAa;IAEzB,OAAO,SAAO;IACrB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,mBAAmB,CAAsB;gBAI/C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,sBAAsB,EAC7B,kBAAkB,EAAE,mBAAmB;IAwBzC,gBAAgB,IAAI,IAAI;IAIxB,aAAa,IAAI,OAAO;IAIxB,SAAS,IAAI,OAAO;IAIpB,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED,eAAe,IAAI,IAAI;IAIvB,aAAa,IAAI,IAAI;IAIrB,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,SAAS;YAeH,QAAQ;IAatB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,aAAa;IAqDrB,OAAO,CAAC,eAAe;IA6EvB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,iCAAiC;IAsEzC,OAAO,CAAC,gBAAgB;IAmCxB,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,OAAO,CAAC,WAAW;IAOnB,aAAa,IAAI,IAAI;IAkFrB,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;IAgGP,OAAO,CAAC,YAAY;CAoCrB"}