astro-viewer 3.10.0 → 3.11.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/README.md +66 -4
- package/dist/astroviewer.cjs +353 -8
- package/dist/astroviewer.cjs.map +1 -1
- package/dist/astroviewer.js +353 -8
- 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 +1 -0
- package/lib-esm/AstroSphere.d.ts.map +1 -1
- package/lib-esm/AstroSphere.js +15 -0
- package/lib-esm/AstroSphere.js.map +1 -1
- package/lib-esm/AstroViewer.d.ts +1 -0
- package/lib-esm/AstroViewer.d.ts.map +1 -1
- package/lib-esm/AstroViewer.js +3 -0
- package/lib-esm/AstroViewer.js.map +1 -1
- package/lib-esm/Camera.d.ts +6 -0
- package/lib-esm/Camera.d.ts.map +1 -1
- package/lib-esm/Camera.js +102 -8
- package/lib-esm/Camera.js.map +1 -1
- package/lib-esm/model/Source.d.ts +11 -0
- package/lib-esm/model/Source.d.ts.map +1 -1
- package/lib-esm/model/Source.js +7 -0
- package/lib-esm/model/Source.js.map +1 -1
- package/lib-esm/model/catalogues/CatalogueGL.d.ts +23 -1
- package/lib-esm/model/catalogues/CatalogueGL.d.ts.map +1 -1
- package/lib-esm/model/catalogues/CatalogueGL.js +223 -1
- package/lib-esm/model/catalogues/CatalogueGL.js.map +1 -1
- package/package.json +1 -1
package/lib-esm/Camera.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { vec3, mat4 } from "gl-matrix";
|
|
15
15
|
import { astroDegToSpherical, cartesianToSpherical, sphericalToCartesian, } from "./utils/Utils.js";
|
|
16
|
-
import global from
|
|
16
|
+
import global from "./Global.js";
|
|
17
17
|
class Camera {
|
|
18
18
|
insideSphere = false;
|
|
19
19
|
cam_pos = vec3.create(); // camera position
|
|
@@ -32,6 +32,7 @@ class Camera {
|
|
|
32
32
|
lockRotX = false;
|
|
33
33
|
lockRotY = false;
|
|
34
34
|
lockRotZ = false;
|
|
35
|
+
flyToAnimation = null;
|
|
35
36
|
constructor(in_position, in_sphere) {
|
|
36
37
|
this.init(in_position, in_sphere);
|
|
37
38
|
}
|
|
@@ -41,7 +42,11 @@ class Camera {
|
|
|
41
42
|
this.vMatrix = mat4.create();
|
|
42
43
|
this.T = mat4.create();
|
|
43
44
|
this.R = mat4.create();
|
|
44
|
-
mat4.translate(this.T, this.T, [
|
|
45
|
+
mat4.translate(this.T, this.T, [
|
|
46
|
+
this.cam_pos[0],
|
|
47
|
+
this.cam_pos[1],
|
|
48
|
+
this.cam_pos[2],
|
|
49
|
+
]);
|
|
45
50
|
// reset helpers
|
|
46
51
|
this.FoV = this.previousFoV = 180.0;
|
|
47
52
|
this.move = vec3.clone([0, 0, 0]);
|
|
@@ -50,11 +55,15 @@ class Camera {
|
|
|
50
55
|
this.goTo(raDeg, decDeg);
|
|
51
56
|
}
|
|
52
57
|
goTo(raDeg, decDeg) {
|
|
58
|
+
this.cancelFlyTo();
|
|
53
59
|
this.goToPhiTheta(astroDegToSpherical(raDeg, decDeg));
|
|
54
60
|
}
|
|
55
61
|
goToPhiTheta(ptDeg) {
|
|
56
62
|
const xyz = sphericalToCartesian(ptDeg.phi, ptDeg.theta, this.cam_pos[2]);
|
|
57
|
-
|
|
63
|
+
this.applyCameraPosition(vec3.fromValues(xyz[0], xyz[1], xyz[2]));
|
|
64
|
+
}
|
|
65
|
+
applyCameraPosition(cameraPosition) {
|
|
66
|
+
const targetDirection = vec3.normalize(vec3.create(), cameraPosition);
|
|
58
67
|
const celestialNorth = vec3.fromValues(0.0, 0.0, 1.0);
|
|
59
68
|
const northProjection = vec3.scale(vec3.create(), targetDirection, vec3.dot(celestialNorth, targetDirection));
|
|
60
69
|
const cameraUp = vec3.subtract(vec3.create(), celestialNorth, northProjection);
|
|
@@ -65,9 +74,13 @@ class Camera {
|
|
|
65
74
|
vec3.normalize(cameraUp, cameraUp);
|
|
66
75
|
}
|
|
67
76
|
let cameraMatrix = mat4.create();
|
|
68
|
-
cameraMatrix = mat4.translate(cameraMatrix, cameraMatrix,
|
|
77
|
+
cameraMatrix = mat4.translate(cameraMatrix, cameraMatrix, cameraPosition);
|
|
69
78
|
const focusPoint = [0.0, 0.0, 0.0];
|
|
70
|
-
const cameraPos = [
|
|
79
|
+
const cameraPos = [
|
|
80
|
+
cameraMatrix[12],
|
|
81
|
+
cameraMatrix[13],
|
|
82
|
+
cameraMatrix[14],
|
|
83
|
+
];
|
|
71
84
|
cameraMatrix = mat4.targetTo(cameraMatrix, cameraPos, focusPoint, cameraUp);
|
|
72
85
|
this.R = mat4.clone(cameraMatrix);
|
|
73
86
|
this.R[12] = 0;
|
|
@@ -79,6 +92,81 @@ class Camera {
|
|
|
79
92
|
}
|
|
80
93
|
this.vMatrix = viewMatrix;
|
|
81
94
|
}
|
|
95
|
+
flyTo(raDeg, decDeg, durationMs = 1200) {
|
|
96
|
+
const targetSpherical = astroDegToSpherical(raDeg, decDeg);
|
|
97
|
+
const targetPositionValues = sphericalToCartesian(targetSpherical.phi, targetSpherical.theta, this.cam_pos[2]);
|
|
98
|
+
const targetPosition = vec3.fromValues(targetPositionValues[0], targetPositionValues[1], targetPositionValues[2]);
|
|
99
|
+
const currentPosition = this.getCameraPosition();
|
|
100
|
+
const startDirection = vec3.normalize(vec3.create(), vec3.fromValues(currentPosition[0], currentPosition[1], currentPosition[2]));
|
|
101
|
+
const targetDirection = vec3.normalize(vec3.create(), targetPosition);
|
|
102
|
+
this.flyToAnimation = {
|
|
103
|
+
startDirection,
|
|
104
|
+
targetDirection,
|
|
105
|
+
targetPosition,
|
|
106
|
+
startTime: performance.now(),
|
|
107
|
+
durationMs: Math.max(1, durationMs),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
updateFlyTo(now) {
|
|
111
|
+
const animation = this.flyToAnimation;
|
|
112
|
+
if (!animation) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
const elapsed = now - animation.startTime;
|
|
116
|
+
const progress = Math.min(1, elapsed / animation.durationMs);
|
|
117
|
+
const easedProgress = progress < 0.5
|
|
118
|
+
? 4 * progress * progress * progress
|
|
119
|
+
: 1 - Math.pow(-2 * progress + 2, 3) / 2;
|
|
120
|
+
const direction = this.slerpDirection(animation.startDirection, animation.targetDirection, easedProgress);
|
|
121
|
+
const radius = Math.abs(this.cam_pos[2]);
|
|
122
|
+
const cameraPosition = vec3.scale(vec3.create(), direction, radius);
|
|
123
|
+
this.applyCameraPosition(cameraPosition);
|
|
124
|
+
if (progress >= 1) {
|
|
125
|
+
this.applyCameraPosition(animation.targetPosition);
|
|
126
|
+
this.flyToAnimation = null;
|
|
127
|
+
}
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
slerpDirection(start, end, t) {
|
|
131
|
+
const dot = Math.max(-1, Math.min(1, vec3.dot(start, end)));
|
|
132
|
+
/*
|
|
133
|
+
* For almost identical directions, normalized linear interpolation is
|
|
134
|
+
* numerically more stable than the general SLERP formula.
|
|
135
|
+
*/
|
|
136
|
+
if (dot > 0.999999) {
|
|
137
|
+
const result = vec3.lerp(vec3.create(), start, end, t);
|
|
138
|
+
return vec3.normalize(result, result);
|
|
139
|
+
}
|
|
140
|
+
/*
|
|
141
|
+
* The normal SLERP formula becomes singular for antipodal vectors because
|
|
142
|
+
* sin(pi) = 0. In that case choose a stable vector orthogonal to start and
|
|
143
|
+
* rotate through that great circle.
|
|
144
|
+
*/
|
|
145
|
+
if (dot < -0.999999) {
|
|
146
|
+
const referenceAxis = Math.abs(start[0]) < 0.9
|
|
147
|
+
? vec3.fromValues(1, 0, 0)
|
|
148
|
+
: vec3.fromValues(0, 1, 0);
|
|
149
|
+
const orthogonal = vec3.cross(vec3.create(), start, referenceAxis);
|
|
150
|
+
vec3.normalize(orthogonal, orthogonal);
|
|
151
|
+
const angle = Math.PI * t;
|
|
152
|
+
const result = vec3.create();
|
|
153
|
+
vec3.scale(result, start, Math.cos(angle));
|
|
154
|
+
vec3.scaleAndAdd(result, result, orthogonal, Math.sin(angle));
|
|
155
|
+
return vec3.normalize(result, result);
|
|
156
|
+
}
|
|
157
|
+
const angle = Math.acos(dot);
|
|
158
|
+
const sinAngle = Math.sin(angle);
|
|
159
|
+
const startWeight = Math.sin((1 - t) * angle) / sinAngle;
|
|
160
|
+
const endWeight = Math.sin(t * angle) / sinAngle;
|
|
161
|
+
const result = vec3.create();
|
|
162
|
+
result[0] = start[0] * startWeight + end[0] * endWeight;
|
|
163
|
+
result[1] = start[1] * startWeight + end[1] * endWeight;
|
|
164
|
+
result[2] = start[2] * startWeight + end[2] * endWeight;
|
|
165
|
+
return vec3.normalize(result, result);
|
|
166
|
+
}
|
|
167
|
+
cancelFlyTo() {
|
|
168
|
+
this.flyToAnimation = null;
|
|
169
|
+
}
|
|
82
170
|
toggleInsideSphere() {
|
|
83
171
|
// if (inside !== global.insideSphere) {
|
|
84
172
|
// global.insideSphere = inside;
|
|
@@ -336,9 +424,15 @@ class Camera {
|
|
|
336
424
|
clearRotationLock() {
|
|
337
425
|
this.lockRotX = this.lockRotY = this.lockRotZ = false;
|
|
338
426
|
}
|
|
339
|
-
isRotationLockedX() {
|
|
340
|
-
|
|
341
|
-
|
|
427
|
+
isRotationLockedX() {
|
|
428
|
+
return this.lockRotX;
|
|
429
|
+
}
|
|
430
|
+
isRotationLockedY() {
|
|
431
|
+
return this.lockRotY;
|
|
432
|
+
}
|
|
433
|
+
isRotationLockedZ() {
|
|
434
|
+
return this.lockRotZ;
|
|
435
|
+
}
|
|
342
436
|
}
|
|
343
437
|
export default Camera;
|
|
344
438
|
//# sourceMappingURL=Camera.js.map
|
package/lib-esm/Camera.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Camera.js","sourceRoot":"","sources":["../src/Camera.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Camera.js","sourceRoot":"","sources":["../src/Camera.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,14 @@ export interface SourceDetail {
|
|
|
5
5
|
valueType?: string;
|
|
6
6
|
unit?: string;
|
|
7
7
|
}
|
|
8
|
+
export type SourceMediaKind = 'circle' | 'icon' | 'sprite' | 'image' | 'model';
|
|
9
|
+
export interface SourceMediaStyle {
|
|
10
|
+
kind: SourceMediaKind;
|
|
11
|
+
src?: string;
|
|
12
|
+
scale?: number;
|
|
13
|
+
rotationDeg?: number;
|
|
14
|
+
opacity?: number;
|
|
15
|
+
}
|
|
8
16
|
export declare class Source {
|
|
9
17
|
private _point;
|
|
10
18
|
private _name?;
|
|
@@ -12,6 +20,7 @@ export declare class Source {
|
|
|
12
20
|
private _h_pix;
|
|
13
21
|
private _shapesize;
|
|
14
22
|
private _brightnessFactor;
|
|
23
|
+
private _mediaStyle?;
|
|
15
24
|
/**
|
|
16
25
|
* @param in_point Point.js (Cartesian/RA-Dec wrapper)
|
|
17
26
|
* @param in_details Optional array of key/value metadata
|
|
@@ -30,5 +39,7 @@ export declare class Source {
|
|
|
30
39
|
* @param factor Must be in [-1..1]
|
|
31
40
|
*/
|
|
32
41
|
set brightnessFactor(factor: number);
|
|
42
|
+
get mediaStyle(): SourceMediaStyle | undefined;
|
|
43
|
+
set mediaStyle(style: SourceMediaStyle | undefined);
|
|
33
44
|
}
|
|
34
45
|
//# sourceMappingURL=Source.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Source.d.ts","sourceRoot":"","sources":["../../src/model/Source.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEjC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAAS;
|
|
1
|
+
{"version":3,"file":"Source.d.ts","sourceRoot":"","sources":["../../src/model/Source.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEjC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAE/E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,WAAW,CAAC,CAAmB;IAEvC;;;OAGG;gBACS,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAE,GAAG,EAAO;IASnD,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS;IAO5D,IAAI,OAAO,IAAI,GAAG,EAAE,CAEnB;IACD,OAAO,CAAC,mBAAmB;IAS3B,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IACD,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAEzB;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IACD;;OAEG;IACH,IAAI,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAElC;IAED,IAAI,UAAU,IAAI,gBAAgB,GAAG,SAAS,CAE7C;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,EAEjD;CACF"}
|
package/lib-esm/model/Source.js
CHANGED
|
@@ -18,6 +18,7 @@ export class Source {
|
|
|
18
18
|
_h_pix;
|
|
19
19
|
_shapesize;
|
|
20
20
|
_brightnessFactor;
|
|
21
|
+
_mediaStyle;
|
|
21
22
|
/**
|
|
22
23
|
* @param in_point Point.js (Cartesian/RA-Dec wrapper)
|
|
23
24
|
* @param in_details Optional array of key/value metadata
|
|
@@ -70,5 +71,11 @@ export class Source {
|
|
|
70
71
|
set brightnessFactor(factor) {
|
|
71
72
|
this._brightnessFactor = factor;
|
|
72
73
|
}
|
|
74
|
+
get mediaStyle() {
|
|
75
|
+
return this._mediaStyle;
|
|
76
|
+
}
|
|
77
|
+
set mediaStyle(style) {
|
|
78
|
+
this._mediaStyle = style;
|
|
79
|
+
}
|
|
73
80
|
}
|
|
74
81
|
//# sourceMappingURL=Source.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Source.js","sourceRoot":"","sources":["../../src/model/Source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,CAAC;AAEb,OAAO,EAAW,IAAI,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,MAAM,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Source.js","sourceRoot":"","sources":["../../src/model/Source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,CAAC;AAEb,OAAO,EAAW,IAAI,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,MAAM,MAAM,cAAc,CAAC;AAoBlC,MAAM,OAAO,MAAM;IACT,MAAM,CAAQ;IACd,KAAK,CAAU;IACf,QAAQ,CAAQ;IAChB,MAAM,CAAU;IAChB,UAAU,CAAS;IACnB,iBAAiB,CAAS;IAC1B,WAAW,CAAoB;IAEvC;;;OAGG;IACH,YAAY,QAAe,EAAE,aAAoB,EAAE;QACjD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAE7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,gBAAgB,CAAC,KAAa;QAC5B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACO,mBAAmB;QACzB,mCAAmC;QACnC,wEAAwE;QACxE,MAAM,OAAO,GAAY,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,IAAI,SAAS,CAAC,IAAY;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IACD;;OAEG;IACH,IAAI,gBAAgB,CAAC,MAAc;QACjC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;IAClC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU,CAAC,KAAmC;QAChD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -16,6 +16,16 @@ export type CataloguePickResult = {
|
|
|
16
16
|
sources: Source[];
|
|
17
17
|
pickedIndexes: number[];
|
|
18
18
|
};
|
|
19
|
+
export type CatalogueMediaColumns = {
|
|
20
|
+
type?: string;
|
|
21
|
+
src?: string;
|
|
22
|
+
scale?: string;
|
|
23
|
+
rotation?: string;
|
|
24
|
+
opacity?: string;
|
|
25
|
+
};
|
|
26
|
+
export type CatalogueAddSourcesOptions = {
|
|
27
|
+
mediaColumns?: CatalogueMediaColumns;
|
|
28
|
+
};
|
|
19
29
|
export declare class CatalogueGL {
|
|
20
30
|
_kind: string;
|
|
21
31
|
static ELEM_SIZE: number;
|
|
@@ -42,6 +52,9 @@ export declare class CatalogueGL {
|
|
|
42
52
|
_providerUrl: string;
|
|
43
53
|
_catalogueShaderProgram: CatalogueShaderProgram;
|
|
44
54
|
private _visibleTilesManager;
|
|
55
|
+
private _mediaOverlayHost;
|
|
56
|
+
private _mediaElements;
|
|
57
|
+
private _svgMediaDataUrls;
|
|
45
58
|
constructor(catalogueName: string, catalogueDescription: string, providerUrl: string, metadataManager: MetadataManager, webgl: WebGL2RenderingContext, visibleTilesManager: VisibleTilesManager);
|
|
46
59
|
setIsVisible(visibility: boolean): void;
|
|
47
60
|
get shapeColor(): string;
|
|
@@ -61,8 +74,17 @@ export declare class CatalogueGL {
|
|
|
61
74
|
* @param in_data Rows of TAP results
|
|
62
75
|
* @param columnsmeta TapMetadataList (unused here because `CatalogueProps` already holds indices)
|
|
63
76
|
*/
|
|
64
|
-
addSources(in_data: any[][], columnsmeta: MetadataColumn[]): void;
|
|
77
|
+
addSources(in_data: any[][], columnsmeta: MetadataColumn[], options?: CatalogueAddSourcesOptions): void;
|
|
78
|
+
private getColumnIndex;
|
|
79
|
+
private readCell;
|
|
80
|
+
private extractMediaStyle;
|
|
65
81
|
clearSources(): void;
|
|
82
|
+
private clearMediaOverlay;
|
|
83
|
+
private ensureMediaOverlayHost;
|
|
84
|
+
private ensureMediaElement;
|
|
85
|
+
private loadSvgMediaAsDataUrl;
|
|
86
|
+
private isSourceOnVisibleHemisphere;
|
|
87
|
+
private updateMediaOverlay;
|
|
66
88
|
private sourceMatches;
|
|
67
89
|
private findSourceIndex;
|
|
68
90
|
extHighlightSource(source: Source, highlighted: boolean): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CatalogueGL.d.ts","sourceRoot":"","sources":["../../../src/model/catalogues/CatalogueGL.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"CatalogueGL.d.ts","sourceRoot":"","sources":["../../../src/model/catalogues/CatalogueGL.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,8 @@ import { CoordsType } from "../..//utils/CoordsType.js";
|
|
|
14
14
|
import { colorHex2RGB } from "../../utils/Utils.js";
|
|
15
15
|
import { CatalogueShaderProgram } from "../../shader/CatalogueShaderProgram.js";
|
|
16
16
|
import { MetadataManager } from "../MetadataManager.js";
|
|
17
|
+
import { mat4, vec3, vec4 } from "gl-matrix";
|
|
18
|
+
import global from "../../Global.js";
|
|
17
19
|
export class CatalogueGL {
|
|
18
20
|
_kind = "CatalogueGL";
|
|
19
21
|
static ELEM_SIZE = 6;
|
|
@@ -45,6 +47,9 @@ export class CatalogueGL {
|
|
|
45
47
|
_providerUrl;
|
|
46
48
|
_catalogueShaderProgram;
|
|
47
49
|
_visibleTilesManager;
|
|
50
|
+
_mediaOverlayHost = null;
|
|
51
|
+
_mediaElements = [];
|
|
52
|
+
_svgMediaDataUrls = new Map();
|
|
48
53
|
constructor(catalogueName, catalogueDescription, providerUrl, metadataManager, webgl, visibleTilesManager) {
|
|
49
54
|
this._webgl = webgl;
|
|
50
55
|
this._ready = false;
|
|
@@ -215,9 +220,10 @@ export class CatalogueGL {
|
|
|
215
220
|
* @param in_data Rows of TAP results
|
|
216
221
|
* @param columnsmeta TapMetadataList (unused here because `CatalogueProps` already holds indices)
|
|
217
222
|
*/
|
|
218
|
-
addSources(in_data, columnsmeta) {
|
|
223
|
+
addSources(in_data, columnsmeta, options = {}) {
|
|
219
224
|
this._ready = false;
|
|
220
225
|
this._sources = [];
|
|
226
|
+
this.clearMediaOverlay();
|
|
221
227
|
this._metadataManager = new MetadataManager(columnsmeta);
|
|
222
228
|
// const raDataIndex = (this.catalogueProps.raColumn as any).index ?? (this.catalogueProps.raColumn as any)._index;
|
|
223
229
|
// const decDataIndex = (this.catalogueProps.decColumn as any).index ?? (this.catalogueProps.decColumn as any)._index;
|
|
@@ -231,6 +237,10 @@ export class CatalogueGL {
|
|
|
231
237
|
decDeg: in_data[j][decDataIndex],
|
|
232
238
|
}, CoordsType.ASTRO);
|
|
233
239
|
const source = new Source(point, in_data[j]);
|
|
240
|
+
const mediaStyle = this.extractMediaStyle(in_data[j], columnsmeta, options.mediaColumns);
|
|
241
|
+
if (mediaStyle) {
|
|
242
|
+
source.mediaStyle = mediaStyle;
|
|
243
|
+
}
|
|
234
244
|
// Ensure optional fields exist
|
|
235
245
|
source.shapeSize = source.shapeSize ?? CatalogueGL.STANDARD_SHAPE_SIZE;
|
|
236
246
|
source.brightnessFactor = 3;
|
|
@@ -250,11 +260,222 @@ export class CatalogueGL {
|
|
|
250
260
|
this._ready = true;
|
|
251
261
|
this._bufferInitialised = false;
|
|
252
262
|
}
|
|
263
|
+
getColumnIndex(columnsmeta, columnName) {
|
|
264
|
+
if (!columnName)
|
|
265
|
+
return -1;
|
|
266
|
+
return columnsmeta.find((column) => column.name === columnName)?.index ?? -1;
|
|
267
|
+
}
|
|
268
|
+
readCell(row, columnsmeta, columnName) {
|
|
269
|
+
const idx = this.getColumnIndex(columnsmeta, columnName);
|
|
270
|
+
return idx >= 0 ? row[idx] : undefined;
|
|
271
|
+
}
|
|
272
|
+
extractMediaStyle(row, columnsmeta, mediaColumns) {
|
|
273
|
+
if (!mediaColumns?.src)
|
|
274
|
+
return undefined;
|
|
275
|
+
const rawSrc = this.readCell(row, columnsmeta, mediaColumns.src);
|
|
276
|
+
const src = String(rawSrc ?? "").trim();
|
|
277
|
+
if (!src)
|
|
278
|
+
return undefined;
|
|
279
|
+
const rawKind = String(this.readCell(row, columnsmeta, mediaColumns.type) ?? "sprite").trim().toLowerCase();
|
|
280
|
+
const kind = rawKind === "model"
|
|
281
|
+
? "model"
|
|
282
|
+
: rawKind === "image"
|
|
283
|
+
? "image"
|
|
284
|
+
: rawKind === "icon"
|
|
285
|
+
? "icon"
|
|
286
|
+
: rawKind === "circle"
|
|
287
|
+
? "circle"
|
|
288
|
+
: "sprite";
|
|
289
|
+
if (kind === "circle" || kind === "model")
|
|
290
|
+
return undefined;
|
|
291
|
+
const scale = Number(this.readCell(row, columnsmeta, mediaColumns.scale));
|
|
292
|
+
const rotationDeg = Number(this.readCell(row, columnsmeta, mediaColumns.rotation));
|
|
293
|
+
const opacity = Number(this.readCell(row, columnsmeta, mediaColumns.opacity));
|
|
294
|
+
return {
|
|
295
|
+
kind,
|
|
296
|
+
src,
|
|
297
|
+
scale: Number.isFinite(scale) && scale > 0 ? scale : undefined,
|
|
298
|
+
rotationDeg: Number.isFinite(rotationDeg) ? rotationDeg : undefined,
|
|
299
|
+
opacity: Number.isFinite(opacity) ? Math.max(0, Math.min(1, opacity)) : undefined,
|
|
300
|
+
};
|
|
301
|
+
}
|
|
253
302
|
clearSources() {
|
|
254
303
|
this._sources = [];
|
|
255
304
|
this.hoveredIndexes = [];
|
|
256
305
|
this._healpixDensityMap.clear();
|
|
257
306
|
this.vertexCataloguePosition = new Float32Array(0);
|
|
307
|
+
this.clearMediaOverlay();
|
|
308
|
+
}
|
|
309
|
+
clearMediaOverlay() {
|
|
310
|
+
this._mediaElements.forEach((el) => el.remove());
|
|
311
|
+
this._mediaElements = [];
|
|
312
|
+
if (this._mediaOverlayHost) {
|
|
313
|
+
this._mediaOverlayHost.remove();
|
|
314
|
+
this._mediaOverlayHost = null;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
ensureMediaOverlayHost() {
|
|
318
|
+
const canvas = this._webgl?.canvas;
|
|
319
|
+
const parent = canvas?.parentElement;
|
|
320
|
+
if (!canvas || !parent)
|
|
321
|
+
return null;
|
|
322
|
+
const parentStyle = window.getComputedStyle(parent);
|
|
323
|
+
if (parentStyle.position === "static") {
|
|
324
|
+
parent.style.position = "relative";
|
|
325
|
+
}
|
|
326
|
+
if (!this._mediaOverlayHost) {
|
|
327
|
+
const host = document.createElement("div");
|
|
328
|
+
host.dataset.astroCatalogueMedia = "true";
|
|
329
|
+
host.style.position = "absolute";
|
|
330
|
+
host.style.left = `${canvas.offsetLeft}px`;
|
|
331
|
+
host.style.top = `${canvas.offsetTop}px`;
|
|
332
|
+
host.style.width = `${canvas.clientWidth}px`;
|
|
333
|
+
host.style.height = `${canvas.clientHeight}px`;
|
|
334
|
+
host.style.pointerEvents = "none";
|
|
335
|
+
host.style.overflow = "hidden";
|
|
336
|
+
host.style.zIndex = "4";
|
|
337
|
+
canvas.style.position = canvas.style.position || "relative";
|
|
338
|
+
canvas.style.zIndex = canvas.style.zIndex || "0";
|
|
339
|
+
parent.appendChild(host);
|
|
340
|
+
this._mediaOverlayHost = host;
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
this._mediaOverlayHost.style.left = `${canvas.offsetLeft}px`;
|
|
344
|
+
this._mediaOverlayHost.style.top = `${canvas.offsetTop}px`;
|
|
345
|
+
this._mediaOverlayHost.style.width = `${canvas.clientWidth}px`;
|
|
346
|
+
this._mediaOverlayHost.style.height = `${canvas.clientHeight}px`;
|
|
347
|
+
}
|
|
348
|
+
return this._mediaOverlayHost;
|
|
349
|
+
}
|
|
350
|
+
ensureMediaElement(index, style) {
|
|
351
|
+
let img = this._mediaElements[index];
|
|
352
|
+
if (!img) {
|
|
353
|
+
img = document.createElement("img");
|
|
354
|
+
img.loading = "lazy";
|
|
355
|
+
img.decoding = "async";
|
|
356
|
+
img.style.position = "absolute";
|
|
357
|
+
img.style.objectFit = "contain";
|
|
358
|
+
img.style.pointerEvents = "none";
|
|
359
|
+
img.style.transformOrigin = "center center";
|
|
360
|
+
img.style.filter = "drop-shadow(0 1px 2px rgba(0, 0, 0, 0.55))";
|
|
361
|
+
img.style.willChange = "transform, left, top";
|
|
362
|
+
this._mediaElements[index] = img;
|
|
363
|
+
}
|
|
364
|
+
const src = String(style.src ?? "").trim();
|
|
365
|
+
const resolvedSrc = src ? new URL(src, document.baseURI).href : "";
|
|
366
|
+
if (resolvedSrc && img.getAttribute("src") !== resolvedSrc) {
|
|
367
|
+
img.removeAttribute("data-astro-media-src-index");
|
|
368
|
+
img.removeAttribute("data-astro-media-loaded");
|
|
369
|
+
img.onerror = null;
|
|
370
|
+
img.onload = null;
|
|
371
|
+
img.setAttribute("src", resolvedSrc);
|
|
372
|
+
if (/\.svg(?:[?#].*)?$/i.test(resolvedSrc)) {
|
|
373
|
+
void this.loadSvgMediaAsDataUrl(img, resolvedSrc);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
return img;
|
|
377
|
+
}
|
|
378
|
+
async loadSvgMediaAsDataUrl(img, resolvedSrc) {
|
|
379
|
+
try {
|
|
380
|
+
let dataUrl = this._svgMediaDataUrls.get(resolvedSrc);
|
|
381
|
+
if (!dataUrl) {
|
|
382
|
+
const response = await fetch(resolvedSrc);
|
|
383
|
+
if (!response.ok)
|
|
384
|
+
return;
|
|
385
|
+
const svg = await response.text();
|
|
386
|
+
if (!/^\s*<svg[\s>]/i.test(svg))
|
|
387
|
+
return;
|
|
388
|
+
dataUrl = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svg)}`;
|
|
389
|
+
this._svgMediaDataUrls.set(resolvedSrc, dataUrl);
|
|
390
|
+
}
|
|
391
|
+
if (img.getAttribute("src") === resolvedSrc) {
|
|
392
|
+
img.setAttribute("src", dataUrl);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
catch {
|
|
396
|
+
// Keep the direct image src; remote servers may already provide a valid MIME type.
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
isSourceOnVisibleHemisphere(source, in_mMatrix, vMatrix) {
|
|
400
|
+
if (global.insideSphere)
|
|
401
|
+
return true;
|
|
402
|
+
const invView = mat4.create();
|
|
403
|
+
if (!mat4.invert(invView, vMatrix))
|
|
404
|
+
return true;
|
|
405
|
+
const cameraPos = vec3.fromValues(invView[12], invView[13], invView[14]);
|
|
406
|
+
const worldPoint4 = vec4.fromValues(source.point.x, source.point.y, source.point.z, 1);
|
|
407
|
+
vec4.transformMat4(worldPoint4, worldPoint4, in_mMatrix);
|
|
408
|
+
const worldPoint = vec3.fromValues(worldPoint4[0], worldPoint4[1], worldPoint4[2]);
|
|
409
|
+
const normal = vec3.normalize(vec3.create(), worldPoint);
|
|
410
|
+
const toCamera = vec3.subtract(vec3.create(), cameraPos, worldPoint);
|
|
411
|
+
return vec3.dot(normal, toCamera) > 0;
|
|
412
|
+
}
|
|
413
|
+
updateMediaOverlay(in_mMatrix, vMatrix, pMatrix) {
|
|
414
|
+
const sourcesWithMedia = this._sources.filter((source) => !!source.mediaStyle?.src);
|
|
415
|
+
if (!sourcesWithMedia.length) {
|
|
416
|
+
this.clearMediaOverlay();
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
const host = this.ensureMediaOverlayHost();
|
|
420
|
+
const canvas = this._webgl.canvas;
|
|
421
|
+
if (!host || !canvas.clientWidth || !canvas.clientHeight)
|
|
422
|
+
return;
|
|
423
|
+
const modelView = mat4.create();
|
|
424
|
+
const mvp = mat4.create();
|
|
425
|
+
mat4.multiply(modelView, vMatrix, in_mMatrix);
|
|
426
|
+
mat4.multiply(mvp, pMatrix, modelView);
|
|
427
|
+
const width = canvas.clientWidth;
|
|
428
|
+
const height = canvas.clientHeight;
|
|
429
|
+
for (let i = 0; i < this._sources.length; i++) {
|
|
430
|
+
const source = this._sources[i];
|
|
431
|
+
const style = source.mediaStyle;
|
|
432
|
+
const img = this._mediaElements[i];
|
|
433
|
+
if (!style?.src) {
|
|
434
|
+
if (img)
|
|
435
|
+
img.style.display = "none";
|
|
436
|
+
continue;
|
|
437
|
+
}
|
|
438
|
+
if (!this.isSourceOnVisibleHemisphere(source, in_mMatrix, vMatrix)) {
|
|
439
|
+
if (img)
|
|
440
|
+
img.style.display = "none";
|
|
441
|
+
continue;
|
|
442
|
+
}
|
|
443
|
+
const projected = vec4.fromValues(source.point.x, source.point.y, source.point.z, 1);
|
|
444
|
+
vec4.transformMat4(projected, projected, mvp);
|
|
445
|
+
if (!projected[3]) {
|
|
446
|
+
if (img)
|
|
447
|
+
img.style.display = "none";
|
|
448
|
+
continue;
|
|
449
|
+
}
|
|
450
|
+
const ndcX = projected[0] / projected[3];
|
|
451
|
+
const ndcY = projected[1] / projected[3];
|
|
452
|
+
const ndcZ = projected[2] / projected[3];
|
|
453
|
+
if (ndcX < -1.15 ||
|
|
454
|
+
ndcX > 1.15 ||
|
|
455
|
+
ndcY < -1.15 ||
|
|
456
|
+
ndcY > 1.15 ||
|
|
457
|
+
ndcZ < -1.15 ||
|
|
458
|
+
ndcZ > 1.15) {
|
|
459
|
+
if (img)
|
|
460
|
+
img.style.display = "none";
|
|
461
|
+
continue;
|
|
462
|
+
}
|
|
463
|
+
const mediaEl = this.ensureMediaElement(i, style);
|
|
464
|
+
if (!mediaEl.parentElement)
|
|
465
|
+
host.appendChild(mediaEl);
|
|
466
|
+
const px = (ndcX * 0.5 + 0.5) * width;
|
|
467
|
+
const py = (1 - (ndcY * 0.5 + 0.5)) * height;
|
|
468
|
+
const baseSize = source.shapeSize || CatalogueGL.STANDARD_SHAPE_SIZE;
|
|
469
|
+
const size = Math.max(8, baseSize * (style.scale ?? 2.4));
|
|
470
|
+
const rotation = style.rotationDeg ?? 0;
|
|
471
|
+
mediaEl.style.display = "block";
|
|
472
|
+
mediaEl.style.left = `${px - size / 2}px`;
|
|
473
|
+
mediaEl.style.top = `${py - size / 2}px`;
|
|
474
|
+
mediaEl.style.width = `${size}px`;
|
|
475
|
+
mediaEl.style.height = `${size}px`;
|
|
476
|
+
mediaEl.style.opacity = `${style.opacity ?? 1}`;
|
|
477
|
+
mediaEl.style.transform = `rotate(${rotation}deg)`;
|
|
478
|
+
}
|
|
258
479
|
}
|
|
259
480
|
sourceMatches(left, right) {
|
|
260
481
|
if (left === right)
|
|
@@ -594,6 +815,7 @@ export class CatalogueGL {
|
|
|
594
815
|
// draw
|
|
595
816
|
const numItems = this.vertexCataloguePosition.length / CatalogueGL.ELEM_SIZE;
|
|
596
817
|
this._webgl.drawArrays(this._webgl.POINTS, 0, numItems);
|
|
818
|
+
this.updateMediaOverlay(in_mMatrix, vMatrix, pMatrix);
|
|
597
819
|
this._oldMouseCoords = in_mouseHelper.xyz;
|
|
598
820
|
}
|
|
599
821
|
}
|