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.
- package/dist/64.astroviewer.cjs +37 -0
- package/dist/64.astroviewer.cjs.map +1 -0
- package/dist/64.astroviewer.js +41 -0
- package/dist/64.astroviewer.js.map +1 -0
- package/dist/64.astroviewer.min.js +2 -0
- package/dist/64.astroviewer.min.js.map +1 -0
- package/dist/911.astroviewer.cjs +4047 -0
- package/dist/911.astroviewer.cjs.map +1 -0
- package/dist/911.astroviewer.js +735 -0
- package/dist/911.astroviewer.js.map +1 -0
- package/dist/911.astroviewer.min.js +2 -0
- package/dist/911.astroviewer.min.js.map +1 -0
- package/dist/astroviewer.cjs +3019 -479
- package/dist/astroviewer.cjs.map +1 -1
- package/dist/astroviewer.js +3172 -476
- package/dist/astroviewer.js.map +1 -1
- package/dist/astroviewer.min.js +1 -1
- package/dist/astroviewer.min.js.map +1 -1
- package/lib-esm/AstroSphere.d.ts +10 -2
- package/lib-esm/AstroSphere.d.ts.map +1 -1
- package/lib-esm/AstroSphere.js +92 -28
- package/lib-esm/AstroSphere.js.map +1 -1
- package/lib-esm/AstroViewer.d.ts +32 -23
- package/lib-esm/AstroViewer.d.ts.map +1 -1
- package/lib-esm/AstroViewer.js +125 -69
- package/lib-esm/AstroViewer.js.map +1 -1
- package/lib-esm/model/hips/AllSky.d.ts +7 -4
- package/lib-esm/model/hips/AllSky.d.ts.map +1 -1
- package/lib-esm/model/hips/AllSky.js +99 -33
- package/lib-esm/model/hips/AllSky.js.map +1 -1
- package/lib-esm/model/hips/AncestorTile.d.ts +7 -4
- package/lib-esm/model/hips/AncestorTile.d.ts.map +1 -1
- package/lib-esm/model/hips/AncestorTile.js +97 -53
- package/lib-esm/model/hips/AncestorTile.js.map +1 -1
- package/lib-esm/model/hips/FitsTileLoader.d.ts +9 -0
- package/lib-esm/model/hips/FitsTileLoader.d.ts.map +1 -0
- package/lib-esm/model/hips/FitsTileLoader.js +65 -0
- package/lib-esm/model/hips/FitsTileLoader.js.map +1 -0
- package/lib-esm/model/hips/HiPS.d.ts +16 -5
- package/lib-esm/model/hips/HiPS.d.ts.map +1 -1
- package/lib-esm/model/hips/HiPS.js +160 -72
- package/lib-esm/model/hips/HiPS.js.map +1 -1
- package/lib-esm/model/hips/HiPSCoverage.d.ts +20 -0
- package/lib-esm/model/hips/HiPSCoverage.d.ts.map +1 -0
- package/lib-esm/model/hips/HiPSCoverage.js +166 -0
- package/lib-esm/model/hips/HiPSCoverage.js.map +1 -0
- package/lib-esm/model/hips/Tile.d.ts +8 -5
- package/lib-esm/model/hips/Tile.d.ts.map +1 -1
- package/lib-esm/model/hips/Tile.js +116 -56
- package/lib-esm/model/hips/Tile.js.map +1 -1
- package/lib-esm/model/hips/TileBuffer.d.ts +13 -4
- package/lib-esm/model/hips/TileBuffer.d.ts.map +1 -1
- package/lib-esm/model/hips/TileBuffer.js +52 -11
- package/lib-esm/model/hips/TileBuffer.js.map +1 -1
- package/lib-esm/model/hips/VisibleTilesManager.d.ts +5 -5
- package/lib-esm/model/hips/VisibleTilesManager.d.ts.map +1 -1
- package/lib-esm/model/hips/VisibleTilesManager.js +6 -20
- package/lib-esm/model/hips/VisibleTilesManager.js.map +1 -1
- package/lib-esm/shader/HiPSShaderProgram.d.ts +11 -2
- package/lib-esm/shader/HiPSShaderProgram.d.ts.map +1 -1
- package/lib-esm/shader/HiPSShaderProgram.js +99 -53
- package/lib-esm/shader/HiPSShaderProgram.js.map +1 -1
- package/lib-esm/shader/ShaderManager.d.ts +2 -0
- package/lib-esm/shader/ShaderManager.d.ts.map +1 -1
- package/lib-esm/shader/ShaderManager.js +199 -96
- package/lib-esm/shader/ShaderManager.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,65 @@
|
|
|
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 { FITSHeaderManager, FITSParser } from "jsfitsio";
|
|
12
|
+
export async function loadFitsTile(url) {
|
|
13
|
+
const fitsFile = await FITSParser.loadFITSFile(url);
|
|
14
|
+
if (!fitsFile?.primaryHDU) {
|
|
15
|
+
throw new Error(`Unable to load FITS tile: ${url}`);
|
|
16
|
+
}
|
|
17
|
+
const image = fitsFile.primaryHDU;
|
|
18
|
+
if (image.naxis !== 2) {
|
|
19
|
+
throw new Error(`Expected a 2D FITS tile, got NAXIS=${image.naxis}: ${url}`);
|
|
20
|
+
}
|
|
21
|
+
const [width, height] = image.shape;
|
|
22
|
+
if (!Number.isInteger(width) ||
|
|
23
|
+
!Number.isInteger(height) ||
|
|
24
|
+
width <= 0 ||
|
|
25
|
+
height <= 0) {
|
|
26
|
+
throw new Error(`Invalid FITS tile dimensions: ${url}`);
|
|
27
|
+
}
|
|
28
|
+
const data = image.typedData;
|
|
29
|
+
if (!data || data.length !== width * height) {
|
|
30
|
+
throw new Error(`Invalid FITS tile payload: ${url}`);
|
|
31
|
+
}
|
|
32
|
+
if (data instanceof BigInt64Array) {
|
|
33
|
+
throw new Error(`BITPIX=64 FITS tiles are not supported for HiPS rendering: ${url}`);
|
|
34
|
+
}
|
|
35
|
+
const bscale = getNumericHeaderValue(image.header, FITSHeaderManager.BSCALE) ?? 1;
|
|
36
|
+
const bzero = getNumericHeaderValue(image.header, FITSHeaderManager.BZERO) ?? 0;
|
|
37
|
+
const blank = getNumericHeaderValue(image.header, FITSHeaderManager.BLANK);
|
|
38
|
+
const dataMin = getNumericHeaderValue(image.header, FITSHeaderManager.DATAMIN);
|
|
39
|
+
const dataMax = getNumericHeaderValue(image.header, FITSHeaderManager.DATAMAX);
|
|
40
|
+
const pixels = new Float32Array(data.length);
|
|
41
|
+
for (let i = 0; i < data.length; i++) {
|
|
42
|
+
const rawValue = data[i];
|
|
43
|
+
if (!Number.isFinite(rawValue) || (blank !== null && rawValue === blank)) {
|
|
44
|
+
pixels[i] = Number.NaN;
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
pixels[i] = rawValue * bscale + bzero;
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
width,
|
|
51
|
+
height,
|
|
52
|
+
pixels,
|
|
53
|
+
dataMin,
|
|
54
|
+
dataMax,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function getNumericHeaderValue(header, key) {
|
|
58
|
+
const item = header.findById(key);
|
|
59
|
+
if (!item) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
const value = Number(item.value);
|
|
63
|
+
return Number.isFinite(value) ? value : null;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=FitsTileLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FitsTileLoader.js","sourceRoot":"","sources":["../../../src/model/hips/FitsTileLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author Fabrizio Giordano (Fab77)
|
|
3
3
|
*/
|
|
4
|
-
import { AbstractSkyEntity, SkyEntityDrawInput } from
|
|
5
|
-
import { ColorMap } from
|
|
6
|
-
import { HiPSDescriptor } from
|
|
7
|
-
import type { HiPSDebugStats } from
|
|
8
|
-
import { HealpixGrid } from
|
|
4
|
+
import { AbstractSkyEntity, SkyEntityDrawInput } from "../AbstractSkyEntity.js";
|
|
5
|
+
import { ColorMap } from "../ColorMaps.js";
|
|
6
|
+
import { HiPSDescriptor } from "./HiPSDescriptor.js";
|
|
7
|
+
import type { HiPSDebugStats } from "./HiPSConfig.js";
|
|
8
|
+
import { HealpixGrid } from "../grid/HealpixGrid.js";
|
|
9
9
|
export declare class HiPS extends AbstractSkyEntity {
|
|
10
10
|
private _ancestorTiles;
|
|
11
11
|
private _allSkyTile;
|
|
12
12
|
private _descriptor;
|
|
13
|
+
private _coverage;
|
|
14
|
+
private _coverageResolved;
|
|
15
|
+
private _opacity;
|
|
13
16
|
private _format;
|
|
14
17
|
private _baseurl;
|
|
15
18
|
private _maxorder;
|
|
@@ -27,8 +30,14 @@ export declare class HiPS extends AbstractSkyEntity {
|
|
|
27
30
|
get propertiesRawText(): string;
|
|
28
31
|
get properties(): ReadonlyMap<string, string>;
|
|
29
32
|
constructor(radius: number, position: [number, number, number], xrad: number, yrad: number, descriptor: HiPSDescriptor, webgl: WebGL2RenderingContext, healpixGrid: HealpixGrid);
|
|
33
|
+
setOpacity(opacity: number): void;
|
|
34
|
+
get opacity(): number;
|
|
35
|
+
intersectsCoverage(order: number, pixel: number): boolean;
|
|
36
|
+
get coverageLoaded(): boolean;
|
|
37
|
+
private initBaseTiles;
|
|
30
38
|
getProperty(key: string): string | undefined;
|
|
31
39
|
changeFormat(format: string): void;
|
|
40
|
+
get availableFormats(): readonly string[];
|
|
32
41
|
/**
|
|
33
42
|
* Shader colormap switcher
|
|
34
43
|
* 0 -> native
|
|
@@ -41,6 +50,8 @@ export declare class HiPS extends AbstractSkyEntity {
|
|
|
41
50
|
*/
|
|
42
51
|
changeColorMap(colorMap: ColorMap): void;
|
|
43
52
|
private initShaders;
|
|
53
|
+
private selectDefaultFormat;
|
|
54
|
+
get dataRange(): import("./HiPSDescriptor.js").HiPSDataRange;
|
|
44
55
|
getCurrentHealpixOrder(): number;
|
|
45
56
|
getDebugStats(): HiPSDebugStats;
|
|
46
57
|
private refresh;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HiPS.d.ts","sourceRoot":"","sources":["../../../src/model/hips/HiPS.ts"],"names":[],"mappings":"AAYA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"HiPS.d.ts","sourceRoot":"","sources":["../../../src/model/hips/HiPS.ts"],"names":[],"mappings":"AAYA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAEhF,OAAkB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,qBAAa,IAAK,SAAQ,iBAAiB;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,WAAW,CAAiB;IAEpC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAO;IAEvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,OAAO,CAAQ;IAEhB,UAAU,SAAK;IACf,WAAW,SAAK;IAChB,QAAQ,WAAuB;IACtC,OAAO,CAAC,YAAY,CAAc;IAGlC,IAAI,QAAQ,IAAI,MAAM,CAErB;IACD,IAAI,QAAQ,IAAI,MAAM,CAErB;IACD,IAAI,OAAO,IAAI,MAAM,CAEpB;IACD,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IACD,IAAI,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5C;gBAGC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,cAAc,EAC1B,KAAK,EAAE,sBAAsB,EAC7B,WAAW,EAAE,WAAW;IAgE1B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQjC,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAezD,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,OAAO,CAAC,aAAa;IA6BrB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI5C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAgClC,IAAI,gBAAgB,IAAI,SAAS,MAAM,EAAE,CAExC;IAED;;;;;;;;;OASG;IACH,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAoExC,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,mBAAmB;IAW3B,IAAI,SAAS,gDAEZ;IAED,sBAAsB,IAAI,MAAM;IAIhC,aAAa,IAAI,cAAc;IAqB/B,OAAO,CAAC,OAAO;IAWf,IAAI,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;CAuDtC"}
|
|
@@ -8,19 +8,23 @@
|
|
|
8
8
|
*
|
|
9
9
|
* See LICENSE.md, LICENSE-AGPL.md, and LICENSE-COMMERCIAL.md for details.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
"use strict";
|
|
12
12
|
/**
|
|
13
13
|
* @author Fabrizio Giordano (Fab77)
|
|
14
14
|
*/
|
|
15
|
-
import { AbstractSkyEntity } from
|
|
16
|
-
import { fovHelper } from
|
|
17
|
-
import ColorMaps from
|
|
18
|
-
import AncestorTile from
|
|
19
|
-
import AllSky from
|
|
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
|
+
import { HiPSCoverage } from "./HiPSCoverage.js";
|
|
20
21
|
export class HiPS extends AbstractSkyEntity {
|
|
21
22
|
_ancestorTiles;
|
|
22
23
|
_allSkyTile;
|
|
23
24
|
_descriptor;
|
|
25
|
+
_coverage;
|
|
26
|
+
_coverageResolved = false;
|
|
27
|
+
_opacity = 1.0;
|
|
24
28
|
_format;
|
|
25
29
|
_baseurl;
|
|
26
30
|
_maxorder;
|
|
@@ -29,30 +33,58 @@ export class HiPS extends AbstractSkyEntity {
|
|
|
29
33
|
_allSky = true;
|
|
30
34
|
samplerIdx = 0;
|
|
31
35
|
colorMapIdx = 0;
|
|
32
|
-
colorMap = ColorMaps[
|
|
36
|
+
colorMap = ColorMaps["native"];
|
|
33
37
|
_healpixGrid;
|
|
34
38
|
// exposed read-only helpers
|
|
35
|
-
get maxOrder() {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
get
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
get maxOrder() {
|
|
40
|
+
return this._maxorder;
|
|
41
|
+
}
|
|
42
|
+
get minOrder() {
|
|
43
|
+
return this._minorder;
|
|
44
|
+
}
|
|
45
|
+
get baseURL() {
|
|
46
|
+
return this._baseurl;
|
|
47
|
+
}
|
|
48
|
+
get format() {
|
|
49
|
+
return this._format;
|
|
50
|
+
}
|
|
51
|
+
get propertiesRawText() {
|
|
52
|
+
return this._descriptor.propertiesRawText;
|
|
53
|
+
}
|
|
54
|
+
get properties() {
|
|
55
|
+
return this._descriptor.properties;
|
|
56
|
+
}
|
|
41
57
|
constructor(radius, position, xrad, yrad, descriptor, webgl, healpixGrid) {
|
|
42
58
|
super(radius, position, xrad, yrad, descriptor.surveyName, webgl, descriptor.isGalactic);
|
|
43
59
|
this._descriptor = descriptor;
|
|
44
60
|
this.initGL(webgl);
|
|
45
61
|
this._healpixGrid = healpixGrid;
|
|
46
|
-
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];
|
|
62
|
+
this._format = this.selectDefaultFormat(descriptor.imgFormats);
|
|
53
63
|
this._baseurl = descriptor.url;
|
|
54
64
|
this._maxorder = descriptor.maxOrder;
|
|
55
65
|
this._minorder = descriptor.minOrder;
|
|
66
|
+
this._coverage = new HiPSCoverage();
|
|
67
|
+
void this._coverage
|
|
68
|
+
.load(this._baseurl)
|
|
69
|
+
.then(() => {
|
|
70
|
+
this._coverageResolved = true;
|
|
71
|
+
})
|
|
72
|
+
.catch((error) => {
|
|
73
|
+
console.warn(`[HiPS] Coverage unavailable for ${this._baseurl}; continuing without MOC filtering.`, error);
|
|
74
|
+
this._coverage.clear();
|
|
75
|
+
this._coverageResolved = true;
|
|
76
|
+
});
|
|
77
|
+
if (this.isGalacticHips) {
|
|
78
|
+
this._healpixGrid.visibleTilesManager.tileBuffer.addGalHiPS(this);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
this._healpixGrid.visibleTilesManager.tileBuffer.addHiPS(this);
|
|
82
|
+
}
|
|
83
|
+
// DEBUG logs kept from JS (optional)
|
|
84
|
+
// eslint-disable-next-line no-console
|
|
85
|
+
console.log("HiPS frame " + descriptor.hipsFrame);
|
|
86
|
+
// eslint-disable-next-line no-console
|
|
87
|
+
console.log("HiPS minOrder " + descriptor.minOrder);
|
|
56
88
|
this.initShaders();
|
|
57
89
|
// pick initial order from a starting FoV
|
|
58
90
|
const fov = 180;
|
|
@@ -62,39 +94,77 @@ export class HiPS extends AbstractSkyEntity {
|
|
|
62
94
|
this._allSkyTile = null;
|
|
63
95
|
// auto-detect all-sky: original code forces true
|
|
64
96
|
this._allSky = true;
|
|
97
|
+
this.initBaseTiles();
|
|
98
|
+
}
|
|
99
|
+
setOpacity(opacity) {
|
|
100
|
+
if (!Number.isFinite(opacity)) {
|
|
101
|
+
throw new Error(`Invalid HiPS opacity: ${opacity}`);
|
|
102
|
+
}
|
|
103
|
+
this._opacity = Math.min(1, Math.max(0, opacity));
|
|
104
|
+
}
|
|
105
|
+
get opacity() {
|
|
106
|
+
return this._opacity;
|
|
107
|
+
}
|
|
108
|
+
intersectsCoverage(order, pixel) {
|
|
109
|
+
/*
|
|
110
|
+
* While Moc.fits is being resolved, do not start tile requests.
|
|
111
|
+
*
|
|
112
|
+
* Once loading has completed:
|
|
113
|
+
* - valid MOC -> filter using coverage
|
|
114
|
+
* - unavailable MOC -> HiPSCoverage is cleared and normal loading resumes
|
|
115
|
+
*/
|
|
116
|
+
if (!this._coverageResolved) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
return this._coverage.intersectsTile(order, pixel);
|
|
120
|
+
}
|
|
121
|
+
get coverageLoaded() {
|
|
122
|
+
return this._coverage.loaded;
|
|
123
|
+
}
|
|
124
|
+
initBaseTiles() {
|
|
125
|
+
this._ancestorTiles = [];
|
|
126
|
+
this._allSkyTile = null;
|
|
65
127
|
if (this._allSky) {
|
|
66
128
|
this._allSkyTile = new AllSky(this, this._webgl, this._healpixGrid.visibleTilesManager.tileBuffer, super.hipsShaderProgram);
|
|
129
|
+
return;
|
|
67
130
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
this._ancestorTiles.push(new AncestorTile(t, 0, this, this._healpixGrid.visibleTilesManager.tileBuffer, super.hipsShaderProgram, this._webgl));
|
|
71
|
-
}
|
|
131
|
+
for (let t = 0; t < 12; t++) {
|
|
132
|
+
this._ancestorTiles.push(new AncestorTile(t, 0, this, this._healpixGrid.visibleTilesManager.tileBuffer, super.hipsShaderProgram, this._webgl));
|
|
72
133
|
}
|
|
73
134
|
}
|
|
74
135
|
getProperty(key) {
|
|
75
136
|
return this._descriptor.getProperty(key);
|
|
76
137
|
}
|
|
77
138
|
changeFormat(format) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
if (this.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
139
|
+
const normalizedFormat = format.toLowerCase();
|
|
140
|
+
if (!this._descriptor.imgFormats.includes(normalizedFormat)) {
|
|
141
|
+
throw new Error(`HiPS format "${format}" is not supported. ` +
|
|
142
|
+
`Available formats: ${this._descriptor.imgFormats.join(", ")}`);
|
|
143
|
+
}
|
|
144
|
+
if (normalizedFormat === this._format.toLowerCase()) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const tileBuffer = this._healpixGrid.visibleTilesManager.tileBuffer;
|
|
148
|
+
/*
|
|
149
|
+
* Remove Tile instances created using the previous format.
|
|
150
|
+
*
|
|
151
|
+
* TileBuffer invalidates by HiPS identity/base URL rather than by the
|
|
152
|
+
* current format, so both active and cached resources are discarded.
|
|
153
|
+
*/
|
|
154
|
+
tileBuffer.invalidateHiPS(this);
|
|
155
|
+
/*
|
|
156
|
+
* Change format before recreating AllSky/AncestorTile because their
|
|
157
|
+
* constructors read hips.format.
|
|
158
|
+
*/
|
|
159
|
+
this._format = normalizedFormat;
|
|
160
|
+
/*
|
|
161
|
+
* AllSky and AncestorTile also keep the format they were constructed
|
|
162
|
+
* with, so they must be recreated.
|
|
163
|
+
*/
|
|
164
|
+
this.initBaseTiles();
|
|
165
|
+
}
|
|
166
|
+
get availableFormats() {
|
|
167
|
+
return this._descriptor.imgFormats;
|
|
98
168
|
}
|
|
99
169
|
/**
|
|
100
170
|
* Shader colormap switcher
|
|
@@ -107,60 +177,60 @@ export class HiPS extends AbstractSkyEntity {
|
|
|
107
177
|
* 6 -> cubehelix
|
|
108
178
|
*/
|
|
109
179
|
changeColorMap(colorMap) {
|
|
110
|
-
console.log(
|
|
180
|
+
console.log("HiPS.changeColorMap -> shaderProgram", super.hipsShaderProgram.shaderProgram);
|
|
111
181
|
this.colorMap = colorMap;
|
|
112
182
|
switch (colorMap.name) {
|
|
113
|
-
case
|
|
183
|
+
case "grayscale":
|
|
114
184
|
this.colorMapIdx = 1;
|
|
115
185
|
// hipsShaderProgram.setGrayscaleShader()
|
|
116
|
-
this.colorMap = ColorMaps[
|
|
186
|
+
this.colorMap = ColorMaps["grayscale"];
|
|
117
187
|
super.hipsShaderProgram.setGrayscaleShader();
|
|
118
188
|
break;
|
|
119
|
-
case
|
|
189
|
+
case "planck":
|
|
120
190
|
this.colorMapIdx = 2;
|
|
121
|
-
this.colorMap = ColorMaps[
|
|
191
|
+
this.colorMap = ColorMaps["planck"];
|
|
122
192
|
// hipsShaderProgram.setColorMapShader()
|
|
123
193
|
super.hipsShaderProgram.setColorMapShader();
|
|
124
194
|
break;
|
|
125
|
-
case
|
|
195
|
+
case "cmb":
|
|
126
196
|
this.colorMapIdx = 3;
|
|
127
|
-
this.colorMap = ColorMaps[
|
|
197
|
+
this.colorMap = ColorMaps["cmb"];
|
|
128
198
|
// hipsShaderProgram.setColorMapShader()
|
|
129
199
|
super.hipsShaderProgram.setColorMapShader();
|
|
130
200
|
break;
|
|
131
|
-
case
|
|
201
|
+
case "rainbow":
|
|
132
202
|
this.colorMapIdx = 4;
|
|
133
|
-
this.colorMap = ColorMaps[
|
|
203
|
+
this.colorMap = ColorMaps["rainbow"];
|
|
134
204
|
// hipsShaderProgram.setColorMapShader()
|
|
135
205
|
super.hipsShaderProgram.setColorMapShader();
|
|
136
206
|
break;
|
|
137
|
-
case
|
|
207
|
+
case "eosb":
|
|
138
208
|
this.colorMapIdx = 5;
|
|
139
|
-
this.colorMap = ColorMaps[
|
|
209
|
+
this.colorMap = ColorMaps["eosb"];
|
|
140
210
|
super.hipsShaderProgram.setColorMapShader();
|
|
141
211
|
// hipsShaderProgram.setColorMapShader()
|
|
142
212
|
break;
|
|
143
|
-
case
|
|
213
|
+
case "cubehelix":
|
|
144
214
|
this.colorMapIdx = 6;
|
|
145
|
-
this.colorMap = ColorMaps[
|
|
215
|
+
this.colorMap = ColorMaps["cubehelix"];
|
|
146
216
|
super.hipsShaderProgram.setColorMapShader();
|
|
147
217
|
// hipsShaderProgram.setColorMapShader()
|
|
148
218
|
break;
|
|
149
|
-
case
|
|
219
|
+
case "hot":
|
|
150
220
|
this.colorMapIdx = 7;
|
|
151
|
-
this.colorMap = ColorMaps[
|
|
221
|
+
this.colorMap = ColorMaps["hot"];
|
|
152
222
|
super.hipsShaderProgram.setColorMapShader();
|
|
153
223
|
// hipsShaderProgram.setColorMapShader()
|
|
154
224
|
break;
|
|
155
|
-
case
|
|
225
|
+
case "gray":
|
|
156
226
|
this.colorMapIdx = 8;
|
|
157
|
-
this.colorMap = ColorMaps[
|
|
227
|
+
this.colorMap = ColorMaps["gray"];
|
|
158
228
|
super.hipsShaderProgram.setColorMapShader();
|
|
159
229
|
// hipsShaderProgram.setColorMapShader()
|
|
160
230
|
break;
|
|
161
|
-
case
|
|
231
|
+
case "native":
|
|
162
232
|
this.colorMapIdx = 0;
|
|
163
|
-
this.colorMap = ColorMaps[
|
|
233
|
+
this.colorMap = ColorMaps["native"];
|
|
164
234
|
super.hipsShaderProgram.setNativeShader();
|
|
165
235
|
break;
|
|
166
236
|
default:
|
|
@@ -175,6 +245,30 @@ export class HiPS extends AbstractSkyEntity {
|
|
|
175
245
|
// this.shaderProgram = super.hipsShaderProgram.shaderProgram
|
|
176
246
|
// this.shaderProgram = hipsShaderProgram.shaderProgram
|
|
177
247
|
}
|
|
248
|
+
// private selectDefaultFormat(formats: string[]): string {
|
|
249
|
+
// if (formats.includes("fits")) return "fits";
|
|
250
|
+
// if (formats.includes("png")) return "png";
|
|
251
|
+
// if (formats.includes("jpg")) return "jpg";
|
|
252
|
+
// if (formats.length > 0) {
|
|
253
|
+
// return formats[0];
|
|
254
|
+
// }
|
|
255
|
+
// throw new Error("HiPS descriptor does not define a tile format");
|
|
256
|
+
// }
|
|
257
|
+
selectDefaultFormat(formats) {
|
|
258
|
+
if (formats.includes("png"))
|
|
259
|
+
return "png";
|
|
260
|
+
if (formats.includes("jpg"))
|
|
261
|
+
return "jpg";
|
|
262
|
+
if (formats.includes("fits"))
|
|
263
|
+
return "fits";
|
|
264
|
+
if (formats.length > 0) {
|
|
265
|
+
return formats[0];
|
|
266
|
+
}
|
|
267
|
+
throw new Error("HiPS descriptor does not define a tile format");
|
|
268
|
+
}
|
|
269
|
+
get dataRange() {
|
|
270
|
+
return this._descriptor.dataRange;
|
|
271
|
+
}
|
|
178
272
|
getCurrentHealpixOrder() {
|
|
179
273
|
return this._visibleorder;
|
|
180
274
|
}
|
|
@@ -184,7 +278,7 @@ export class HiPS extends AbstractSkyEntity {
|
|
|
184
278
|
? this._healpixGrid.visibleTilesManager.galVisibleTilesByOrder
|
|
185
279
|
: this._healpixGrid.visibleTilesManager.visibleTilesByOrder;
|
|
186
280
|
return {
|
|
187
|
-
activeBaseLayer:
|
|
281
|
+
activeBaseLayer: "hips",
|
|
188
282
|
hipsName: this._descriptor.surveyName,
|
|
189
283
|
hipsUrl: this._baseurl,
|
|
190
284
|
isGalactic: this.isGalacticHips,
|
|
@@ -216,16 +310,10 @@ export class HiPS extends AbstractSkyEntity {
|
|
|
216
310
|
super.hipsShaderProgram.setRuntimeColorMap(this.colorMap);
|
|
217
311
|
if (this._allSky && this._allSkyTile) {
|
|
218
312
|
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);
|
|
313
|
+
this._allSkyTile.draw(this._healpixGrid.visibleTilesManager.galVisibleTilesByOrder.order, this._healpixGrid.visibleTilesManager.galAncestorsMap, pMatrix, vMatrix, mMatrix, this.colorMapIdx);
|
|
223
314
|
}
|
|
224
315
|
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);
|
|
316
|
+
this._allSkyTile.draw(this._healpixGrid.visibleTilesManager.visibleTilesByOrder.order, this._healpixGrid.visibleTilesManager.ancestorsMap, pMatrix, vMatrix, mMatrix, this.colorMapIdx);
|
|
229
317
|
}
|
|
230
318
|
return;
|
|
231
319
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HiPS.js","sourceRoot":"","sources":["../../../src/model/hips/HiPS.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,
|
|
1
|
+
{"version":3,"file":"HiPS.js","sourceRoot":"","sources":["../../../src/model/hips/HiPS.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare class HiPSCoverage {
|
|
2
|
+
intersec(intersec: any, arg1: any): void;
|
|
3
|
+
ises(ises: any, expents: any, of: any, arg3: any): any;
|
|
4
|
+
intersexpect(co: any, t: any, expe: any, arg3: any): any;
|
|
5
|
+
intersectsT19(intersectsT19: any, arg1: any): any;
|
|
6
|
+
private _maxOrder;
|
|
7
|
+
private _intervals;
|
|
8
|
+
private _loaded;
|
|
9
|
+
get loaded(): boolean;
|
|
10
|
+
get maxOrder(): number;
|
|
11
|
+
get intervalCount(): number;
|
|
12
|
+
clear(): void;
|
|
13
|
+
load(baseUrl: string | URL): Promise<void>;
|
|
14
|
+
loadMoc(mocUrl: string): Promise<void>;
|
|
15
|
+
intersectsTile(order: number, pixel: number): boolean;
|
|
16
|
+
private intersectsInterval;
|
|
17
|
+
private static decodeUniq;
|
|
18
|
+
private static mergeIntervals;
|
|
19
|
+
}
|
|
20
|
+
//# 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,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;IAGjC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG;IAGtD,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG;IAGxD,aAAa,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG;IAGjD,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,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgE5C,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"}
|