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
@@ -9,20 +9,20 @@
9
9
  * See LICENSE.md, LICENSE-AGPL.md, and LICENSE-COMMERCIAL.md for details.
10
10
  */
11
11
  // import global from './Global.js'
12
- import AstroSphere from './AstroSphere.js';
13
- import { HiPSDescriptor } from './model/hips/HiPSDescriptor.js';
14
- import { CatalogueGL } from './model/catalogues/CatalogueGL.js';
15
- import { FootprintSetGL } from './model/footprints/FootprintSetGL.js';
16
- import { bootSetup } from './Config.js';
17
- import ColorMaps from './model/ColorMaps.js';
18
- import { xyzTileRequestScheduler } from './model/earth/XYZTileRequestScheduler.js';
19
- import { XYZMapDescriptor } from './model/earth/XYZMapDescriptor.js';
20
- import { TerraPointSetGL } from './model/terra/TerraPointSetGL.js';
21
- import { TerraFootprintSetGL } from './model/terra/TerraFootprintSetGL.js';
22
- import { TerraPolylineSetGL } from './model/terra/TerraPolylineSetGL.js';
23
- import { SatelliteObjectGL } from './model/terra/SatelliteObjectGL.js';
24
- import { SensorConeGL } from './model/terra/SensorConeGL.js';
25
- import { MeshHiPSDescriptor } from './model/meships/MeshHiPSDescriptor.js';
12
+ import AstroSphere from "./AstroSphere.js";
13
+ import { HiPSDescriptor } from "./model/hips/HiPSDescriptor.js";
14
+ import { CatalogueGL } from "./model/catalogues/CatalogueGL.js";
15
+ import { FootprintSetGL, } from "./model/footprints/FootprintSetGL.js";
16
+ import { bootSetup } from "./Config.js";
17
+ import ColorMaps from "./model/ColorMaps.js";
18
+ import { xyzTileRequestScheduler } from "./model/earth/XYZTileRequestScheduler.js";
19
+ import { XYZMapDescriptor } from "./model/earth/XYZMapDescriptor.js";
20
+ import { TerraPointSetGL } from "./model/terra/TerraPointSetGL.js";
21
+ import { TerraFootprintSetGL } from "./model/terra/TerraFootprintSetGL.js";
22
+ import { TerraPolylineSetGL } from "./model/terra/TerraPolylineSetGL.js";
23
+ import { SatelliteObjectGL, } from "./model/terra/SatelliteObjectGL.js";
24
+ import { SensorConeGL, } from "./model/terra/SensorConeGL.js";
25
+ import { MeshHiPSDescriptor } from "./model/meships/MeshHiPSDescriptor.js";
26
26
  export class AstroViewer {
27
27
  astroSphere;
28
28
  canvas;
@@ -31,7 +31,7 @@ export class AstroViewer {
31
31
  webglContextList = new Map();
32
32
  viewfinderEl = null;
33
33
  viewfinderVisible = bootSetup.showViewfinder;
34
- viewfinderColor = 'rgba(75,148,226,0.68)';
34
+ viewfinderColor = "rgba(75,148,226,0.68)";
35
35
  options = {};
36
36
  // API
37
37
  run() {
@@ -169,7 +169,7 @@ export class AstroViewer {
169
169
  this.astroSphere.activateXYZ(config);
170
170
  }
171
171
  activateXYZ2(config) {
172
- const descriptor = new XYZMapDescriptor(config.name ?? 'XYZ Earth2 Layer', config.urlTemplate, config.minZoom ?? 0, config.maxZoom ?? 8, config.segmentsPerSide ?? 48, config.maxCachedTiles ?? 384, 8, config.urlResolver);
172
+ const descriptor = new XYZMapDescriptor(config.name ?? "XYZ Earth2 Layer", config.urlTemplate, config.minZoom ?? 0, config.maxZoom ?? 8, config.segmentsPerSide ?? 48, config.maxCachedTiles ?? 384, 8, config.urlResolver);
173
173
  this.astroSphere.activateXYZ2(descriptor);
174
174
  }
175
175
  activateWMTS(config) {
@@ -194,8 +194,8 @@ export class AstroViewer {
194
194
  return this.astroSphere.getMeshHiPSDebugStats();
195
195
  }
196
196
  async loadHiPS(baseUrl) {
197
- const hipsUrl = baseUrl.endsWith('/') ? baseUrl : baseUrl + '/';
198
- const resp = await fetch(hipsUrl + 'properties');
197
+ const hipsUrl = baseUrl.endsWith("/") ? baseUrl : baseUrl + "/";
198
+ const resp = await fetch(hipsUrl + "properties");
199
199
  if (!resp.ok)
200
200
  throw new Error(`HTTP ${resp.status} fetching properties`);
201
201
  const propsText = await resp.text();
@@ -205,20 +205,20 @@ export class AstroViewer {
205
205
  // this.activateHiPS(desc);
206
206
  }
207
207
  async loadMeshHiPS(baseUrl, config = {}) {
208
- const meshHiPSUrl = baseUrl.endsWith('/') ? baseUrl : baseUrl + '/';
209
- let propsText = '';
210
- const resp = await fetch(meshHiPSUrl + 'properties');
208
+ const meshHiPSUrl = baseUrl.endsWith("/") ? baseUrl : baseUrl + "/";
209
+ let propsText = "";
210
+ const resp = await fetch(meshHiPSUrl + "properties");
211
211
  if (resp.ok) {
212
212
  propsText = await resp.text();
213
213
  }
214
214
  else {
215
- const jsonResp = await fetch(meshHiPSUrl + 'properties.json');
215
+ const jsonResp = await fetch(meshHiPSUrl + "properties.json");
216
216
  if (!jsonResp.ok)
217
217
  throw new Error(`HTTP ${jsonResp.status} fetching MeshHiPS properties`);
218
218
  const json = await jsonResp.json();
219
219
  propsText = Object.entries(json)
220
220
  .map(([key, value]) => `${key}=${String(value)}`)
221
- .join('\n');
221
+ .join("\n");
222
222
  }
223
223
  const desc = new MeshHiPSDescriptor({ ...config, baseUrl: meshHiPSUrl }, propsText);
224
224
  this.astroSphere.activateMeshHiPS(desc);
@@ -236,6 +236,12 @@ export class AstroViewer {
236
236
  getActiveHiPS() {
237
237
  return this.astroSphere.activeHiPS;
238
238
  }
239
+ changeHiPSFormat(format) {
240
+ this.astroSphere.changeHiPSFormat(format);
241
+ }
242
+ getActiveHiPSFormats() {
243
+ return this.astroSphere.activeHiPS?.availableFormats ?? [];
244
+ }
239
245
  getActiveXYZ() {
240
246
  return this.astroSphere.activeXYZ;
241
247
  }
@@ -323,13 +329,13 @@ export class AstroViewer {
323
329
  return this.astroSphere.getFoVPolygon();
324
330
  }
325
331
  changeFoV(deg) {
326
- this, this.astroSphere.changeFoV(deg);
332
+ (this, this.astroSphere.changeFoV(deg));
327
333
  }
328
334
  changeFoV2(deg) {
329
- this, this.astroSphere.changeFoV2(deg);
335
+ (this, this.astroSphere.changeFoV2(deg));
330
336
  }
331
337
  changeFoV3(deg) {
332
- this, this.astroSphere.changeFoV3(deg);
338
+ (this, this.astroSphere.changeFoV3(deg));
333
339
  }
334
340
  getInsideSphere() {
335
341
  return this.astroSphere.getInsideSphere();
@@ -375,13 +381,13 @@ export class AstroViewer {
375
381
  this.webglContextList = new Map();
376
382
  }
377
383
  init(canvasEl) {
378
- console.log('init webgl');
384
+ console.log("init webgl");
379
385
  this.canvas = canvasEl;
380
386
  this.initViewfinder();
381
- const gl = this.canvas.getContext('webgl2', { alpha: false });
387
+ const gl = this.canvas.getContext("webgl2", { alpha: false });
382
388
  if (!gl) {
383
- alert('Could not initialise WebGL, sorry :-(');
384
- throw new Error('WebGL2 not available');
389
+ alert("Could not initialise WebGL, sorry :-(");
390
+ throw new Error("WebGL2 not available");
385
391
  }
386
392
  // Extend with custom fields used elsewhere
387
393
  this.webgl = gl;
@@ -392,7 +398,7 @@ export class AstroViewer {
392
398
  this.webgl.clearColor(0 * 0.00392156862, 16 * 0.00392156862, 50 * 0.00392156862, 0.7);
393
399
  }
394
400
  catch (e) {
395
- console.log('Error instantiating WebGL context');
401
+ console.log("Error instantiating WebGL context");
396
402
  }
397
403
  this.initListeners();
398
404
  // ; (global as any).gl = this.webgl
@@ -404,40 +410,64 @@ export class AstroViewer {
404
410
  const parent = this.canvas.parentElement;
405
411
  if (!parent)
406
412
  return;
407
- if (window.getComputedStyle(parent).position === 'static') {
408
- parent.style.position = 'relative';
413
+ if (window.getComputedStyle(parent).position === "static") {
414
+ parent.style.position = "relative";
409
415
  }
410
- const viewfinder = document.createElement('div');
411
- viewfinder.setAttribute('data-astro-viewfinder', 'true');
412
- viewfinder.setAttribute('aria-hidden', 'true');
413
- viewfinder.style.position = 'absolute';
414
- viewfinder.style.left = '50%';
415
- viewfinder.style.top = '50%';
416
- viewfinder.style.width = '44px';
417
- viewfinder.style.height = '44px';
418
- viewfinder.style.transform = 'translate(-50%, -50%)';
419
- viewfinder.style.pointerEvents = 'none';
420
- viewfinder.style.zIndex = '1';
421
- viewfinder.style.boxSizing = 'border-box';
416
+ const viewfinder = document.createElement("div");
417
+ viewfinder.setAttribute("data-astro-viewfinder", "true");
418
+ viewfinder.setAttribute("aria-hidden", "true");
419
+ viewfinder.style.position = "absolute";
420
+ viewfinder.style.left = "50%";
421
+ viewfinder.style.top = "50%";
422
+ viewfinder.style.width = "44px";
423
+ viewfinder.style.height = "44px";
424
+ viewfinder.style.transform = "translate(-50%, -50%)";
425
+ viewfinder.style.pointerEvents = "none";
426
+ viewfinder.style.zIndex = "1";
427
+ viewfinder.style.boxSizing = "border-box";
422
428
  const segments = [
423
- { left: '50%', top: '7px', width: '1px', height: '11px', transform: 'translateX(-50%)' },
424
- { left: '50%', bottom: '7px', width: '1px', height: '11px', transform: 'translateX(-50%)' },
425
- { left: '7px', top: '50%', width: '11px', height: '1px', transform: 'translateY(-50%)' },
426
- { right: '7px', top: '50%', width: '11px', height: '1px', transform: 'translateY(-50%)' },
429
+ {
430
+ left: "50%",
431
+ top: "7px",
432
+ width: "1px",
433
+ height: "11px",
434
+ transform: "translateX(-50%)",
435
+ },
436
+ {
437
+ left: "50%",
438
+ bottom: "7px",
439
+ width: "1px",
440
+ height: "11px",
441
+ transform: "translateX(-50%)",
442
+ },
443
+ {
444
+ left: "7px",
445
+ top: "50%",
446
+ width: "11px",
447
+ height: "1px",
448
+ transform: "translateY(-50%)",
449
+ },
450
+ {
451
+ right: "7px",
452
+ top: "50%",
453
+ width: "11px",
454
+ height: "1px",
455
+ transform: "translateY(-50%)",
456
+ },
427
457
  ];
428
458
  for (const segmentDef of segments) {
429
- const segment = document.createElement('div');
430
- segment.style.position = 'absolute';
431
- segment.style.left = segmentDef.left ?? 'auto';
432
- segment.style.right = segmentDef.right ?? 'auto';
433
- segment.style.top = segmentDef.top ?? 'auto';
434
- segment.style.bottom = segmentDef.bottom ?? 'auto';
459
+ const segment = document.createElement("div");
460
+ segment.style.position = "absolute";
461
+ segment.style.left = segmentDef.left ?? "auto";
462
+ segment.style.right = segmentDef.right ?? "auto";
463
+ segment.style.top = segmentDef.top ?? "auto";
464
+ segment.style.bottom = segmentDef.bottom ?? "auto";
435
465
  segment.style.width = segmentDef.width;
436
466
  segment.style.height = segmentDef.height;
437
467
  segment.style.transform = segmentDef.transform;
438
- segment.style.background = 'currentColor';
439
- segment.style.borderRadius = '999px';
440
- segment.style.boxShadow = '0 0 0 1px rgba(0, 0, 0, 0.14)';
468
+ segment.style.background = "currentColor";
469
+ segment.style.borderRadius = "999px";
470
+ segment.style.boxShadow = "0 0 0 1px rgba(0, 0, 0, 0.14)";
441
471
  viewfinder.appendChild(segment);
442
472
  }
443
473
  parent.appendChild(viewfinder);
@@ -448,7 +478,7 @@ export class AstroViewer {
448
478
  syncViewfinderVisibility() {
449
479
  if (!this.viewfinderEl)
450
480
  return;
451
- this.viewfinderEl.style.display = this.viewfinderVisible ? 'block' : 'none';
481
+ this.viewfinderEl.style.display = this.viewfinderVisible ? "block" : "none";
452
482
  }
453
483
  syncViewfinderColor() {
454
484
  if (!this.viewfinderEl)
@@ -456,9 +486,9 @@ export class AstroViewer {
456
486
  this.viewfinderEl.style.color = this.viewfinderColor;
457
487
  }
458
488
  initListeners() {
459
- console.log('inside initListeners');
489
+ console.log("inside initListeners");
460
490
  const resizeCanvas = () => {
461
- console.log('[resizeCanvas]');
491
+ console.log("[resizeCanvas]");
462
492
  const rect = this.canvas.getBoundingClientRect();
463
493
  const dpr = window.devicePixelRatio || 1;
464
494
  const newWidth = Math.max(1, Math.floor(rect.width * dpr));
@@ -472,7 +502,7 @@ export class AstroViewer {
472
502
  }
473
503
  };
474
504
  const handleContextLost = (event) => {
475
- console.log('[handleContextLost]');
505
+ console.log("[handleContextLost]");
476
506
  event.preventDefault();
477
507
  if (this.rafId !== null) {
478
508
  cancelAnimationFrame(this.rafId);
@@ -480,7 +510,7 @@ export class AstroViewer {
480
510
  }
481
511
  };
482
512
  const handleContextRestored = (_event) => {
483
- console.log('[handleContextRestored]');
513
+ console.log("[handleContextRestored]");
484
514
  // this.webgl.viewportWidth = this.canvas.width
485
515
  // this.webgl.viewportHeight = this.canvas.height
486
516
  this.webgl.clearColor(0 * 0.00392156862, 16 * 0.00392156862, 50 * 0.00392156862, 0.7);
@@ -488,16 +518,16 @@ export class AstroViewer {
488
518
  this.rafId = requestAnimationFrame(() => this.tick());
489
519
  };
490
520
  // 🔥 ResizeObserver per pannelli / split / layout dinamici
491
- if ('ResizeObserver' in window) {
521
+ if ("ResizeObserver" in window) {
492
522
  const ro = new ResizeObserver(() => {
493
523
  resizeCanvas();
494
524
  });
495
525
  // Osserva il canvas o il suo parent (a tua scelta)
496
526
  ro.observe(this.canvas);
497
527
  }
498
- window.addEventListener('resize', resizeCanvas);
499
- this.canvas.addEventListener('webglcontextlost', handleContextLost, false);
500
- this.canvas.addEventListener('webglcontextrestored', handleContextRestored, false);
528
+ window.addEventListener("resize", resizeCanvas);
529
+ this.canvas.addEventListener("webglcontextlost", handleContextLost, false);
530
+ this.canvas.addEventListener("webglcontextrestored", handleContextRestored, false);
501
531
  resizeCanvas();
502
532
  }
503
533
  tick() {
@@ -1 +1 @@
1
- {"version":3,"file":"AstroViewer.js","sourceRoot":"","sources":["../src/AstroViewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AstroViewer.js","sourceRoot":"","sources":["../src/AstroViewer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { HiPSShaderProgram } from '../../shader/HiPSShaderProgram.js';
2
- import { TileBuffer } from './TileBuffer.js';
3
- import { HiPS } from './HiPS.js';
1
+ import { HiPSShaderProgram } from "../../shader/HiPSShaderProgram.js";
2
+ import { TileBuffer } from "./TileBuffer.js";
3
+ import { HiPS } from "./HiPS.js";
4
4
  export default class AllSky {
5
5
  private _ready;
6
6
  private _hips;
@@ -13,6 +13,7 @@ export default class AllSky {
13
13
  private _texture;
14
14
  private _image;
15
15
  private _texurl;
16
+ private _fitsTile?;
16
17
  private _textureLoaded;
17
18
  private _maxTiles;
18
19
  private _numFacesXTile;
@@ -26,8 +27,11 @@ export default class AllSky {
26
27
  private _hipsShaderProgram;
27
28
  constructor(hips: HiPS, webgl: WebGL2RenderingContext, tileBuffer: TileBuffer, hipsShaderProgram: HiPSShaderProgram);
28
29
  private initImage;
30
+ private loadImage;
31
+ private loadFits;
29
32
  private imageLoaded;
30
33
  private textureLoaded;
34
+ private getFitsDataRange;
31
35
  private initModelBuffer;
32
36
  private setupPositionAndTexture4Quadrant;
33
37
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AllSky.d.ts","sourceRoot":"","sources":["../../../src/model/hips/AllSky.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAG9B,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,KAAK,CAAM;IAEnB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,MAAM,CAAI;IACX,OAAO,SAAM;IAEpB,OAAO,CAAC,gBAAgB,CAAI;IAC5B,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,SAAS,CAAI;IAErB,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,oBAAoB,CAAc;IAC1C,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,kBAAkB,CAAA;gBAEd,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB;IAYnH,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,aAAa;IAyCrB,OAAO,CAAC,eAAe;IAuGvB,OAAO,CAAC,gCAAgC;IA6DxC;;;OAGG;IACI,IAAI,CACT,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACtC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO;IA+DV,OAAO,CAAC,YAAY;CA+BrB"}
1
+ {"version":3,"file":"AllSky.d.ts","sourceRoot":"","sources":["../../../src/model/hips/AllSky.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAO;IAEpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAU;IAEjC,OAAO,CAAC,MAAM,CAAK;IACZ,OAAO,SAAO;IAErB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,SAAS,CAAC,CAAe;IACjC,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,oBAAoB,CAAe;IAC3C,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,kBAAkB,CAAC;gBAGzB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,sBAAsB,EAC7B,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB;IAatC,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,SAAS;YAaH,QAAQ;IAiBtB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,aAAa;IA4DrB,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,eAAe;IAuGvB,OAAO,CAAC,gCAAgC;IAiExC;;;OAGG;IACI,IAAI,CACT,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACtC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO;IA6GV,OAAO,CAAC,YAAY;CAuCrB"}
@@ -8,8 +8,9 @@
8
8
  *
9
9
  * See LICENSE.md, LICENSE-AGPL.md, and LICENSE-COMMERCIAL.md for details.
10
10
  */
11
- 'use strict';
12
- import global from '../../Global.js';
11
+ "use strict";
12
+ import global from "../../Global.js";
13
+ import { loadFitsTile } from "./FitsTileLoader.js";
13
14
  export default class AllSky {
14
15
  _ready = false;
15
16
  _hips;
@@ -22,6 +23,7 @@ export default class AllSky {
22
23
  _texture = null;
23
24
  _image;
24
25
  _texurl;
26
+ _fitsTile;
25
27
  _textureLoaded = false;
26
28
  _maxTiles = 0;
27
29
  _numFacesXTile = 0;
@@ -44,15 +46,34 @@ export default class AllSky {
44
46
  this.initImage();
45
47
  }
46
48
  initImage() {
47
- this._image = new Image();
48
49
  this._texurl = `${this._baseurl}/Norder3/Allsky.${this._format}`;
50
+ if (this._format === "fits") {
51
+ void this.loadFits();
52
+ return;
53
+ }
54
+ this.loadImage();
55
+ }
56
+ loadImage() {
57
+ this._image = new Image();
49
58
  this._image.onload = () => this.imageLoaded();
50
59
  this._image.onerror = () => {
51
- console.error('File not found? %s', this._texurl);
60
+ console.error("File not found? %s", this._texurl);
52
61
  };
53
- this._image.setAttribute('crossorigin', 'anonymous');
62
+ this._image.setAttribute("crossorigin", "anonymous");
54
63
  this._image.src = this._texurl;
55
64
  }
65
+ async loadFits() {
66
+ try {
67
+ this._fitsTile = await loadFitsTile(this._texurl);
68
+ this.textureLoaded();
69
+ this.initModelBuffer();
70
+ this._textureLoaded = true;
71
+ this._ready = true;
72
+ }
73
+ catch (error) {
74
+ console.error(`[AllSky] Unable to load FITS atlas ${this._texurl}`, error);
75
+ }
76
+ }
56
77
  imageLoaded() {
57
78
  this.textureLoaded();
58
79
  this.initModelBuffer();
@@ -60,31 +81,58 @@ export default class AllSky {
60
81
  this._ready = true;
61
82
  }
62
83
  textureLoaded() {
63
- // hipsShaderProgram.enableProgram()
64
84
  this._hipsShaderProgram.enableProgram();
65
85
  const gl = this._webgl;
66
86
  this._texture = gl.createTexture();
67
87
  gl.activeTexture(gl.TEXTURE0 + this._hipsShaderIndex);
68
- gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
88
+ gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, this._format !== "fits");
69
89
  gl.bindTexture(gl.TEXTURE_2D, this._texture);
70
- // gl.uniform1i(hipsShaderProgram.shaderProgram.samplerUniform, this._hipsShaderIndex)
71
- if (!gl.isTexture(this._texture)) {
72
- console.log('error in texture');
90
+ if (this._format === "fits") {
91
+ const fits = this._fitsTile;
92
+ if (!fits) {
93
+ throw new Error(`FITS AllSky data not loaded: ${this._texurl}`);
94
+ }
95
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.R32F, fits.width, fits.height, 0, gl.RED, gl.FLOAT, fits.pixels);
96
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
97
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
98
+ }
99
+ else {
100
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image);
101
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_LINEAR);
102
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
103
+ gl.generateMipmap(gl.TEXTURE_2D);
73
104
  }
74
- gl.activeTexture(gl.TEXTURE0 + this._hipsShaderIndex);
75
- gl.bindTexture(gl.TEXTURE_2D, this._texture);
76
- gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image);
77
105
  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
78
106
  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
79
- const useMipmaps = true;
80
- gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, useMipmaps ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR);
81
- // MAG filter: ONLY NEAREST or LINEAR are valid
82
- gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
83
- // gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_LINEAR)
84
- // gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR_MIPMAP_LINEAR)
85
- // gl.generateMipmap(gl.TEXTURE_2D)
86
- if (useMipmaps)
87
- gl.generateMipmap(gl.TEXTURE_2D);
107
+ if (!gl.isTexture(this._texture)) {
108
+ console.log("error in texture");
109
+ }
110
+ }
111
+ getFitsDataRange() {
112
+ const hipsRange = this._hips.dataRange;
113
+ if (hipsRange.min !== undefined &&
114
+ hipsRange.max !== undefined &&
115
+ Number.isFinite(hipsRange.min) &&
116
+ Number.isFinite(hipsRange.max) &&
117
+ hipsRange.max > hipsRange.min) {
118
+ return {
119
+ min: hipsRange.min,
120
+ max: hipsRange.max,
121
+ };
122
+ }
123
+ const fits = this._fitsTile;
124
+ if (fits &&
125
+ fits.dataMin !== null &&
126
+ fits.dataMax !== null &&
127
+ Number.isFinite(fits.dataMin) &&
128
+ Number.isFinite(fits.dataMax) &&
129
+ fits.dataMax > fits.dataMin) {
130
+ return {
131
+ min: fits.dataMin,
132
+ max: fits.dataMax,
133
+ };
134
+ }
135
+ return null;
88
136
  }
89
137
  initModelBuffer() {
90
138
  const gl = this._webgl;
@@ -149,13 +197,16 @@ export default class AllSky {
149
197
  this.vertexPosition[20 * this.vidx] = facesVec3Array[0].x;
150
198
  this.vertexPosition[20 * this.vidx + 1] = facesVec3Array[0].y;
151
199
  this.vertexPosition[20 * this.vidx + 2] = facesVec3Array[0].z;
152
- this.vertexPosition[20 * this.vidx + 3] = s_step + base_s - s_pixel_size;
153
- this.vertexPosition[20 * this.vidx + 4] = 1 - (t_step + base_t) + t_pixel_size;
200
+ this.vertexPosition[20 * this.vidx + 3] =
201
+ s_step + base_s - s_pixel_size;
202
+ this.vertexPosition[20 * this.vidx + 4] =
203
+ 1 - (t_step + base_t) + t_pixel_size;
154
204
  // top right
155
205
  this.vertexPosition[20 * this.vidx + 5] = facesVec3Array[1].x;
156
206
  this.vertexPosition[20 * this.vidx + 6] = facesVec3Array[1].y;
157
207
  this.vertexPosition[20 * this.vidx + 7] = facesVec3Array[1].z;
158
- this.vertexPosition[20 * this.vidx + 8] = s_step + base_s - s_pixel_size;
208
+ this.vertexPosition[20 * this.vidx + 8] =
209
+ s_step + base_s - s_pixel_size;
159
210
  this.vertexPosition[20 * this.vidx + 9] = 1 - base_t - t_pixel_size;
160
211
  // top left
161
212
  this.vertexPosition[20 * this.vidx + 10] = facesVec3Array[2].x;
@@ -168,7 +219,8 @@ export default class AllSky {
168
219
  this.vertexPosition[20 * this.vidx + 16] = facesVec3Array[3].y;
169
220
  this.vertexPosition[20 * this.vidx + 17] = facesVec3Array[3].z;
170
221
  this.vertexPosition[20 * this.vidx + 18] = base_s + s_pixel_size;
171
- this.vertexPosition[20 * this.vidx + 19] = 1 - (t_step + base_t) + t_pixel_size;
222
+ this.vertexPosition[20 * this.vidx + 19] =
223
+ 1 - (t_step + base_t) + t_pixel_size;
172
224
  this.vidx++;
173
225
  }
174
226
  }
@@ -188,6 +240,17 @@ export default class AllSky {
188
240
  }
189
241
  const gl = this._webgl;
190
242
  this._hipsShaderProgram.enableShaders(pMatrix, vMatrix, mMatrix, colorMapIdx);
243
+ if (this._format === "fits") {
244
+ const range = this.getFitsDataRange();
245
+ if (!range) {
246
+ console.error(`[AllSky] No display range available for FITS atlas ${this._texurl}`);
247
+ return false;
248
+ }
249
+ this._hipsShaderProgram.setTextureDataMode(this._hipsShaderIndex, true, range.min, range.max);
250
+ }
251
+ else {
252
+ this._hipsShaderProgram.setTextureDataMode(this._hipsShaderIndex, false);
253
+ }
191
254
  gl.enableVertexAttribArray(this._hipsShaderProgram.locations.vertexPositionAttribute);
192
255
  gl.enableVertexAttribArray(this._hipsShaderProgram.locations.textureCoordAttribute);
193
256
  // hipsShaderProgram.enableShaders(pMatrix, vMatrix, mMatrix, colorMapIdx)
@@ -195,8 +258,10 @@ export default class AllSky {
195
258
  // gl.enableVertexAttribArray((hipsShaderProgram as any).locations.textureCoordAttribute)
196
259
  gl.activeTexture(gl.TEXTURE0 + this._hipsShaderIndex);
197
260
  gl.bindTexture(gl.TEXTURE_2D, this._texture);
198
- // gl.uniform1f(hipsShaderProgram.locations.textureAlpha, this.opacity)
199
- gl.uniform1f(this._hipsShaderProgram.locations.textureAlpha, this.opacity);
261
+ const factorLocation = this._hipsShaderProgram.locations.textureAlpha[this._hipsShaderIndex];
262
+ if (factorLocation) {
263
+ gl.uniform1f(factorLocation, this.opacity);
264
+ }
200
265
  gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexPositionBuffer);
201
266
  gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.vertexIndexBuffer);
202
267
  gl.vertexAttribPointer(