@interstellar-tools/types 0.61.1 → 0.62.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/celestial-bodies/asteroid-belts.d.ts +6 -15
- package/dist/celestial-bodies/asteroid-belts.d.ts.map +1 -1
- package/dist/celestial-bodies/asteroids.d.ts +3 -34
- package/dist/celestial-bodies/asteroids.d.ts.map +1 -1
- package/dist/celestial-bodies/comets.d.ts +8 -19
- package/dist/celestial-bodies/comets.d.ts.map +1 -1
- package/dist/celestial-bodies/display.d.ts +63 -0
- package/dist/celestial-bodies/display.d.ts.map +1 -0
- package/dist/celestial-bodies/display.js +2 -0
- package/dist/celestial-bodies/display.js.map +1 -0
- package/dist/celestial-bodies/index.d.ts +1 -0
- package/dist/celestial-bodies/index.d.ts.map +1 -1
- package/dist/celestial-bodies/index.js +1 -0
- package/dist/celestial-bodies/index.js.map +1 -1
- package/dist/celestial-bodies/moons.d.ts +6 -13
- package/dist/celestial-bodies/moons.d.ts.map +1 -1
- package/dist/celestial-bodies/planets.d.ts +5 -26
- package/dist/celestial-bodies/planets.d.ts.map +1 -1
- package/dist/celestial-bodies/stars.d.ts +5 -11
- package/dist/celestial-bodies/stars.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { DisplayInterface } from './display.js';
|
|
2
2
|
/**
|
|
3
3
|
* Represents an asteroid belt within the solar system simulation.
|
|
4
4
|
*
|
|
5
5
|
* **Asteroid Belt Properties:**
|
|
6
6
|
* - **Inner and Outer Radius**: Defines the spatial boundaries of the belt in **Astronomical Units (AU)**.
|
|
7
|
-
* - **
|
|
8
|
-
*
|
|
9
|
-
* - **Orbit Path (Optional)**: Stores a precomputed path for asteroid positioning.
|
|
7
|
+
* - **Drawing (`display`)**: colour, opacity, and density (how many asteroids to draw); see
|
|
8
|
+
* {@link DisplayInterface}.
|
|
10
9
|
*
|
|
11
10
|
* @group Celestial Bodies
|
|
12
11
|
*/
|
|
@@ -21,14 +20,8 @@ export interface AsteroidBeltInterface {
|
|
|
21
20
|
innerRadius: number;
|
|
22
21
|
/** Outer radius of the belt in Astronomical Units (AU). */
|
|
23
22
|
outerRadius: number;
|
|
24
|
-
/**
|
|
25
|
-
|
|
26
|
-
/** Transparency level (0 = fully transparent, 1 = solid). */
|
|
27
|
-
opacity: number;
|
|
28
|
-
/** Density factor affecting how many asteroids are simulated. */
|
|
29
|
-
density: number;
|
|
30
|
-
/** Optional: Orbit path for finer asteroid positioning. */
|
|
31
|
-
orbitPath?: CartesianCoordinatesInterface[];
|
|
23
|
+
/** How to draw the belt: colour, opacity and density, and state a renderer computes. */
|
|
24
|
+
display?: DisplayInterface;
|
|
32
25
|
}
|
|
33
26
|
/**
|
|
34
27
|
* Type alias for a collection of asteroid belts.
|
|
@@ -42,9 +35,7 @@ export interface AsteroidBeltInterface {
|
|
|
42
35
|
* parent: 'sun',
|
|
43
36
|
* innerRadius: 2.1,
|
|
44
37
|
* outerRadius: 3.3,
|
|
45
|
-
* color: '#888888',
|
|
46
|
-
* opacity: 0.5,
|
|
47
|
-
* density: 100,
|
|
38
|
+
* display: { color: '#888888', opacity: 0.5, density: 100 }
|
|
48
39
|
* }];
|
|
49
40
|
* ```
|
|
50
41
|
* @group Celestial Bodies
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asteroid-belts.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/asteroid-belts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"asteroid-belts.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/asteroid-belts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,iBAAiB,GAAG,qBAAqB,EAAE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DistanceInterface } from '../distance.js';
|
|
2
2
|
import type { OrbitInterface } from '../orbits.js';
|
|
3
|
-
import {
|
|
3
|
+
import type { DisplayInterface } from './display.js';
|
|
4
4
|
/**
|
|
5
5
|
* High-level **orbital class** of an asteroid (by dynamical region).
|
|
6
6
|
*
|
|
@@ -109,41 +109,10 @@ export interface AsteroidInterface {
|
|
|
109
109
|
y?: DistanceInterface;
|
|
110
110
|
/** See {@link x}. */
|
|
111
111
|
z?: DistanceInterface;
|
|
112
|
-
/**
|
|
113
|
-
* Optional **semi-minor axis** in **pixels** (for 2D ellipse rendering).
|
|
114
|
-
*
|
|
115
|
-
* ::: info
|
|
116
|
-
*
|
|
117
|
-
* Visualization aid only; not a physical quantity.
|
|
118
|
-
*
|
|
119
|
-
* :::
|
|
120
|
-
*/
|
|
121
|
-
miA?: number;
|
|
122
|
-
/**
|
|
123
|
-
* Optional **focus offset** along X for ellipse rendering (pixels).
|
|
124
|
-
*
|
|
125
|
-
* ::: info
|
|
126
|
-
*
|
|
127
|
-
* Visualization aid only; not a physical quantity.
|
|
128
|
-
*
|
|
129
|
-
* :::
|
|
130
|
-
*/
|
|
131
|
-
focus_x?: number;
|
|
132
112
|
/** Mean/characteristic **radius** (e.g., in **km**) as a distance value. */
|
|
133
113
|
radius: DistanceInterface;
|
|
134
|
-
/**
|
|
135
|
-
|
|
136
|
-
* ::: info
|
|
137
|
-
*
|
|
138
|
-
* Commonly a list of points in your rendering coordinate system.
|
|
139
|
-
*
|
|
140
|
-
* :::
|
|
141
|
-
*/
|
|
142
|
-
orbitPath?: CartesianCoordinatesInterface[];
|
|
143
|
-
/** Display color (hex string, e.g., `#AABBCC`). */
|
|
144
|
-
color: string;
|
|
145
|
-
/** Visual **scale factor** (UI only; not physical size). */
|
|
146
|
-
size: number;
|
|
114
|
+
/** How to draw the asteroid: its colour and drawn size, and state a renderer computes. */
|
|
115
|
+
display?: DisplayInterface;
|
|
147
116
|
}
|
|
148
117
|
/**
|
|
149
118
|
* Convenience alias for a list of asteroids.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asteroids.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/asteroids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"asteroids.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/asteroids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,YAAY,GACpB,oBAAoB,GACpB,qBAAqB,GACrB,iBAAiB,GACjB,SAAS,GACT,wBAAwB,CAAC;AAE7B;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GACxB,cAAc,GACd,gBAAgB,GAChB,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,aAAa,GACb,cAAc,GACd,aAAa,GACb,gBAAgB,GAChB,SAAS,GACT,UAAU,GACV,uBAAuB,CAAC;AAE5B;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,CAAC;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,EAAE,EAAE,MAAM,CAAC;IAEX,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IAEb,+DAA+D;IAC/D,IAAI,EAAE,YAAY,CAAC;IAEnB,0EAA0E;IAC1E,QAAQ,EAAE,gBAAgB,CAAC;IAE3B,6DAA6D;IAC7D,YAAY,EAAE,oBAAoB,CAAC;IAEnC,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IAEf,mFAAmF;IACnF,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAEhC;;;;;;;OAOG;IACH,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACtB,qBAAqB;IACrB,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACtB,qBAAqB;IACrB,CAAC,CAAC,EAAE,iBAAiB,CAAC;IAEtB,4EAA4E;IAC5E,MAAM,EAAE,iBAAiB,CAAC;IAE1B,0FAA0F;IAC1F,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DistanceInterface } from '../distance.js';
|
|
2
2
|
import type { OrbitInterface } from '../orbits.js';
|
|
3
|
-
import {
|
|
3
|
+
import type { DisplayInterface } from './display.js';
|
|
4
4
|
/**
|
|
5
5
|
* Represents a **comet** in the solar system simulation.
|
|
6
6
|
*
|
|
@@ -11,12 +11,10 @@ import { CartesianCoordinatesInterface } from './planets.js';
|
|
|
11
11
|
* - **Argument of perihelion (`w`)**: The angle from the **ascending node** to the **perihelion**.
|
|
12
12
|
* - **Longitude of the ascending node (`om`)**: Defines where the orbit crosses the ecliptic.
|
|
13
13
|
* - **Perihelion distance (`q`)**: The closest approach to the Sun in **AU**.
|
|
14
|
-
* - **Angle (`angle`)**:
|
|
14
|
+
* - **Angle (`angle`)**: The **true anomaly** at J2000, as for every other body.
|
|
15
15
|
*
|
|
16
|
-
* **
|
|
17
|
-
*
|
|
18
|
-
* - **Color (`color`)**: Used for visual representation.
|
|
19
|
-
* - **Size (`size`)**: Scaled size for display (not the actual physical size).
|
|
16
|
+
* **Drawing (`display`)**: colour and a scaled drawing size (not the physical
|
|
17
|
+
* `radius`), and state a renderer computes; see {@link DisplayInterface}.
|
|
20
18
|
*
|
|
21
19
|
* @group Celestial Bodies
|
|
22
20
|
*/
|
|
@@ -39,18 +37,10 @@ export interface CometInterface {
|
|
|
39
37
|
y?: DistanceInterface;
|
|
40
38
|
/** Z-coordinate in a distance-based system (optional). */
|
|
41
39
|
z?: DistanceInterface;
|
|
42
|
-
/** Semi-minor axis converted to pixels (calculated from `a` and `e`). */
|
|
43
|
-
miA?: number;
|
|
44
|
-
/** X-offset for the ellipse focus (accounts for eccentricity). */
|
|
45
|
-
focus_x?: number;
|
|
46
40
|
/** Radius of the comet (for visualization purposes). */
|
|
47
41
|
radius: DistanceInterface;
|
|
48
|
-
/**
|
|
49
|
-
|
|
50
|
-
/** Visual representation color. */
|
|
51
|
-
color: string;
|
|
52
|
-
/** Scaled size for visualization (not actual physical size). */
|
|
53
|
-
size: number;
|
|
42
|
+
/** How to draw the comet: its colour and drawn size, and state a renderer computes. */
|
|
43
|
+
display?: DisplayInterface;
|
|
54
44
|
}
|
|
55
45
|
/**
|
|
56
46
|
* Type alias for an array of **comets**.
|
|
@@ -70,13 +60,12 @@ export interface CometInterface {
|
|
|
70
60
|
* i: 162.26,
|
|
71
61
|
* w: 111.33,
|
|
72
62
|
* om: 58.42,
|
|
73
|
-
* angle:
|
|
63
|
+
* angle: 2.97966 as Radians,
|
|
74
64
|
* period: { value: 27576, unit: 'd' },
|
|
75
65
|
* q: 0.586
|
|
76
66
|
* },
|
|
77
67
|
* radius: { value: 11, unit: 'km' },
|
|
78
|
-
* color: '#ffffff',
|
|
79
|
-
* size: 1.2
|
|
68
|
+
* display: { color: '#ffffff', size: 1.2 }
|
|
80
69
|
* }];
|
|
81
70
|
* ```
|
|
82
71
|
* @group Celestial Bodies
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comets.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/comets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"comets.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/comets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;IACnE,4CAA4C;IAC5C,QAAQ,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;IAC7E,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAChC,0DAA0D;IAC1D,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACtB,0DAA0D;IAC1D,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACtB,0DAA0D;IAC1D,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACtB,wDAAwD;IACxD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,uFAAuF;IACvF,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents **2D coordinates**, for example a point on a drawn orbit.
|
|
3
|
+
*
|
|
4
|
+
* @property {number} x - The x-coordinate.
|
|
5
|
+
* @property {number} y - The y-coordinate.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const position: CartesianCoordinatesInterface = { x: 100, y: 200 };
|
|
10
|
+
* ```
|
|
11
|
+
* @group Celestial Bodies
|
|
12
|
+
*/
|
|
13
|
+
export interface CartesianCoordinatesInterface {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* How a body is **drawn**: everything about rendering, kept apart from its
|
|
19
|
+
* physical data and its `orbit`.
|
|
20
|
+
*
|
|
21
|
+
* It holds two kinds of values:
|
|
22
|
+
*
|
|
23
|
+
* - **Hints from the datasets**: `color` on every body, `size` on comets and
|
|
24
|
+
* asteroids, `opacity` and `density` on asteroid belts.
|
|
25
|
+
* - **State a renderer computes** and keeps on the body, so it doesn't have to
|
|
26
|
+
* recompute it every frame: `semiMinorAxis`, `focusOffsetX` and
|
|
27
|
+
* `orbitPath`. The datasets never set these.
|
|
28
|
+
*
|
|
29
|
+
* The computed distances are in whatever unit the renderer uses for
|
|
30
|
+
* `orbit.a` (for example au), measured in the orbit's plane with the parent
|
|
31
|
+
* body at the origin and periapsis along +x.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* // Drawing an orbit: compute once, keep it on the body
|
|
36
|
+
* const a = convertDistance(body.orbit.a, 'au').value;
|
|
37
|
+
* const { e } = body.orbit;
|
|
38
|
+
*
|
|
39
|
+
* body.display = {
|
|
40
|
+
* ...body.display,
|
|
41
|
+
* semiMinorAxis: a * Math.sqrt(1 - e ** 2),
|
|
42
|
+
* focusOffsetX: a * e
|
|
43
|
+
* };
|
|
44
|
+
* ```
|
|
45
|
+
* @group Celestial Bodies
|
|
46
|
+
*/
|
|
47
|
+
export interface DisplayInterface {
|
|
48
|
+
/** Colour to draw the body in, as a hex string (`#rrggbb`) or a CSS colour name. */
|
|
49
|
+
color?: string;
|
|
50
|
+
/** Scaled size for drawing, not the physical size (see `radius`). */
|
|
51
|
+
size?: number;
|
|
52
|
+
/** Transparency, from 0 (invisible) to 1 (solid). */
|
|
53
|
+
opacity?: number;
|
|
54
|
+
/** How densely to fill an area, e.g. how many asteroids to draw in a belt. */
|
|
55
|
+
density?: number;
|
|
56
|
+
/** Semi-minor axis of the orbit, $b = a\sqrt{1 - e^2}$, computed by a renderer. */
|
|
57
|
+
semiMinorAxis?: number;
|
|
58
|
+
/** Distance from the ellipse's centre to its focus, $c = a e$, computed by a renderer. */
|
|
59
|
+
focusOffsetX?: number;
|
|
60
|
+
/** Points along the drawn orbit, computed by a renderer. */
|
|
61
|
+
orbitPath?: CartesianCoordinatesInterface[];
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=display.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/display.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,6BAA6B;IAC5C,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,6BAA6B,EAAE,CAAC;CAC7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/celestial-bodies/display.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AAEtC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,aAAa,CAAC;AAE5B,cAAc,eAAe,CAAC;AAE9B,cAAc,YAAY,CAAC;AAE3B,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC;AAE3B,cAAc,cAAc,CAAC;AAE7B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AAEtC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,aAAa,CAAC;AAE5B,cAAc,cAAc,CAAC;AAE7B,cAAc,eAAe,CAAC;AAE9B,cAAc,YAAY,CAAC;AAE3B,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC;AAE3B,cAAc,cAAc,CAAC;AAE7B,cAAc,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/celestial-bodies/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AAEtC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,aAAa,CAAC;AAE5B,cAAc,eAAe,CAAC;AAE9B,cAAc,YAAY,CAAC;AAE3B,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC;AAE3B,cAAc,cAAc,CAAC;AAE7B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/celestial-bodies/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AAEtC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,aAAa,CAAC;AAE5B,cAAc,cAAc,CAAC;AAE7B,cAAc,eAAe,CAAC;AAE9B,cAAc,YAAY,CAAC;AAE3B,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC;AAE3B,cAAc,cAAc,CAAC;AAE7B,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import { DistanceInterface } from '../distance.js';
|
|
2
2
|
import type { OrbitInterface } from '../orbits.js';
|
|
3
|
-
import {
|
|
3
|
+
import type { DisplayInterface } from './display.js';
|
|
4
4
|
/**
|
|
5
5
|
* Represents a **moon** (natural satellite) orbiting a planet.
|
|
6
6
|
*
|
|
7
7
|
* A moon always has a `parent` (its planet) and an `orbit` around it; see
|
|
8
8
|
* {@link OrbitInterface}.
|
|
9
9
|
*
|
|
10
|
-
* **
|
|
11
|
-
* - **Orbit Path (`orbitPath`)**: Precomputed trajectory for rendering.
|
|
12
|
-
* - **Color (`color`)**: Visual representation.
|
|
10
|
+
* **Physical and drawing properties:**
|
|
13
11
|
* - **Size (`radius`)**: Actual moon radius in **kilometers (km)**.
|
|
12
|
+
* - **Drawing (`display`)**: colour, and state a renderer computes; see {@link DisplayInterface}.
|
|
14
13
|
*
|
|
15
14
|
* @example
|
|
16
15
|
* ```ts
|
|
@@ -26,7 +25,7 @@ import { CartesianCoordinatesInterface } from './planets.js';
|
|
|
26
25
|
* angle: 0 as Radians
|
|
27
26
|
* },
|
|
28
27
|
* radius: { value: 1560.8, unit: 'km' },
|
|
29
|
-
* color: '#a6a6a6'
|
|
28
|
+
* display: { color: '#a6a6a6' }
|
|
30
29
|
* };
|
|
31
30
|
* ```
|
|
32
31
|
* @group Celestial Bodies
|
|
@@ -43,22 +42,16 @@ export interface MoonInterface {
|
|
|
43
42
|
parent: string;
|
|
44
43
|
/** Orbit around the parent planet. */
|
|
45
44
|
orbit: OrbitInterface;
|
|
46
|
-
/** Semi-minor axis converted to pixels (calculated from `a` and `e`). */
|
|
47
|
-
miA?: number;
|
|
48
|
-
/** X-offset for the ellipse focus (accounts for eccentricity). */
|
|
49
|
-
focus_x?: number;
|
|
50
45
|
/** Physical radius of the moon in kilometres. */
|
|
51
46
|
radius: DistanceInterface;
|
|
52
|
-
/** Visual representation color. */
|
|
53
|
-
color: string;
|
|
54
47
|
/** X-coordinate in a distance-based system (optional). */
|
|
55
48
|
x?: DistanceInterface;
|
|
56
49
|
/** Y-coordinate in a distance-based system (optional). */
|
|
57
50
|
y?: DistanceInterface;
|
|
58
51
|
/** Z-coordinate in a distance-based system (optional). */
|
|
59
52
|
z?: DistanceInterface;
|
|
60
|
-
/**
|
|
61
|
-
|
|
53
|
+
/** How to draw the moon: its colour, and state a renderer computes. */
|
|
54
|
+
display?: DisplayInterface;
|
|
62
55
|
}
|
|
63
56
|
/**
|
|
64
57
|
* Type alias for a collection of **moons**.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moons.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/moons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"moons.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/moons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kCAAkC;IAClC,QAAQ,EACN,mBAAmB,GAAG,qBAAqB,GAAG,sBAAsB,CAAC;IACvE,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,KAAK,EAAE,cAAc,CAAC;IACtB,iDAAiD;IACjD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,0DAA0D;IAC1D,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACtB,0DAA0D;IAC1D,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACtB,0DAA0D;IAC1D,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC"}
|
|
@@ -1,21 +1,6 @@
|
|
|
1
1
|
import { DistanceInterface } from '../distance.js';
|
|
2
2
|
import type { OrbitInterface } from '../orbits.js';
|
|
3
|
-
|
|
4
|
-
* Represents **2D coordinates** for planetary positioning.
|
|
5
|
-
*
|
|
6
|
-
* @property {number} x - The x-coordinate.
|
|
7
|
-
* @property {number} y - The y-coordinate.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```ts
|
|
11
|
-
* const position: CartesianCoordinatesInterface = { x: 100, y: 200 };
|
|
12
|
-
* ```
|
|
13
|
-
* @group Celestial Bodies
|
|
14
|
-
*/
|
|
15
|
-
export interface CartesianCoordinatesInterface {
|
|
16
|
-
x: number;
|
|
17
|
-
y: number;
|
|
18
|
-
}
|
|
3
|
+
import type { DisplayInterface } from './display.js';
|
|
19
4
|
/**
|
|
20
5
|
* Represents a **planet** or **planetoid**.
|
|
21
6
|
*
|
|
@@ -26,7 +11,7 @@ export interface CartesianCoordinatesInterface {
|
|
|
26
11
|
* **Classification & Visualization:**
|
|
27
12
|
* - **Type (`type`)**: Scientific classification of the planet (e.g., **terrestrial, gas giant, ice planet**).
|
|
28
13
|
* - **Category (`category`)**: Defines whether the object is a **planet** or a **planetoid**.
|
|
29
|
-
* - **
|
|
14
|
+
* - **Drawing (`display`)**: colour, and state a renderer computes; see {@link DisplayInterface}.
|
|
30
15
|
* - **Size (`radius`)**: Physical planet radius in **kilometers (km)**.
|
|
31
16
|
*
|
|
32
17
|
* @example
|
|
@@ -36,7 +21,6 @@ export interface CartesianCoordinatesInterface {
|
|
|
36
21
|
* name: 'Earth',
|
|
37
22
|
* type: 'terrestrial planet',
|
|
38
23
|
* category: 'planet',
|
|
39
|
-
* color: '#4287f5',
|
|
40
24
|
* parent: 'sun',
|
|
41
25
|
* orbit: {
|
|
42
26
|
* a: { value: 1.0, unit: 'au' },
|
|
@@ -45,6 +29,7 @@ export interface CartesianCoordinatesInterface {
|
|
|
45
29
|
* angle: 1.753 as Radians
|
|
46
30
|
* },
|
|
47
31
|
* radius: { value: 6371, unit: 'km' },
|
|
32
|
+
* display: { color: '#4287f5' },
|
|
48
33
|
* x: { value: 0, unit: 'au' },
|
|
49
34
|
* y: { value: 1, unit: 'au' },
|
|
50
35
|
* z: { value: 0, unit: 'au' }
|
|
@@ -61,26 +46,20 @@ export interface PlanetInterface {
|
|
|
61
46
|
type: 'chthonian planet' | 'carbon planet' | 'coreless planet' | 'desert planet' | 'gas dwarf' | 'gas giant' | 'helium planet' | 'hycean planet' | 'ice giant' | 'ice planet' | 'iron planet' | 'lava planet' | 'ocean planet' | 'proto planet' | 'puffy planet' | 'super-puff' | 'silicate planet' | 'terrestrial planet';
|
|
62
47
|
/** Defines whether the object is a planet or a planetoid. */
|
|
63
48
|
category: 'planet' | 'planetoid';
|
|
64
|
-
/** Visual representation color. */
|
|
65
|
-
color: string;
|
|
66
49
|
/** Id of the star, system or galaxy the planet is bound to. */
|
|
67
50
|
parent?: string;
|
|
68
51
|
/** Orbit around the parent. */
|
|
69
52
|
orbit?: OrbitInterface;
|
|
70
53
|
/** Physical radius of the planet in kilometres. */
|
|
71
54
|
radius: DistanceInterface;
|
|
72
|
-
/** Semi-minor axis of the orbit (calculated from `a` and `e`). */
|
|
73
|
-
miA?: number;
|
|
74
|
-
/** X-offset for the ellipse focus (accounts for eccentricity). */
|
|
75
|
-
focus_x?: number;
|
|
76
55
|
/** X-coordinate in the parent's frame. */
|
|
77
56
|
x: DistanceInterface;
|
|
78
57
|
/** Y-coordinate in the parent's frame. */
|
|
79
58
|
y: DistanceInterface;
|
|
80
59
|
/** Z-coordinate in the parent's frame. */
|
|
81
60
|
z: DistanceInterface;
|
|
82
|
-
/**
|
|
83
|
-
|
|
61
|
+
/** How to draw the planet: its colour, and state a renderer computes. */
|
|
62
|
+
display?: DisplayInterface;
|
|
84
63
|
}
|
|
85
64
|
/**
|
|
86
65
|
* Type alias for a collection of **planets**.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planets.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/planets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"planets.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/planets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,EAAE,EAAE,MAAM,CAAC;IACX,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,IAAI,EACA,kBAAkB,GAClB,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,WAAW,GACX,WAAW,GACX,eAAe,GACf,eAAe,GACf,WAAW,GACX,YAAY,GACZ,aAAa,GACb,aAAa,GACb,cAAc,GACd,cAAc,GACd,cAAc,GACd,YAAY,GACZ,iBAAiB,GACjB,oBAAoB,CAAC;IACzB,6DAA6D;IAC7D,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC;IACjC,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,mDAAmD;IACnD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,0CAA0C;IAC1C,CAAC,EAAE,iBAAiB,CAAC;IACrB,0CAA0C;IAC1C,CAAC,EAAE,iBAAiB,CAAC;IACrB,0CAA0C;IAC1C,CAAC,EAAE,iBAAiB,CAAC;IACrB,yEAAyE;IACzE,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DistanceInterface } from '../distance.js';
|
|
2
2
|
import type { OrbitInterface } from '../orbits.js';
|
|
3
|
-
import {
|
|
3
|
+
import type { DisplayInterface } from './display.js';
|
|
4
4
|
/**
|
|
5
5
|
* Represents a **star**.
|
|
6
6
|
*
|
|
@@ -12,7 +12,7 @@ import { CartesianCoordinatesInterface } from './planets.js';
|
|
|
12
12
|
* **Classification & Visualization:**
|
|
13
13
|
* - **Type (`type`)**: Spectral classification of the star (e.g., `'G2V'`).
|
|
14
14
|
* - **Category (`category`)**: Defined as `'star'`.
|
|
15
|
-
* - **
|
|
15
|
+
* - **Drawing (`display`)**: colour, and state a renderer computes; see {@link DisplayInterface}.
|
|
16
16
|
*
|
|
17
17
|
* @example
|
|
18
18
|
* ```ts
|
|
@@ -29,7 +29,7 @@ import { CartesianCoordinatesInterface } from './planets.js';
|
|
|
29
29
|
* angle: 1.5699 as Radians
|
|
30
30
|
* },
|
|
31
31
|
* radius: { value: 2600000, unit: 'km' },
|
|
32
|
-
* color: 'blue'
|
|
32
|
+
* display: { color: 'blue' }
|
|
33
33
|
* };
|
|
34
34
|
* ```
|
|
35
35
|
* @group Celestial Bodies
|
|
@@ -51,20 +51,14 @@ export interface StarInterface {
|
|
|
51
51
|
mass?: number;
|
|
52
52
|
/** Physical radius of the star. */
|
|
53
53
|
radius: DistanceInterface;
|
|
54
|
-
/** Visual representation color. */
|
|
55
|
-
color: string;
|
|
56
|
-
/** Semi-minor axis of the orbit (calculated from `a` and `e`). */
|
|
57
|
-
miA?: number;
|
|
58
|
-
/** X-offset for the ellipse focus (accounts for eccentricity). */
|
|
59
|
-
focus_x?: number;
|
|
60
54
|
/** X-coordinate in the parent's frame. */
|
|
61
55
|
x?: DistanceInterface;
|
|
62
56
|
/** Y-coordinate in the parent's frame. */
|
|
63
57
|
y?: DistanceInterface;
|
|
64
58
|
/** Z-coordinate in the parent's frame. */
|
|
65
59
|
z?: DistanceInterface;
|
|
66
|
-
/**
|
|
67
|
-
|
|
60
|
+
/** How to draw the star: its colour, and state a renderer computes. */
|
|
61
|
+
display?: DisplayInterface;
|
|
68
62
|
}
|
|
69
63
|
/**
|
|
70
64
|
* Type alias for a collection of **stars**.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stars.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/stars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"stars.d.ts","sourceRoot":"","sources":["../../src/celestial-bodies/stars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,0CAA0C;IAC1C,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACtB,0CAA0C;IAC1C,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACtB,0CAA0C;IAC1C,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC"}
|
package/package.json
CHANGED