astro-viewer 3.6.0 → 3.8.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 +3019 -479
  14. package/dist/astroviewer.cjs.map +1 -1
  15. package/dist/astroviewer.js +3172 -476
  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 +10 -2
  20. package/lib-esm/AstroSphere.d.ts.map +1 -1
  21. package/lib-esm/AstroSphere.js +92 -28
  22. package/lib-esm/AstroSphere.js.map +1 -1
  23. package/lib-esm/AstroViewer.d.ts +32 -23
  24. package/lib-esm/AstroViewer.d.ts.map +1 -1
  25. package/lib-esm/AstroViewer.js +125 -69
  26. package/lib-esm/AstroViewer.js.map +1 -1
  27. package/lib-esm/model/hips/AllSky.d.ts +7 -4
  28. package/lib-esm/model/hips/AllSky.d.ts.map +1 -1
  29. package/lib-esm/model/hips/AllSky.js +99 -33
  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 +97 -53
  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 +16 -5
  40. package/lib-esm/model/hips/HiPS.d.ts.map +1 -1
  41. package/lib-esm/model/hips/HiPS.js +160 -72
  42. package/lib-esm/model/hips/HiPS.js.map +1 -1
  43. package/lib-esm/model/hips/HiPSCoverage.d.ts +20 -0
  44. package/lib-esm/model/hips/HiPSCoverage.d.ts.map +1 -0
  45. package/lib-esm/model/hips/HiPSCoverage.js +166 -0
  46. package/lib-esm/model/hips/HiPSCoverage.js.map +1 -0
  47. package/lib-esm/model/hips/Tile.d.ts +8 -5
  48. package/lib-esm/model/hips/Tile.d.ts.map +1 -1
  49. package/lib-esm/model/hips/Tile.js +116 -56
  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 +52 -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 +11 -2
  60. package/lib-esm/shader/HiPSShaderProgram.d.ts.map +1 -1
  61. package/lib-esm/shader/HiPSShaderProgram.js +99 -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 +199 -96
  66. package/lib-esm/shader/ShaderManager.js.map +1 -1
  67. package/package.json +3 -3
@@ -0,0 +1,166 @@
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
+ intersec(intersec, arg1) {
14
+ throw new Error("Method not implemented.");
15
+ }
16
+ ises(ises, expents, of, arg3) {
17
+ throw new Error("Method not implemented.");
18
+ }
19
+ intersexpect(co, t, expe, arg3) {
20
+ throw new Error("Method not implemented.");
21
+ }
22
+ intersectsT19(intersectsT19, arg1) {
23
+ throw new Error("Method not implemented.");
24
+ }
25
+ _maxOrder = 0;
26
+ _intervals = [];
27
+ _loaded = false;
28
+ get loaded() {
29
+ return this._loaded;
30
+ }
31
+ get maxOrder() {
32
+ return this._maxOrder;
33
+ }
34
+ get intervalCount() {
35
+ return this._intervals.length;
36
+ }
37
+ clear() {
38
+ this._maxOrder = 0;
39
+ this._intervals = [];
40
+ this._loaded = false;
41
+ }
42
+ async load(baseUrl) {
43
+ const baseUrlString = baseUrl instanceof URL ? baseUrl.href : String(baseUrl);
44
+ const normalizedBaseUrl = baseUrlString.endsWith("/")
45
+ ? baseUrlString
46
+ : `${baseUrlString}/`;
47
+ await this.loadMoc(`${normalizedBaseUrl}Moc.fits`);
48
+ }
49
+ async loadMoc(mocUrl) {
50
+ this.clear();
51
+ const fits = await FITSParser.loadFITSFile(mocUrl);
52
+ if (!fits) {
53
+ throw new Error("Unable to load HiPS Moc.fits");
54
+ }
55
+ const mocHDU = fits.hdus.find((hdu) => hdu instanceof BinaryTableHDU);
56
+ if (!(mocHDU instanceof BinaryTableHDU)) {
57
+ throw new Error("HiPS Moc.fits does not contain a BINTABLE HDU.");
58
+ }
59
+ const mocOrderItem = mocHDU.header.findById("MOCORDER");
60
+ if (!mocOrderItem) {
61
+ throw new Error("HiPS Moc.fits does not define MOCORDER.");
62
+ }
63
+ const maxOrder = Number(mocOrderItem.value);
64
+ if (!Number.isInteger(maxOrder) || maxOrder < 0) {
65
+ throw new Error(`Invalid MOCORDER value: ${mocOrderItem.value}`);
66
+ }
67
+ this._maxOrder = maxOrder;
68
+ const intervals = [];
69
+ for (let row = 0; row < mocHDU.rowCount; row++) {
70
+ const rawUniq = mocHDU.getCell(row, "UNIQ");
71
+ if (typeof rawUniq !== "number" ||
72
+ !Number.isInteger(rawUniq) ||
73
+ rawUniq < 4) {
74
+ throw new Error(`Invalid MOC UNIQ value at row ${row}: ${String(rawUniq)}`);
75
+ }
76
+ const { order, pixel } = HiPSCoverage.decodeUniq(rawUniq);
77
+ if (order > this._maxOrder) {
78
+ throw new Error(`MOC cell order ${order} exceeds MOCORDER ${this._maxOrder}.`);
79
+ }
80
+ const scale = 4 ** (this._maxOrder - order);
81
+ intervals.push({
82
+ first: pixel * scale,
83
+ last: (pixel + 1) * scale - 1,
84
+ });
85
+ }
86
+ this._intervals = HiPSCoverage.mergeIntervals(intervals);
87
+ this._loaded = true;
88
+ }
89
+ intersectsTile(order, pixel) {
90
+ if (!this._loaded) {
91
+ return true;
92
+ }
93
+ if (!Number.isInteger(order) ||
94
+ order < 0 ||
95
+ !Number.isInteger(pixel) ||
96
+ pixel < 0) {
97
+ return false;
98
+ }
99
+ let first;
100
+ let last;
101
+ if (order <= this._maxOrder) {
102
+ const scale = 4 ** (this._maxOrder - order);
103
+ first = pixel * scale;
104
+ last = (pixel + 1) * scale - 1;
105
+ }
106
+ else {
107
+ /*
108
+ * At orders finer than the MOC resolution, reduce the tile
109
+ * to its ancestor at MOCORDER.
110
+ */
111
+ const shift = 2 * (order - this._maxOrder);
112
+ const ancestor = Math.floor(pixel / 2 ** shift);
113
+ first = ancestor;
114
+ last = ancestor;
115
+ }
116
+ return this.intersectsInterval(first, last);
117
+ }
118
+ intersectsInterval(first, last) {
119
+ let low = 0;
120
+ let high = this._intervals.length - 1;
121
+ while (low <= high) {
122
+ const middle = Math.floor((low + high) / 2);
123
+ const interval = this._intervals[middle];
124
+ if (interval.last < first) {
125
+ low = middle + 1;
126
+ continue;
127
+ }
128
+ if (interval.first > last) {
129
+ high = middle - 1;
130
+ continue;
131
+ }
132
+ return true;
133
+ }
134
+ return false;
135
+ }
136
+ static decodeUniq(uniq) {
137
+ let order = 0;
138
+ while (4 ** (order + 2) <= uniq) {
139
+ order++;
140
+ }
141
+ const base = 4 ** (order + 1);
142
+ return {
143
+ order,
144
+ pixel: uniq - base,
145
+ };
146
+ }
147
+ static mergeIntervals(intervals) {
148
+ if (intervals.length === 0) {
149
+ return [];
150
+ }
151
+ intervals.sort((a, b) => a.first - b.first);
152
+ const merged = [{ ...intervals[0] }];
153
+ for (let i = 1; i < intervals.length; i++) {
154
+ const current = intervals[i];
155
+ const previous = merged[merged.length - 1];
156
+ if (current.first <= previous.last + 1) {
157
+ previous.last = Math.max(previous.last, current.last);
158
+ }
159
+ else {
160
+ merged.push({ ...current });
161
+ }
162
+ }
163
+ return merged;
164
+ }
165
+ }
166
+ //# sourceMappingURL=HiPSCoverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiPSCoverage.js","sourceRoot":"","sources":["../../../src/model/hips/HiPSCoverage.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -26,7 +27,6 @@ export default class Tile {
26
27
  private vertexIndices;
27
28
  private vertexIndexBuffer?;
28
29
  private _tileBuffer;
29
- opacity: number;
30
30
  private _webgl;
31
31
  private _visibleTileManager;
32
32
  constructor(tileno: number, order: number, hips: HiPS, tileBuffer: TileBuffer, webgl: WebGL2RenderingContext, visibleTileManager: VisibleTilesManager);
@@ -37,11 +37,14 @@ export default class Tile {
37
37
  resetCacheTime0(): void;
38
38
  setCacheTime0(): void;
39
39
  private initImage;
40
+ private loadImage;
41
+ private loadFits;
40
42
  private imageLoaded;
41
43
  private textureLoaded;
42
44
  private initModelBuffer;
43
45
  private computeVertexIndices;
44
46
  private setupPositionAndTexture4Quadrant2;
47
+ private getFitsDataRange;
45
48
  get inView(): boolean;
46
49
  private moveToCache;
47
50
  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;IAGhC,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;IAkGP,OAAO,CAAC,YAAY;CAuCrB"}
@@ -9,8 +9,9 @@
9
9
  * See LICENSE.md, LICENSE-AGPL.md, and LICENSE-COMMERCIAL.md for details.
10
10
  */
11
11
  // Tile.ts
12
- import global from '../../Global.js';
13
- import { fovHelper } from './FoVHelper.js';
12
+ import global from "../../Global.js";
13
+ import { fovHelper } from "./FoVHelper.js";
14
+ import { loadFitsTile } from "./FitsTileLoader.js";
14
15
  // ------------------------------------------------------------------------
15
16
  export default class Tile {
16
17
  _hips;
@@ -25,8 +26,9 @@ export default class Tile {
25
26
  _image;
26
27
  _textureLoaded = false;
27
28
  _texture;
28
- _texurl = '';
29
+ _texurl = "";
29
30
  _hipsShaderIndex = 0;
31
+ _fitsTile;
30
32
  _cacheTime0;
31
33
  _inView = true;
32
34
  _amIStillInFoV_requsetID;
@@ -36,7 +38,7 @@ export default class Tile {
36
38
  vertexIndices = new Uint16Array();
37
39
  vertexIndexBuffer;
38
40
  _tileBuffer;
39
- opacity = 1.0;
41
+ // public opacity = 1.0;
40
42
  _webgl;
41
43
  _visibleTileManager;
42
44
  // private _hipsShaderProgram
@@ -83,50 +85,66 @@ export default class Tile {
83
85
  console.warn(`[Tile] Skipping tile request above max order: requested order ${this._order}, max order ${this._maxorder}, url ${this._baseurl}`);
84
86
  return;
85
87
  }
86
- this._image = new Image();
87
88
  const dirnumber = Math.floor(this._tileno / 10000) * 10000;
88
89
  this._texurl = `${this._baseurl}/Norder${this._order}/Dir${dirnumber}/Npix${this._tileno}.${this._format}`;
90
+ if (this._format === "fits") {
91
+ void this.loadFits();
92
+ return;
93
+ }
94
+ this.loadImage();
95
+ }
96
+ loadImage() {
97
+ this._image = new Image();
89
98
  this._image.onload = () => this.imageLoaded();
90
99
  this._image.onerror = () => {
91
- // console.error('File not found?', this._texurl)
92
100
  this._ready = false;
93
101
  this._abort = true;
94
102
  this.destroyIntervals();
95
103
  };
96
- this._image.crossOrigin = 'anonymous';
104
+ this._image.crossOrigin = "anonymous";
97
105
  this._image.src = this._texurl;
98
106
  }
107
+ async loadFits() {
108
+ try {
109
+ this._fitsTile = await loadFitsTile(this._texurl);
110
+ this._ready = true;
111
+ }
112
+ catch (error) {
113
+ console.error(`[Tile] Unable to load FITS tile ${this._texurl}`, error);
114
+ this._ready = false;
115
+ this._abort = true;
116
+ this.destroyIntervals();
117
+ }
118
+ }
99
119
  imageLoaded() {
100
120
  // this.textureLoaded()
101
121
  // this.initModelBuffer()
102
122
  // this._textureLoaded = true
103
123
  this._ready = true;
104
124
  }
105
- // private textureLoaded(): void {
106
125
  textureLoaded(hipsShaderProgram) {
107
- // this._hipsShaderProgram.enableProgram()
108
126
  hipsShaderProgram.enableProgram();
109
127
  const gl = this._webgl;
110
128
  this._texture = gl.createTexture();
111
129
  gl.activeTexture(gl.TEXTURE0 + this._hipsShaderIndex);
112
- gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
130
+ gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, this._format !== "fits");
113
131
  gl.bindTexture(gl.TEXTURE_2D, this._texture);
114
- if (!gl.isTexture(this._texture)) {
115
- console.log('error in texture');
132
+ if (this._format === "fits") {
133
+ const fits = this._fitsTile;
134
+ if (!fits) {
135
+ throw new Error(`FITS tile data not loaded: ${this._texurl}`);
136
+ }
137
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.R32F, fits.width, fits.height, 0, gl.RED, gl.FLOAT, fits.pixels);
138
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
139
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
140
+ }
141
+ else {
142
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image);
143
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
144
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
116
145
  }
117
- gl.activeTexture(gl.TEXTURE0 + this._hipsShaderIndex);
118
- gl.bindTexture(gl.TEXTURE_2D, this._texture);
119
- gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image);
120
146
  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
121
147
  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
122
- gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
123
- gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
124
- // FIX: use the sampler location we fetched in enableShaders()
125
- // gl.uniform1i((this._hipsShaderProgram.locations as ShaderLocations).sampler, this._hipsShaderIndex)
126
- // gl.uniform1i((hipsShaderProgram.locations as ShaderLocations).sampler, this._hipsShaderIndex)
127
- if (!gl.isTexture(this._texture)) {
128
- console.warn('Texture creation failed');
129
- }
130
148
  this.initModelBuffer();
131
149
  this._textureLoaded = true;
132
150
  }
@@ -193,26 +211,32 @@ export default class Tile {
193
211
  this.vertexPosition[qidx][20 * p] = facesVec3Array[0].x;
194
212
  this.vertexPosition[qidx][20 * p + 1] = facesVec3Array[0].y;
195
213
  this.vertexPosition[qidx][20 * p + 2] = facesVec3Array[0].z;
196
- this.vertexPosition[qidx][20 * p + 3] = step + step * uindex + s_pixel_size;
197
- this.vertexPosition[qidx][20 * p + 4] = 1 - (step + step * vindex) - t_pixel_size;
214
+ this.vertexPosition[qidx][20 * p + 3] =
215
+ step + step * uindex + s_pixel_size;
216
+ this.vertexPosition[qidx][20 * p + 4] =
217
+ 1 - (step + step * vindex) - t_pixel_size;
198
218
  // v1
199
219
  this.vertexPosition[qidx][20 * p + 5] = facesVec3Array[1].x;
200
220
  this.vertexPosition[qidx][20 * p + 6] = facesVec3Array[1].y;
201
221
  this.vertexPosition[qidx][20 * p + 7] = facesVec3Array[1].z;
202
- this.vertexPosition[qidx][20 * p + 8] = step + step * uindex + s_pixel_size;
203
- this.vertexPosition[qidx][20 * p + 9] = 1 - step * vindex + t_pixel_size;
222
+ this.vertexPosition[qidx][20 * p + 8] =
223
+ step + step * uindex + s_pixel_size;
224
+ this.vertexPosition[qidx][20 * p + 9] =
225
+ 1 - step * vindex + t_pixel_size;
204
226
  // v2
205
227
  this.vertexPosition[qidx][20 * p + 10] = facesVec3Array[2].x;
206
228
  this.vertexPosition[qidx][20 * p + 11] = facesVec3Array[2].y;
207
229
  this.vertexPosition[qidx][20 * p + 12] = facesVec3Array[2].z;
208
230
  this.vertexPosition[qidx][20 * p + 13] = step * uindex - s_pixel_size;
209
- this.vertexPosition[qidx][20 * p + 14] = 1 - step * vindex + t_pixel_size;
231
+ this.vertexPosition[qidx][20 * p + 14] =
232
+ 1 - step * vindex + t_pixel_size;
210
233
  // v3
211
234
  this.vertexPosition[qidx][20 * p + 15] = facesVec3Array[3].x;
212
235
  this.vertexPosition[qidx][20 * p + 16] = facesVec3Array[3].y;
213
236
  this.vertexPosition[qidx][20 * p + 17] = facesVec3Array[3].z;
214
237
  this.vertexPosition[qidx][20 * p + 18] = step * uindex - s_pixel_size;
215
- this.vertexPosition[qidx][20 * p + 19] = 1 - (step + step * vindex) - t_pixel_size;
238
+ this.vertexPosition[qidx][20 * p + 19] =
239
+ 1 - (step + step * vindex) - t_pixel_size;
216
240
  p++;
217
241
  }
218
242
  }
@@ -220,6 +244,32 @@ export default class Tile {
220
244
  gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexPositionBuffer[qidx]);
221
245
  gl.bufferData(gl.ARRAY_BUFFER, this.vertexPosition[qidx], gl.STATIC_DRAW);
222
246
  }
247
+ getFitsDataRange() {
248
+ const hipsRange = this._hips.dataRange;
249
+ if (hipsRange.min !== undefined &&
250
+ hipsRange.max !== undefined &&
251
+ Number.isFinite(hipsRange.min) &&
252
+ Number.isFinite(hipsRange.max) &&
253
+ hipsRange.max > hipsRange.min) {
254
+ return {
255
+ min: hipsRange.min,
256
+ max: hipsRange.max,
257
+ };
258
+ }
259
+ const fits = this._fitsTile;
260
+ if (fits &&
261
+ fits.dataMin !== null &&
262
+ fits.dataMax !== null &&
263
+ Number.isFinite(fits.dataMin) &&
264
+ Number.isFinite(fits.dataMax) &&
265
+ fits.dataMax > fits.dataMin) {
266
+ return {
267
+ min: fits.dataMin,
268
+ max: fits.dataMax,
269
+ };
270
+ }
271
+ return null;
272
+ }
223
273
  get inView() {
224
274
  return this._inView;
225
275
  }
@@ -234,7 +284,9 @@ export default class Tile {
234
284
  this._ready = true;
235
285
  if (this._isGalacticHips) {
236
286
  if (this._visibleTileManager.galAncestorsMap.has(this._order)) {
237
- if (!this._visibleTileManager.galAncestorsMap.get(this._order).includes(this._tileno)) {
287
+ if (!this._visibleTileManager.galAncestorsMap
288
+ .get(this._order)
289
+ .includes(this._tileno)) {
238
290
  this.moveToCache();
239
291
  }
240
292
  else {
@@ -266,7 +318,9 @@ export default class Tile {
266
318
  }
267
319
  else {
268
320
  if (this._visibleTileManager.ancestorsMap.has(this._order)) {
269
- if (!this._visibleTileManager.ancestorsMap.get(this._order).includes(this._tileno)) {
321
+ if (!this._visibleTileManager.ancestorsMap
322
+ .get(this._order)
323
+ .includes(this._tileno)) {
270
324
  this.moveToCache();
271
325
  }
272
326
  else {
@@ -312,33 +366,40 @@ export default class Tile {
312
366
  }
313
367
  const gl = this._webgl;
314
368
  hipsShaderProgram.enableShaders(pMatrix, vMatrix, mMatrix, colorMapIdx);
315
- // this._hipsShaderProgram.enableShaders(pMatrix, vMatrix, mMatrix, colorMapIdx)
316
- // Enable attributes (these locations are retrieved in enableShaders)
317
- // gl.enableVertexAttribArray(this._hipsShaderProgram.locations.vertexPositionAttribute)
318
- // gl.enableVertexAttribArray(this._hipsShaderProgram.locations.textureCoordAttribute)
319
- gl.enableVertexAttribArray(hipsShaderProgram.locations.vertexPositionAttribute);
320
- gl.enableVertexAttribArray(hipsShaderProgram.locations.textureCoordAttribute);
369
+ if (this._format === "fits") {
370
+ const range = this.getFitsDataRange();
371
+ if (!range) {
372
+ console.error(`[Tile] No display range available for FITS tile ${this._texurl}`);
373
+ return;
374
+ }
375
+ hipsShaderProgram.setTextureDataMode(this._hipsShaderIndex, true, range.min, range.max);
376
+ }
377
+ else {
378
+ hipsShaderProgram.setTextureDataMode(this._hipsShaderIndex, false);
379
+ }
380
+ const locations = hipsShaderProgram.locations;
381
+ gl.enableVertexAttribArray(locations.vertexPositionAttribute);
382
+ gl.enableVertexAttribArray(locations.textureCoordAttribute);
321
383
  gl.activeTexture(gl.TEXTURE0 + this._hipsShaderIndex);
322
384
  gl.bindTexture(gl.TEXTURE_2D, this._texture);
323
- // gl.uniform1f(this._hipsShaderProgram.locations.textureAlpha, this.opacity)
324
- gl.uniform1f(hipsShaderProgram.locations.textureAlpha, this.opacity);
385
+ const factorLocation = locations.textureAlpha[this._hipsShaderIndex];
386
+ if (factorLocation) {
387
+ gl.uniform1f(factorLocation, 1.0);
388
+ }
389
+ hipsShaderProgram.setLayerOpacity(this._hips.opacity);
325
390
  gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.vertexIndexBuffer);
326
391
  const elemno = this.vertexIndices.length;
327
- const indexType = this.vertexIndices instanceof Uint32Array ? gl.UNSIGNED_INT : gl.UNSIGNED_SHORT;
392
+ const indexType = this.vertexIndices instanceof Uint32Array
393
+ ? gl.UNSIGNED_INT
394
+ : gl.UNSIGNED_SHORT;
328
395
  quadrantsToDraw.forEach((qidx) => {
329
396
  gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexPositionBuffer[qidx]);
330
- gl.vertexAttribPointer(
331
- // this._hipsShaderProgram.locations.vertexPositionAttribute,
332
- hipsShaderProgram.locations.vertexPositionAttribute, 3, gl.FLOAT, false, 5 * 4, 0);
333
- gl.vertexAttribPointer(
334
- // this._hipsShaderProgram.locations.textureCoordAttribute,
335
- hipsShaderProgram.locations.textureCoordAttribute, 2, gl.FLOAT, false, 5 * 4, 3 * 4);
397
+ gl.vertexAttribPointer(locations.vertexPositionAttribute, 3, gl.FLOAT, false, 5 * 4, 0);
398
+ gl.vertexAttribPointer(locations.textureCoordAttribute, 2, gl.FLOAT, false, 5 * 4, 3 * 4);
336
399
  gl.drawElements(gl.TRIANGLES, elemno, indexType, 0);
337
400
  });
338
- // gl.disableVertexAttribArray(this._hipsShaderProgram.locations.vertexPositionAttribute)
339
- // gl.disableVertexAttribArray(this._hipsShaderProgram.locations.textureCoordAttribute)
340
- gl.disableVertexAttribArray(hipsShaderProgram.locations.vertexPositionAttribute);
341
- gl.disableVertexAttribArray(hipsShaderProgram.locations.textureCoordAttribute);
401
+ gl.disableVertexAttribArray(locations.vertexPositionAttribute);
402
+ gl.disableVertexAttribArray(locations.textureCoordAttribute);
342
403
  }
343
404
  drawChildren(visibleOrder, visibleTilesMap, pMatrix, vMatrix, mMatrix, colorMapIdx, hipsShaderProgram) {
344
405
  const quadrantsToDraw = new Set([0, 1, 2, 3]);
@@ -349,16 +410,15 @@ export default class Tile {
349
410
  const childTileNo = (this._tileno << 2) + c;
350
411
  const list = visibleTilesMap.get(childrenOrder);
351
412
  if (list.includes(childTileNo)) {
413
+ if (!this._hips.intersectsCoverage(childrenOrder, childTileNo)) {
414
+ continue;
415
+ }
352
416
  const childTile = this._isGalacticHips
353
417
  ? this._tileBuffer.getGalTile(childTileNo, childrenOrder, this._hips)
354
418
  : this._tileBuffer.getTile(childTileNo, childrenOrder, this._hips);
355
- // const childTile = this._isGalacticHips
356
- // ? newTileBuffer.getGalTile(childTileNo, childrenOrder, this._hips)
357
- // : newTileBuffer.getTile(childTileNo, childrenOrder, this._hips)
358
- // childTile.draw(visibleOrder, visibleTilesMap, pMatrix, vMatrix, mMatrix, colorMapIdx)
359
419
  childTile.draw(visibleOrder, visibleTilesMap, pMatrix, vMatrix, mMatrix, colorMapIdx, hipsShaderProgram);
360
- if (childTile._ready) {
361
- quadrantsToDraw.delete(childTileNo - (this._tileno << 2));
420
+ if (childTile.getReadyState()) {
421
+ quadrantsToDraw.delete(c);
362
422
  }
363
423
  }
364
424
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Tile.js","sourceRoot":"","sources":["../../../src/model/hips/Tile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tile.js","sourceRoot":"","sources":["../../../src/model/hips/Tile.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import Tile from './Tile.js';
2
- import { HiPS } from './HiPS.js';
3
- import { VisibleTilesManager } from './VisibleTilesManager.js';
4
- import { HiPSShaderProgram } from '../../shader/HiPSShaderProgram.js';
1
+ import Tile from "./Tile.js";
2
+ import { HiPS } from "./HiPS.js";
3
+ import { VisibleTilesManager } from "./VisibleTilesManager.js";
4
+ import { HiPSShaderProgram } from "../../shader/HiPSShaderProgram.js";
5
5
  export declare class TileBuffer {
6
6
  private _tiles;
7
7
  private _cachedTiles;
@@ -33,6 +33,15 @@ export declare class TileBuffer {
33
33
  private cacheCleaner;
34
34
  /** Compose a stable key for maps. */
35
35
  private key;
36
+ removeHiPS(hips: HiPS): void;
37
+ /**
38
+ * Remove all active and cached tiles belonging to a specific HiPS.
39
+ *
40
+ * Tile keys contain the HiPS base URL and format. We intentionally
41
+ * ignore the format here so that a format change removes resources
42
+ * created with the previous format as well.
43
+ */
44
+ invalidateHiPS(hips: HiPS): void;
36
45
  /** Optional: call to stop internal timers if you dispose this buffer. */
37
46
  dispose(): void;
38
47
  get size(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"TileBuffer.d.ts","sourceRoot":"","sources":["../../../src/model/hips/TileBuffer.ts"],"names":[],"mappings":"AAYA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAGrE,qBAAa,UAAU;IAErB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,WAAW,CAA8B;IAGjD,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,cAAc,CAA8B;IAEpD,OAAO,CAAC,uBAAuB,CAAQ;IACvC,OAAO,CAAC,UAAU,CAAQ;IAE1B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,kBAAkB,CAAA;gBAEd,oBAAoB,oBAAI,EAAE,KAAK,EAAE,sBAAsB,EACjE,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,mBAAmB;IAoBzC,mDAAmD;IACnD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQzB,gDAAgD;IAChD,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQ5B,6DAA6D;IAC7D,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAS5C,2DAA2D;IAC3D,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAS/C,4EAA4E;IAC5E,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAkBxD,yEAAyE;IACzE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAkB3D,uDAAuD;IACvD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAiBhE,6CAA6C;IAC7C,OAAO,CAAC,YAAY;IAoBpB,qCAAqC;IACrC,OAAO,CAAC,GAAG;IAIX,yEAAyE;IACzE,OAAO,IAAI,IAAI;IAIf,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,cAAc,IAAI,MAAM,CAe3B;IAED,IAAI,gBAAgB,IAAI,MAAM,CAe7B;CACF"}
1
+ {"version":3,"file":"TileBuffer.d.ts","sourceRoot":"","sources":["../../../src/model/hips/TileBuffer.ts"],"names":[],"mappings":"AAYA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,qBAAa,UAAU;IAErB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,WAAW,CAA+B;IAGlD,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,cAAc,CAA+B;IAErD,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,kBAAkB,CAAC;gBAGzB,oBAAoB,oBAAI,EACxB,KAAK,EAAE,sBAAsB,EAC7B,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,mBAAmB;IAoBzC,mDAAmD;IACnD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQzB,gDAAgD;IAChD,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQ5B,6DAA6D;IAC7D,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAc5C,2DAA2D;IAC3D,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAc/C,4EAA4E;IAC5E,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAyBxD,yEAAyE;IACzE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAyB3D,uDAAuD;IACvD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAiBhE,6CAA6C;IAC7C,OAAO,CAAC,YAAY;IA4BpB,qCAAqC;IACrC,OAAO,CAAC,GAAG;IAIX,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAO5B;;;;;;OAMG;IACH,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAqBhC,yEAAyE;IACzE,OAAO,IAAI,IAAI;IAIf,IAAI,IAAI,IAAI,MAAM,CAOjB;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,cAAc,IAAI,MAAM,CAe3B;IAED,IAAI,gBAAgB,IAAI,MAAM,CAe7B;CACF"}