@holoscript/engine 6.0.3 → 6.0.4
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/AutoMesher-CK47F6AV.js +17 -0
- package/dist/GPUBuffers-2LHBCD7X.js +9 -0
- package/dist/WebGPUContext-TNEUYU2Y.js +11 -0
- package/dist/animation/index.cjs +38 -38
- package/dist/animation/index.d.cts +1 -1
- package/dist/animation/index.d.ts +1 -1
- package/dist/animation/index.js +1 -1
- package/dist/audio/index.cjs +16 -6
- package/dist/audio/index.d.cts +1 -1
- package/dist/audio/index.d.ts +1 -1
- package/dist/audio/index.js +1 -1
- package/dist/camera/index.cjs +23 -23
- package/dist/camera/index.d.cts +1 -1
- package/dist/camera/index.d.ts +1 -1
- package/dist/camera/index.js +1 -1
- package/dist/character/index.cjs +6 -4
- package/dist/character/index.js +1 -1
- package/dist/choreography/index.cjs +1194 -0
- package/dist/choreography/index.d.cts +687 -0
- package/dist/choreography/index.d.ts +687 -0
- package/dist/choreography/index.js +1156 -0
- package/dist/chunk-2CSNRI2N.js +217 -0
- package/dist/chunk-33T2WINR.js +266 -0
- package/dist/chunk-35R73OFM.js +1257 -0
- package/dist/chunk-4MMDSUNP.js +1256 -0
- package/dist/chunk-5V6HOU72.js +319 -0
- package/dist/chunk-6QOP6PYF.js +1038 -0
- package/dist/chunk-7KMJVHIL.js +8944 -0
- package/dist/chunk-7VPUC62U.js +1106 -0
- package/dist/chunk-A2Y6RCAT.js +1878 -0
- package/dist/chunk-AHM42MK6.js +8944 -0
- package/dist/chunk-BL7IDTHE.js +218 -0
- package/dist/chunk-CITOMSWL.js +10462 -0
- package/dist/chunk-CXDPKW2K.js +8944 -0
- package/dist/chunk-CXZPLD4S.js +223 -0
- package/dist/chunk-CZYJE7IH.js +5169 -0
- package/dist/chunk-D2OP7YC7.js +6325 -0
- package/dist/chunk-EDRVQHUU.js +1544 -0
- package/dist/chunk-EJSLOOW2.js +3589 -0
- package/dist/chunk-F53SFGW5.js +1878 -0
- package/dist/chunk-HCFPELPY.js +919 -0
- package/dist/chunk-HNEE36PY.js +93 -0
- package/dist/chunk-HYXNV36F.js +1256 -0
- package/dist/chunk-IB7KHVFY.js +821 -0
- package/dist/chunk-IBBO7YYG.js +690 -0
- package/dist/chunk-ILIBGINU.js +5470 -0
- package/dist/chunk-IS4MHLKN.js +5479 -0
- package/dist/chunk-JT2PFKWD.js +5479 -0
- package/dist/chunk-K4CUB4NY.js +1038 -0
- package/dist/chunk-KATDQXRJ.js +10462 -0
- package/dist/chunk-KBQE6ZFJ.js +8944 -0
- package/dist/chunk-KBVD5K7E.js +560 -0
- package/dist/chunk-KCDPVQRY.js +4088 -0
- package/dist/chunk-KN4QJPKN.js +8944 -0
- package/dist/chunk-KWJ3ROSI.js +8944 -0
- package/dist/chunk-L45VF6DD.js +919 -0
- package/dist/chunk-LY4T37YK.js +307 -0
- package/dist/chunk-MDN5WZXA.js +1544 -0
- package/dist/chunk-MGCDP6VU.js +928 -0
- package/dist/chunk-NCX7X6G2.js +8681 -0
- package/dist/chunk-OF54BPVD.js +913 -0
- package/dist/chunk-OWSN2Q3Q.js +690 -0
- package/dist/chunk-PRRB5TTA.js +406 -0
- package/dist/chunk-PXWVQF76.js +4086 -0
- package/dist/chunk-PYCOIDT2.js +812 -0
- package/dist/chunk-PZCSADOV.js +928 -0
- package/dist/chunk-Q2XBVS2K.js +1038 -0
- package/dist/chunk-QDZRXWN5.js +1776 -0
- package/dist/chunk-RNWOZ6WQ.js +913 -0
- package/dist/chunk-ROLFT4CJ.js +1693 -0
- package/dist/chunk-SLTJRZ2N.js +266 -0
- package/dist/chunk-SRUS5XSU.js +4088 -0
- package/dist/chunk-TKCA3WZ5.js +5409 -0
- package/dist/chunk-TNRMXYI2.js +1650 -0
- package/dist/chunk-TQB3GJGM.js +9763 -0
- package/dist/chunk-TUFGXG6K.js +510 -0
- package/dist/chunk-U6KMTGQJ.js +632 -0
- package/dist/chunk-VMGJQST6.js +8681 -0
- package/dist/chunk-X4F4TCG4.js +5470 -0
- package/dist/chunk-ZIFROE75.js +1544 -0
- package/dist/chunk-ZIJQYHSQ.js +1204 -0
- package/dist/combat/index.cjs +4 -4
- package/dist/combat/index.d.cts +1 -1
- package/dist/combat/index.d.ts +1 -1
- package/dist/combat/index.js +1 -1
- package/dist/ecs/index.cjs +1 -1
- package/dist/ecs/index.js +1 -1
- package/dist/environment/index.cjs +14 -14
- package/dist/environment/index.d.cts +1 -1
- package/dist/environment/index.d.ts +1 -1
- package/dist/environment/index.js +1 -1
- package/dist/gpu/index.cjs +4810 -0
- package/dist/gpu/index.js +3714 -0
- package/dist/hologram/index.cjs +27 -1
- package/dist/hologram/index.js +1 -1
- package/dist/index-B2PIsAmR.d.cts +2180 -0
- package/dist/index-B2PIsAmR.d.ts +2180 -0
- package/dist/index-BHySEPX7.d.cts +2921 -0
- package/dist/index-BJV21zuy.d.cts +341 -0
- package/dist/index-BJV21zuy.d.ts +341 -0
- package/dist/index-BQutTphC.d.cts +790 -0
- package/dist/index-ByIq2XrS.d.cts +3910 -0
- package/dist/index-BysHjDSO.d.cts +224 -0
- package/dist/index-BysHjDSO.d.ts +224 -0
- package/dist/index-CKwAJGck.d.ts +455 -0
- package/dist/index-CUl3QstQ.d.cts +3006 -0
- package/dist/index-CUl3QstQ.d.ts +3006 -0
- package/dist/index-CmYtNiI-.d.cts +953 -0
- package/dist/index-CmYtNiI-.d.ts +953 -0
- package/dist/index-CnRzWxi_.d.cts +522 -0
- package/dist/index-CnRzWxi_.d.ts +522 -0
- package/dist/index-CwRWbSC7.d.ts +2921 -0
- package/dist/index-CxKIBstO.d.ts +790 -0
- package/dist/index-DJ6-R8vh.d.cts +455 -0
- package/dist/index-DQKisbcI.d.cts +4968 -0
- package/dist/index-DQKisbcI.d.ts +4968 -0
- package/dist/index-DRT2zJez.d.ts +3910 -0
- package/dist/index-DfNLiAka.d.cts +192 -0
- package/dist/index-DfNLiAka.d.ts +192 -0
- package/dist/index-nMvkoRm8.d.cts +405 -0
- package/dist/index-nMvkoRm8.d.ts +405 -0
- package/dist/index-s9yOFU37.d.cts +604 -0
- package/dist/index-s9yOFU37.d.ts +604 -0
- package/dist/index.cjs +22966 -6960
- package/dist/index.d.cts +864 -20
- package/dist/index.d.ts +864 -20
- package/dist/index.js +3062 -48
- package/dist/input/index.cjs +1 -1
- package/dist/input/index.js +1 -1
- package/dist/orbital/index.cjs +3 -3
- package/dist/orbital/index.d.cts +1 -1
- package/dist/orbital/index.d.ts +1 -1
- package/dist/orbital/index.js +1 -1
- package/dist/particles/index.cjs +16 -16
- package/dist/particles/index.d.cts +1 -1
- package/dist/particles/index.d.ts +1 -1
- package/dist/particles/index.js +1 -1
- package/dist/physics/index.cjs +2377 -21
- package/dist/physics/index.d.cts +1 -1
- package/dist/physics/index.d.ts +1 -1
- package/dist/physics/index.js +35 -1
- package/dist/postfx/index.cjs +3491 -0
- package/dist/postfx/index.js +93 -0
- package/dist/procedural/index.cjs +1 -1
- package/dist/procedural/index.js +1 -1
- package/dist/puppeteer-5VF6KDVO.js +52197 -0
- package/dist/puppeteer-IZVZ3SG4.js +52197 -0
- package/dist/rendering/index.cjs +33 -32
- package/dist/rendering/index.d.cts +1 -1
- package/dist/rendering/index.d.ts +1 -1
- package/dist/rendering/index.js +8 -6
- package/dist/runtime/index.cjs +23 -13
- package/dist/runtime/index.d.cts +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.js +8 -6
- package/dist/runtime/protocols/index.cjs +349 -0
- package/dist/runtime/protocols/index.js +15 -0
- package/dist/scene/index.cjs +8 -8
- package/dist/scene/index.d.cts +1 -1
- package/dist/scene/index.d.ts +1 -1
- package/dist/scene/index.js +1 -1
- package/dist/shader/index.cjs +3087 -0
- package/dist/shader/index.js +3044 -0
- package/dist/simulation/index.cjs +10680 -0
- package/dist/simulation/index.d.cts +3 -0
- package/dist/simulation/index.d.ts +3 -0
- package/dist/simulation/index.js +307 -0
- package/dist/spatial/index.cjs +2443 -0
- package/dist/spatial/index.d.cts +1545 -0
- package/dist/spatial/index.d.ts +1545 -0
- package/dist/spatial/index.js +2400 -0
- package/dist/terrain/index.cjs +1 -1
- package/dist/terrain/index.d.cts +1 -1
- package/dist/terrain/index.d.ts +1 -1
- package/dist/terrain/index.js +1 -1
- package/dist/transformers.node-4NKAPD5U.js +45620 -0
- package/dist/vm/index.cjs +7 -8
- package/dist/vm/index.d.cts +1 -1
- package/dist/vm/index.d.ts +1 -1
- package/dist/vm/index.js +1 -1
- package/dist/vm-bridge/index.cjs +2 -2
- package/dist/vm-bridge/index.d.cts +2 -2
- package/dist/vm-bridge/index.d.ts +2 -2
- package/dist/vm-bridge/index.js +1 -1
- package/dist/vr/index.cjs +6 -6
- package/dist/vr/index.js +1 -1
- package/dist/world/index.cjs +3 -3
- package/dist/world/index.d.cts +1 -1
- package/dist/world/index.d.ts +1 -1
- package/dist/world/index.js +1 -1
- package/package.json +53 -21
- package/LICENSE +0 -21
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keplerian Orbital Mechanics Calculator
|
|
3
|
+
*
|
|
4
|
+
* Calculates celestial body positions using classical Keplerian orbital elements.
|
|
5
|
+
* Based on the standard orbital mechanics equations used in astronomy.
|
|
6
|
+
*/
|
|
7
|
+
interface OrbitalElements {
|
|
8
|
+
/** Semi-major axis in AU (Astronomical Units) */
|
|
9
|
+
semiMajorAxis: number;
|
|
10
|
+
/** Orbital eccentricity (0 = circle, <1 = ellipse) */
|
|
11
|
+
eccentricity: number;
|
|
12
|
+
/** Inclination in degrees */
|
|
13
|
+
inclination: number;
|
|
14
|
+
/** Longitude of ascending node in degrees */
|
|
15
|
+
longitudeAscending: number;
|
|
16
|
+
/** Argument of periapsis in degrees */
|
|
17
|
+
argumentPeriapsis: number;
|
|
18
|
+
/** Mean anomaly at epoch (J2000) in degrees */
|
|
19
|
+
meanAnomalyEpoch: number;
|
|
20
|
+
/** Orbital period in days */
|
|
21
|
+
orbitalPeriod: number;
|
|
22
|
+
/** Parent body name for moons/satellites (optional) */
|
|
23
|
+
parent?: string;
|
|
24
|
+
}
|
|
25
|
+
interface Position3D {
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
z: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Convert radians to degrees
|
|
32
|
+
*/
|
|
33
|
+
declare function toDegrees(radians: number): number;
|
|
34
|
+
/**
|
|
35
|
+
* Calculate position in 3D space from orbital elements at a given time
|
|
36
|
+
*
|
|
37
|
+
* @param elements - Keplerian orbital elements
|
|
38
|
+
* @param julianDate - Julian date (days since J2000 epoch)
|
|
39
|
+
* @returns 3D position in AU (heliocentric or relative to parent)
|
|
40
|
+
*/
|
|
41
|
+
declare function calculatePosition(elements: OrbitalElements, julianDate: number): Position3D;
|
|
42
|
+
/**
|
|
43
|
+
* Convert Date to Julian Date (days since J2000.0 epoch)
|
|
44
|
+
* J2000.0 = January 1, 2000, 12:00 TT (Terrestrial Time)
|
|
45
|
+
*
|
|
46
|
+
* @param date - JavaScript Date object
|
|
47
|
+
* @returns Julian date (days since J2000)
|
|
48
|
+
*/
|
|
49
|
+
declare function dateToJulian(date: Date): number;
|
|
50
|
+
/**
|
|
51
|
+
* Convert Julian date to JavaScript Date
|
|
52
|
+
*
|
|
53
|
+
* @param julianDate - Days since J2000
|
|
54
|
+
* @returns JavaScript Date object
|
|
55
|
+
*/
|
|
56
|
+
declare function julianToDate(julianDate: number): Date;
|
|
57
|
+
/**
|
|
58
|
+
* Generate orbital path points for visualization
|
|
59
|
+
*
|
|
60
|
+
* @param elements - Orbital elements
|
|
61
|
+
* @param numPoints - Number of points to generate (default: 100)
|
|
62
|
+
* @returns Array of 3D positions around the orbit
|
|
63
|
+
*/
|
|
64
|
+
declare function generateOrbitalPath(elements: OrbitalElements, numPoints?: number): Position3D[];
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Time Manager for Orbital Simulations
|
|
68
|
+
*
|
|
69
|
+
* Manages simulation time, time scaling, and animation loop for orbital mechanics.
|
|
70
|
+
*/
|
|
71
|
+
type TimeUpdateCallback = (julianDate: number, realDate: Date) => void;
|
|
72
|
+
declare class TimeManager {
|
|
73
|
+
private julianDate;
|
|
74
|
+
private timeScale;
|
|
75
|
+
private isPaused;
|
|
76
|
+
private lastUpdateTime;
|
|
77
|
+
private callbacks;
|
|
78
|
+
private intervalId;
|
|
79
|
+
constructor(startDate?: Date);
|
|
80
|
+
/**
|
|
81
|
+
* Start the time simulation loop
|
|
82
|
+
*/
|
|
83
|
+
start(): void;
|
|
84
|
+
/**
|
|
85
|
+
* Stop the time simulation loop
|
|
86
|
+
*/
|
|
87
|
+
stop(): void;
|
|
88
|
+
/**
|
|
89
|
+
* Update tick
|
|
90
|
+
*/
|
|
91
|
+
private update;
|
|
92
|
+
/**
|
|
93
|
+
* Advance simulation time
|
|
94
|
+
*
|
|
95
|
+
* @param deltaMs - Milliseconds elapsed in real time
|
|
96
|
+
*/
|
|
97
|
+
advance(deltaMs: number): void;
|
|
98
|
+
/**
|
|
99
|
+
* Pause time progression
|
|
100
|
+
*/
|
|
101
|
+
pause(): void;
|
|
102
|
+
/**
|
|
103
|
+
* Resume time progression
|
|
104
|
+
*/
|
|
105
|
+
play(): void;
|
|
106
|
+
/**
|
|
107
|
+
* Toggle pause/play
|
|
108
|
+
*/
|
|
109
|
+
togglePause(): void;
|
|
110
|
+
/**
|
|
111
|
+
* Set time scale (speed multiplier)
|
|
112
|
+
*
|
|
113
|
+
* @param scale - Time scale (1 = real-time, 10 = 10x speed, etc.)
|
|
114
|
+
*/
|
|
115
|
+
setTimeScale(scale: number): void;
|
|
116
|
+
/**
|
|
117
|
+
* Get current time scale
|
|
118
|
+
*/
|
|
119
|
+
getTimeScale(): number;
|
|
120
|
+
/**
|
|
121
|
+
* Set simulation date
|
|
122
|
+
*
|
|
123
|
+
* @param date - JavaScript Date object
|
|
124
|
+
*/
|
|
125
|
+
setDate(date: Date): void;
|
|
126
|
+
/**
|
|
127
|
+
* Get current simulation date as Julian date
|
|
128
|
+
*/
|
|
129
|
+
getJulianDate(): number;
|
|
130
|
+
/**
|
|
131
|
+
* Get current simulation date as JavaScript Date
|
|
132
|
+
*/
|
|
133
|
+
getDate(): Date;
|
|
134
|
+
/**
|
|
135
|
+
* Check if time is paused
|
|
136
|
+
*/
|
|
137
|
+
getIsPaused(): boolean;
|
|
138
|
+
/**
|
|
139
|
+
* Register a callback for time updates
|
|
140
|
+
*
|
|
141
|
+
* @param callback - Function to call when time updates
|
|
142
|
+
*/
|
|
143
|
+
onUpdate(callback: TimeUpdateCallback): void;
|
|
144
|
+
/**
|
|
145
|
+
* Unregister a time update callback
|
|
146
|
+
*
|
|
147
|
+
* @param callback - Callback function to remove
|
|
148
|
+
*/
|
|
149
|
+
offUpdate(callback: TimeUpdateCallback): void;
|
|
150
|
+
/**
|
|
151
|
+
* Notify all registered callbacks of time update
|
|
152
|
+
*/
|
|
153
|
+
private notifyCallbacks;
|
|
154
|
+
/**
|
|
155
|
+
* Get time state for serialization
|
|
156
|
+
*/
|
|
157
|
+
getState(): {
|
|
158
|
+
julianDate: number;
|
|
159
|
+
timeScale: number;
|
|
160
|
+
isPaused: boolean;
|
|
161
|
+
date: string;
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* AttentionEngine
|
|
167
|
+
*
|
|
168
|
+
* Implements a heuristic-driven spatial culling and attention
|
|
169
|
+
* scoring system to avoid O(N^2) perception processing.
|
|
170
|
+
*/
|
|
171
|
+
interface AttendedEntity {
|
|
172
|
+
id: string;
|
|
173
|
+
position: [number, number, number];
|
|
174
|
+
velocity?: {
|
|
175
|
+
x: number;
|
|
176
|
+
y: number;
|
|
177
|
+
z: number;
|
|
178
|
+
};
|
|
179
|
+
saliencyBase?: number;
|
|
180
|
+
}
|
|
181
|
+
interface AttentionScore {
|
|
182
|
+
entityId: string;
|
|
183
|
+
weight: number;
|
|
184
|
+
}
|
|
185
|
+
declare class AttentionEngine {
|
|
186
|
+
/**
|
|
187
|
+
* Calculates the attention weight of a target entity relative to an observer.
|
|
188
|
+
* Incorporates 4 factors: Proximity, Movement, Base Saliency, and Recency (mocked).
|
|
189
|
+
*/
|
|
190
|
+
static calculateWeight(observerPos: {
|
|
191
|
+
x: number;
|
|
192
|
+
y: number;
|
|
193
|
+
z: number;
|
|
194
|
+
}, target: AttendedEntity): number;
|
|
195
|
+
/**
|
|
196
|
+
* Filters a massive array of entities down to strictly the top K most attended
|
|
197
|
+
* objects around the observer to save inference/rendering payload.
|
|
198
|
+
*/
|
|
199
|
+
static getTopKEntities(observerPos: {
|
|
200
|
+
x: number;
|
|
201
|
+
y: number;
|
|
202
|
+
z: number;
|
|
203
|
+
}, entities: AttendedEntity[], k: number): string[];
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
type index_AttendedEntity = AttendedEntity;
|
|
207
|
+
type index_AttentionEngine = AttentionEngine;
|
|
208
|
+
declare const index_AttentionEngine: typeof AttentionEngine;
|
|
209
|
+
type index_AttentionScore = AttentionScore;
|
|
210
|
+
type index_OrbitalElements = OrbitalElements;
|
|
211
|
+
type index_Position3D = Position3D;
|
|
212
|
+
type index_TimeManager = TimeManager;
|
|
213
|
+
declare const index_TimeManager: typeof TimeManager;
|
|
214
|
+
type index_TimeUpdateCallback = TimeUpdateCallback;
|
|
215
|
+
declare const index_calculatePosition: typeof calculatePosition;
|
|
216
|
+
declare const index_dateToJulian: typeof dateToJulian;
|
|
217
|
+
declare const index_generateOrbitalPath: typeof generateOrbitalPath;
|
|
218
|
+
declare const index_julianToDate: typeof julianToDate;
|
|
219
|
+
declare const index_toDegrees: typeof toDegrees;
|
|
220
|
+
declare namespace index {
|
|
221
|
+
export { type index_AttendedEntity as AttendedEntity, index_AttentionEngine as AttentionEngine, type index_AttentionScore as AttentionScore, type index_OrbitalElements as OrbitalElements, type index_Position3D as Position3D, index_TimeManager as TimeManager, type index_TimeUpdateCallback as TimeUpdateCallback, index_calculatePosition as calculatePosition, index_dateToJulian as dateToJulian, index_generateOrbitalPath as generateOrbitalPath, index_julianToDate as julianToDate, index_toDegrees as toDegrees };
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
export { type AttendedEntity as A, type OrbitalElements as O, type Position3D as P, TimeManager as T, AttentionEngine as a, type AttentionScore as b, type TimeUpdateCallback as c, calculatePosition as d, dateToJulian as e, generateOrbitalPath as g, index as i, julianToDate as j, toDegrees as t };
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keplerian Orbital Mechanics Calculator
|
|
3
|
+
*
|
|
4
|
+
* Calculates celestial body positions using classical Keplerian orbital elements.
|
|
5
|
+
* Based on the standard orbital mechanics equations used in astronomy.
|
|
6
|
+
*/
|
|
7
|
+
interface OrbitalElements {
|
|
8
|
+
/** Semi-major axis in AU (Astronomical Units) */
|
|
9
|
+
semiMajorAxis: number;
|
|
10
|
+
/** Orbital eccentricity (0 = circle, <1 = ellipse) */
|
|
11
|
+
eccentricity: number;
|
|
12
|
+
/** Inclination in degrees */
|
|
13
|
+
inclination: number;
|
|
14
|
+
/** Longitude of ascending node in degrees */
|
|
15
|
+
longitudeAscending: number;
|
|
16
|
+
/** Argument of periapsis in degrees */
|
|
17
|
+
argumentPeriapsis: number;
|
|
18
|
+
/** Mean anomaly at epoch (J2000) in degrees */
|
|
19
|
+
meanAnomalyEpoch: number;
|
|
20
|
+
/** Orbital period in days */
|
|
21
|
+
orbitalPeriod: number;
|
|
22
|
+
/** Parent body name for moons/satellites (optional) */
|
|
23
|
+
parent?: string;
|
|
24
|
+
}
|
|
25
|
+
interface Position3D {
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
z: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Convert radians to degrees
|
|
32
|
+
*/
|
|
33
|
+
declare function toDegrees(radians: number): number;
|
|
34
|
+
/**
|
|
35
|
+
* Calculate position in 3D space from orbital elements at a given time
|
|
36
|
+
*
|
|
37
|
+
* @param elements - Keplerian orbital elements
|
|
38
|
+
* @param julianDate - Julian date (days since J2000 epoch)
|
|
39
|
+
* @returns 3D position in AU (heliocentric or relative to parent)
|
|
40
|
+
*/
|
|
41
|
+
declare function calculatePosition(elements: OrbitalElements, julianDate: number): Position3D;
|
|
42
|
+
/**
|
|
43
|
+
* Convert Date to Julian Date (days since J2000.0 epoch)
|
|
44
|
+
* J2000.0 = January 1, 2000, 12:00 TT (Terrestrial Time)
|
|
45
|
+
*
|
|
46
|
+
* @param date - JavaScript Date object
|
|
47
|
+
* @returns Julian date (days since J2000)
|
|
48
|
+
*/
|
|
49
|
+
declare function dateToJulian(date: Date): number;
|
|
50
|
+
/**
|
|
51
|
+
* Convert Julian date to JavaScript Date
|
|
52
|
+
*
|
|
53
|
+
* @param julianDate - Days since J2000
|
|
54
|
+
* @returns JavaScript Date object
|
|
55
|
+
*/
|
|
56
|
+
declare function julianToDate(julianDate: number): Date;
|
|
57
|
+
/**
|
|
58
|
+
* Generate orbital path points for visualization
|
|
59
|
+
*
|
|
60
|
+
* @param elements - Orbital elements
|
|
61
|
+
* @param numPoints - Number of points to generate (default: 100)
|
|
62
|
+
* @returns Array of 3D positions around the orbit
|
|
63
|
+
*/
|
|
64
|
+
declare function generateOrbitalPath(elements: OrbitalElements, numPoints?: number): Position3D[];
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Time Manager for Orbital Simulations
|
|
68
|
+
*
|
|
69
|
+
* Manages simulation time, time scaling, and animation loop for orbital mechanics.
|
|
70
|
+
*/
|
|
71
|
+
type TimeUpdateCallback = (julianDate: number, realDate: Date) => void;
|
|
72
|
+
declare class TimeManager {
|
|
73
|
+
private julianDate;
|
|
74
|
+
private timeScale;
|
|
75
|
+
private isPaused;
|
|
76
|
+
private lastUpdateTime;
|
|
77
|
+
private callbacks;
|
|
78
|
+
private intervalId;
|
|
79
|
+
constructor(startDate?: Date);
|
|
80
|
+
/**
|
|
81
|
+
* Start the time simulation loop
|
|
82
|
+
*/
|
|
83
|
+
start(): void;
|
|
84
|
+
/**
|
|
85
|
+
* Stop the time simulation loop
|
|
86
|
+
*/
|
|
87
|
+
stop(): void;
|
|
88
|
+
/**
|
|
89
|
+
* Update tick
|
|
90
|
+
*/
|
|
91
|
+
private update;
|
|
92
|
+
/**
|
|
93
|
+
* Advance simulation time
|
|
94
|
+
*
|
|
95
|
+
* @param deltaMs - Milliseconds elapsed in real time
|
|
96
|
+
*/
|
|
97
|
+
advance(deltaMs: number): void;
|
|
98
|
+
/**
|
|
99
|
+
* Pause time progression
|
|
100
|
+
*/
|
|
101
|
+
pause(): void;
|
|
102
|
+
/**
|
|
103
|
+
* Resume time progression
|
|
104
|
+
*/
|
|
105
|
+
play(): void;
|
|
106
|
+
/**
|
|
107
|
+
* Toggle pause/play
|
|
108
|
+
*/
|
|
109
|
+
togglePause(): void;
|
|
110
|
+
/**
|
|
111
|
+
* Set time scale (speed multiplier)
|
|
112
|
+
*
|
|
113
|
+
* @param scale - Time scale (1 = real-time, 10 = 10x speed, etc.)
|
|
114
|
+
*/
|
|
115
|
+
setTimeScale(scale: number): void;
|
|
116
|
+
/**
|
|
117
|
+
* Get current time scale
|
|
118
|
+
*/
|
|
119
|
+
getTimeScale(): number;
|
|
120
|
+
/**
|
|
121
|
+
* Set simulation date
|
|
122
|
+
*
|
|
123
|
+
* @param date - JavaScript Date object
|
|
124
|
+
*/
|
|
125
|
+
setDate(date: Date): void;
|
|
126
|
+
/**
|
|
127
|
+
* Get current simulation date as Julian date
|
|
128
|
+
*/
|
|
129
|
+
getJulianDate(): number;
|
|
130
|
+
/**
|
|
131
|
+
* Get current simulation date as JavaScript Date
|
|
132
|
+
*/
|
|
133
|
+
getDate(): Date;
|
|
134
|
+
/**
|
|
135
|
+
* Check if time is paused
|
|
136
|
+
*/
|
|
137
|
+
getIsPaused(): boolean;
|
|
138
|
+
/**
|
|
139
|
+
* Register a callback for time updates
|
|
140
|
+
*
|
|
141
|
+
* @param callback - Function to call when time updates
|
|
142
|
+
*/
|
|
143
|
+
onUpdate(callback: TimeUpdateCallback): void;
|
|
144
|
+
/**
|
|
145
|
+
* Unregister a time update callback
|
|
146
|
+
*
|
|
147
|
+
* @param callback - Callback function to remove
|
|
148
|
+
*/
|
|
149
|
+
offUpdate(callback: TimeUpdateCallback): void;
|
|
150
|
+
/**
|
|
151
|
+
* Notify all registered callbacks of time update
|
|
152
|
+
*/
|
|
153
|
+
private notifyCallbacks;
|
|
154
|
+
/**
|
|
155
|
+
* Get time state for serialization
|
|
156
|
+
*/
|
|
157
|
+
getState(): {
|
|
158
|
+
julianDate: number;
|
|
159
|
+
timeScale: number;
|
|
160
|
+
isPaused: boolean;
|
|
161
|
+
date: string;
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* AttentionEngine
|
|
167
|
+
*
|
|
168
|
+
* Implements a heuristic-driven spatial culling and attention
|
|
169
|
+
* scoring system to avoid O(N^2) perception processing.
|
|
170
|
+
*/
|
|
171
|
+
interface AttendedEntity {
|
|
172
|
+
id: string;
|
|
173
|
+
position: [number, number, number];
|
|
174
|
+
velocity?: {
|
|
175
|
+
x: number;
|
|
176
|
+
y: number;
|
|
177
|
+
z: number;
|
|
178
|
+
};
|
|
179
|
+
saliencyBase?: number;
|
|
180
|
+
}
|
|
181
|
+
interface AttentionScore {
|
|
182
|
+
entityId: string;
|
|
183
|
+
weight: number;
|
|
184
|
+
}
|
|
185
|
+
declare class AttentionEngine {
|
|
186
|
+
/**
|
|
187
|
+
* Calculates the attention weight of a target entity relative to an observer.
|
|
188
|
+
* Incorporates 4 factors: Proximity, Movement, Base Saliency, and Recency (mocked).
|
|
189
|
+
*/
|
|
190
|
+
static calculateWeight(observerPos: {
|
|
191
|
+
x: number;
|
|
192
|
+
y: number;
|
|
193
|
+
z: number;
|
|
194
|
+
}, target: AttendedEntity): number;
|
|
195
|
+
/**
|
|
196
|
+
* Filters a massive array of entities down to strictly the top K most attended
|
|
197
|
+
* objects around the observer to save inference/rendering payload.
|
|
198
|
+
*/
|
|
199
|
+
static getTopKEntities(observerPos: {
|
|
200
|
+
x: number;
|
|
201
|
+
y: number;
|
|
202
|
+
z: number;
|
|
203
|
+
}, entities: AttendedEntity[], k: number): string[];
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
type index_AttendedEntity = AttendedEntity;
|
|
207
|
+
type index_AttentionEngine = AttentionEngine;
|
|
208
|
+
declare const index_AttentionEngine: typeof AttentionEngine;
|
|
209
|
+
type index_AttentionScore = AttentionScore;
|
|
210
|
+
type index_OrbitalElements = OrbitalElements;
|
|
211
|
+
type index_Position3D = Position3D;
|
|
212
|
+
type index_TimeManager = TimeManager;
|
|
213
|
+
declare const index_TimeManager: typeof TimeManager;
|
|
214
|
+
type index_TimeUpdateCallback = TimeUpdateCallback;
|
|
215
|
+
declare const index_calculatePosition: typeof calculatePosition;
|
|
216
|
+
declare const index_dateToJulian: typeof dateToJulian;
|
|
217
|
+
declare const index_generateOrbitalPath: typeof generateOrbitalPath;
|
|
218
|
+
declare const index_julianToDate: typeof julianToDate;
|
|
219
|
+
declare const index_toDegrees: typeof toDegrees;
|
|
220
|
+
declare namespace index {
|
|
221
|
+
export { type index_AttendedEntity as AttendedEntity, index_AttentionEngine as AttentionEngine, type index_AttentionScore as AttentionScore, type index_OrbitalElements as OrbitalElements, type index_Position3D as Position3D, index_TimeManager as TimeManager, type index_TimeUpdateCallback as TimeUpdateCallback, index_calculatePosition as calculatePosition, index_dateToJulian as dateToJulian, index_generateOrbitalPath as generateOrbitalPath, index_julianToDate as julianToDate, index_toDegrees as toDegrees };
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
export { type AttendedEntity as A, type OrbitalElements as O, type Position3D as P, TimeManager as T, AttentionEngine as a, type AttentionScore as b, type TimeUpdateCallback as c, calculatePosition as d, dateToJulian as e, generateOrbitalPath as g, index as i, julianToDate as j, toDegrees as t };
|