@guinetik/gcanvas 1.0.0 → 1.0.1
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/demos/fluid-simple.html +22 -0
- package/demos/fluid.html +37 -0
- package/demos/index.html +2 -0
- package/demos/js/blob.js +18 -5
- package/demos/js/fluid-simple.js +253 -0
- package/demos/js/fluid.js +527 -0
- package/demos/js/tde/accretiondisk.js +64 -11
- package/demos/js/tde/blackholescene.js +2 -2
- package/demos/js/tde/config.js +2 -2
- package/demos/js/tde/index.js +152 -27
- package/demos/js/tde/lensedstarfield.js +32 -25
- package/demos/js/tde/tdestar.js +78 -98
- package/demos/js/tde/tidalstream.js +23 -7
- package/docs/README.md +230 -222
- package/docs/api/FluidSystem.md +173 -0
- package/docs/concepts/architecture-overview.md +204 -204
- package/docs/concepts/rendering-pipeline.md +279 -279
- package/docs/concepts/two-layer-architecture.md +229 -229
- package/docs/fluid-dynamics.md +97 -0
- package/docs/getting-started/first-game.md +354 -354
- package/docs/getting-started/installation.md +175 -157
- package/docs/modules/collision/README.md +2 -2
- package/docs/modules/fluent/README.md +6 -6
- package/docs/modules/game/README.md +303 -303
- package/docs/modules/isometric-camera.md +2 -2
- package/docs/modules/isometric.md +1 -1
- package/docs/modules/painter/README.md +328 -328
- package/docs/modules/particle/README.md +3 -3
- package/docs/modules/shapes/README.md +221 -221
- package/docs/modules/shapes/base/euclidian.md +123 -123
- package/docs/modules/shapes/base/shape.md +262 -262
- package/docs/modules/shapes/base/transformable.md +243 -243
- package/docs/modules/state/README.md +2 -2
- package/docs/modules/util/README.md +1 -1
- package/docs/modules/util/camera3d.md +3 -3
- package/docs/modules/util/scene3d.md +1 -1
- package/package.json +3 -1
- package/readme.md +19 -5
- package/src/collision/collision.js +75 -0
- package/src/game/index.js +2 -1
- package/src/game/pipeline.js +3 -3
- package/src/game/systems/FluidSystem.js +835 -0
- package/src/game/systems/index.js +11 -0
- package/src/game/ui/button.js +39 -18
- package/src/game/ui/cursor.js +14 -0
- package/src/game/ui/fps.js +12 -4
- package/src/game/ui/index.js +2 -0
- package/src/game/ui/stepper.js +549 -0
- package/src/game/ui/theme.js +121 -0
- package/src/game/ui/togglebutton.js +9 -3
- package/src/game/ui/tooltip.js +11 -4
- package/src/math/fluid.js +507 -0
- package/src/math/index.js +2 -0
- package/src/mixins/anchor.js +17 -7
- package/src/motion/tweenetik.js +16 -0
- package/src/shapes/index.js +1 -0
- package/src/util/camera3d.js +218 -12
- package/types/fluent.d.ts +361 -0
- package/types/game.d.ts +303 -0
- package/types/index.d.ts +144 -5
- package/types/math.d.ts +361 -0
- package/types/motion.d.ts +271 -0
- package/types/particle.d.ts +373 -0
- package/types/shapes.d.ts +107 -9
- package/types/util.d.ts +353 -0
- package/types/webgl.d.ts +109 -0
- package/disk_example.png +0 -0
- package/tde.png +0 -0
package/types/math.d.ts
CHANGED
|
@@ -266,3 +266,364 @@ export function generatePenroseTilingPixels(
|
|
|
266
266
|
height?: number,
|
|
267
267
|
options?: PenroseTilingOptions
|
|
268
268
|
): Uint8ClampedArray;
|
|
269
|
+
|
|
270
|
+
// ==========================================================================
|
|
271
|
+
// Tensor (Rank-2 Tensor for General Relativity)
|
|
272
|
+
// ==========================================================================
|
|
273
|
+
|
|
274
|
+
/** Tensor creation options */
|
|
275
|
+
export interface TensorOptions {
|
|
276
|
+
/** Name of the tensor (e.g., 'Schwarzschild') */
|
|
277
|
+
name?: string;
|
|
278
|
+
/** Metric signature (e.g., [-1, 1, 1, 1]) */
|
|
279
|
+
signature?: number[];
|
|
280
|
+
/** Coordinate names (e.g., ['t', 'r', 'θ', 'φ']) */
|
|
281
|
+
coordinates?: string[];
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Rank-2 Tensor class for general relativity calculations.
|
|
286
|
+
* Provides immutable tensor operations following the Complex class pattern.
|
|
287
|
+
*
|
|
288
|
+
* @example
|
|
289
|
+
* const g = Tensor.schwarzschild(10, 2);
|
|
290
|
+
* console.log(g.get(0, 0)); // g_tt component
|
|
291
|
+
*/
|
|
292
|
+
export class Tensor {
|
|
293
|
+
/** Tensor dimension (n for n×n tensor) */
|
|
294
|
+
readonly dimension: number;
|
|
295
|
+
/** Tensor name */
|
|
296
|
+
readonly name: string;
|
|
297
|
+
/** Metric signature */
|
|
298
|
+
readonly signature: number[] | null;
|
|
299
|
+
/** Coordinate names */
|
|
300
|
+
readonly coordinates: string[] | null;
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Create a new rank-2 tensor from a 2D array of components.
|
|
304
|
+
* @param components - 2D array of tensor components
|
|
305
|
+
* @param options - Optional metadata
|
|
306
|
+
*/
|
|
307
|
+
constructor(components: number[][], options?: TensorOptions);
|
|
308
|
+
|
|
309
|
+
// Static Factory Methods
|
|
310
|
+
/** Create a Minkowski (flat spacetime) metric tensor */
|
|
311
|
+
static minkowski(): Tensor;
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* Create a Schwarzschild metric tensor at a given radial position.
|
|
315
|
+
* @param r - Radial coordinate (must be > rs)
|
|
316
|
+
* @param rs - Schwarzschild radius (2GM/c²)
|
|
317
|
+
* @param theta - Polar angle (default: equatorial plane)
|
|
318
|
+
*/
|
|
319
|
+
static schwarzschild(r: number, rs: number, theta?: number): Tensor;
|
|
320
|
+
|
|
321
|
+
/** Create contravariant Schwarzschild metric */
|
|
322
|
+
static schwarzschildContravariant(r: number, rs: number, theta?: number): Tensor;
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Create a Kerr metric tensor (rotating black hole).
|
|
326
|
+
* @param r - Radial coordinate
|
|
327
|
+
* @param theta - Polar angle
|
|
328
|
+
* @param M - Mass parameter
|
|
329
|
+
* @param a - Spin parameter (0 ≤ a ≤ M)
|
|
330
|
+
*/
|
|
331
|
+
static kerr(r: number, theta: number, M: number, a: number): Tensor;
|
|
332
|
+
|
|
333
|
+
/** Create contravariant Kerr metric */
|
|
334
|
+
static kerrContravariant(r: number, theta: number, M: number, a: number): Tensor;
|
|
335
|
+
|
|
336
|
+
/** Calculate Kerr horizon radius */
|
|
337
|
+
static kerrHorizonRadius(M: number, a: number, inner?: boolean): number;
|
|
338
|
+
|
|
339
|
+
/** Calculate ergosphere radius */
|
|
340
|
+
static kerrErgosphereRadius(M: number, a: number, theta: number): number;
|
|
341
|
+
|
|
342
|
+
/** Calculate ISCO radius for Kerr metric */
|
|
343
|
+
static kerrISCO(M: number, a: number, prograde?: boolean): number;
|
|
344
|
+
|
|
345
|
+
/** Calculate frame-dragging angular velocity */
|
|
346
|
+
static kerrFrameDraggingOmega(r: number, theta: number, M: number, a: number): number;
|
|
347
|
+
|
|
348
|
+
/** Calculate Kerr effective potential */
|
|
349
|
+
static kerrEffectivePotential(M: number, a: number, E: number, L: number, r: number): number;
|
|
350
|
+
|
|
351
|
+
/** Create a diagonal tensor */
|
|
352
|
+
static diagonal(values: number[], options?: TensorOptions): Tensor;
|
|
353
|
+
|
|
354
|
+
/** Create an identity tensor */
|
|
355
|
+
static identity(n?: number): Tensor;
|
|
356
|
+
|
|
357
|
+
/** Create a zero tensor */
|
|
358
|
+
static zero(n?: number): Tensor;
|
|
359
|
+
|
|
360
|
+
// Component Access
|
|
361
|
+
/** Get a component at indices */
|
|
362
|
+
get(i: number, j: number): number;
|
|
363
|
+
|
|
364
|
+
/** Return new tensor with component changed */
|
|
365
|
+
set(i: number, j: number, value: number): Tensor;
|
|
366
|
+
|
|
367
|
+
/** Get diagonal components */
|
|
368
|
+
getDiagonal(): number[];
|
|
369
|
+
|
|
370
|
+
// Tensor Operations
|
|
371
|
+
/** Add another tensor */
|
|
372
|
+
add(other: Tensor): Tensor;
|
|
373
|
+
|
|
374
|
+
/** Subtract another tensor */
|
|
375
|
+
subtract(other: Tensor): Tensor;
|
|
376
|
+
|
|
377
|
+
/** Multiply by scalar */
|
|
378
|
+
scale(scalar: number): Tensor;
|
|
379
|
+
|
|
380
|
+
/** Matrix multiply with another tensor */
|
|
381
|
+
multiply(other: Tensor): Tensor;
|
|
382
|
+
|
|
383
|
+
/** Transpose tensor */
|
|
384
|
+
transpose(): Tensor;
|
|
385
|
+
|
|
386
|
+
/** Compute inverse */
|
|
387
|
+
inverse(): Tensor;
|
|
388
|
+
|
|
389
|
+
// Derived Quantities
|
|
390
|
+
/** Compute determinant */
|
|
391
|
+
determinant(): number;
|
|
392
|
+
|
|
393
|
+
/** Compute trace */
|
|
394
|
+
trace(): number;
|
|
395
|
+
|
|
396
|
+
/** Check if diagonal */
|
|
397
|
+
isDiagonal(tolerance?: number): boolean;
|
|
398
|
+
|
|
399
|
+
/** Check if symmetric */
|
|
400
|
+
isSymmetric(tolerance?: number): boolean;
|
|
401
|
+
|
|
402
|
+
// GR Utilities
|
|
403
|
+
/**
|
|
404
|
+
* Compute Christoffel symbols for a metric.
|
|
405
|
+
* @param metricFn - Function returning metric at position
|
|
406
|
+
* @param position - Position [t, r, θ, φ]
|
|
407
|
+
* @param delta - Step size for numerical differentiation
|
|
408
|
+
*/
|
|
409
|
+
static christoffel(
|
|
410
|
+
metricFn: (position: number[]) => Tensor,
|
|
411
|
+
position: number[],
|
|
412
|
+
delta?: number
|
|
413
|
+
): number[][][];
|
|
414
|
+
|
|
415
|
+
/** Analytical Christoffel symbols for Schwarzschild */
|
|
416
|
+
static schwarzschildChristoffel(r: number, rs: number, theta: number): number[][][];
|
|
417
|
+
|
|
418
|
+
/** Compute effective potential for Schwarzschild geodesics */
|
|
419
|
+
static effectivePotential(M: number, L: number, r: number): number;
|
|
420
|
+
|
|
421
|
+
/** ISCO radius for Schwarzschild */
|
|
422
|
+
static iscoRadius(rs: number): number;
|
|
423
|
+
|
|
424
|
+
/** Photon sphere radius */
|
|
425
|
+
static photonSphereRadius(rs: number): number;
|
|
426
|
+
|
|
427
|
+
// Display
|
|
428
|
+
/** Get flat array of components */
|
|
429
|
+
toArray(): number[];
|
|
430
|
+
|
|
431
|
+
/** Get 2D array copy */
|
|
432
|
+
toMatrix(): number[][];
|
|
433
|
+
|
|
434
|
+
/** String representation */
|
|
435
|
+
toString(precision?: number): string;
|
|
436
|
+
|
|
437
|
+
/** LaTeX representation */
|
|
438
|
+
toLatex(precision?: number): string;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
// ==========================================================================
|
|
442
|
+
// General Relativity (gr.js)
|
|
443
|
+
// ==========================================================================
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
* Calculate gravitational lensing deflection.
|
|
447
|
+
* @param b - Impact parameter
|
|
448
|
+
* @param M - Mass
|
|
449
|
+
* @returns Deflection angle in radians
|
|
450
|
+
*/
|
|
451
|
+
export function gravitationalLensingAngle(b: number, M: number): number;
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* Calculate time dilation factor.
|
|
455
|
+
* @param r - Radial coordinate
|
|
456
|
+
* @param rs - Schwarzschild radius
|
|
457
|
+
* @returns Time dilation factor (0-1)
|
|
458
|
+
*/
|
|
459
|
+
export function timeDilationFactor(r: number, rs: number): number;
|
|
460
|
+
|
|
461
|
+
/**
|
|
462
|
+
* Calculate gravitational redshift.
|
|
463
|
+
* @param r - Radial coordinate
|
|
464
|
+
* @param rs - Schwarzschild radius
|
|
465
|
+
* @returns Redshift z
|
|
466
|
+
*/
|
|
467
|
+
export function gravitationalRedshift(r: number, rs: number): number;
|
|
468
|
+
|
|
469
|
+
// ==========================================================================
|
|
470
|
+
// Orbital Mechanics (orbital.js)
|
|
471
|
+
// ==========================================================================
|
|
472
|
+
|
|
473
|
+
/** Orbital state vector */
|
|
474
|
+
export interface OrbitalState {
|
|
475
|
+
x: number;
|
|
476
|
+
y: number;
|
|
477
|
+
z: number;
|
|
478
|
+
vx: number;
|
|
479
|
+
vy: number;
|
|
480
|
+
vz: number;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
/** Keplerian orbital elements */
|
|
484
|
+
export interface OrbitalElements {
|
|
485
|
+
a: number; // Semi-major axis
|
|
486
|
+
e: number; // Eccentricity
|
|
487
|
+
i: number; // Inclination
|
|
488
|
+
Omega: number; // Right ascension of ascending node
|
|
489
|
+
omega: number; // Argument of periapsis
|
|
490
|
+
nu: number; // True anomaly
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
/**
|
|
494
|
+
* Calculate orbital velocity at radius.
|
|
495
|
+
* @param r - Orbital radius
|
|
496
|
+
* @param M - Central mass
|
|
497
|
+
* @returns Orbital velocity
|
|
498
|
+
*/
|
|
499
|
+
export function orbitalVelocity(r: number, M: number): number;
|
|
500
|
+
|
|
501
|
+
/**
|
|
502
|
+
* Calculate orbital period.
|
|
503
|
+
* @param a - Semi-major axis
|
|
504
|
+
* @param M - Central mass
|
|
505
|
+
* @returns Orbital period
|
|
506
|
+
*/
|
|
507
|
+
export function orbitalPeriod(a: number, M: number): number;
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* Convert Keplerian elements to state vector.
|
|
511
|
+
* @param elements - Orbital elements
|
|
512
|
+
* @param mu - Gravitational parameter
|
|
513
|
+
*/
|
|
514
|
+
export function elementsToState(elements: OrbitalElements, mu: number): OrbitalState;
|
|
515
|
+
|
|
516
|
+
/**
|
|
517
|
+
* Propagate orbit using Runge-Kutta.
|
|
518
|
+
* @param state - Current state
|
|
519
|
+
* @param dt - Time step
|
|
520
|
+
* @param mu - Gravitational parameter
|
|
521
|
+
*/
|
|
522
|
+
export function propagateOrbit(state: OrbitalState, dt: number, mu: number): OrbitalState;
|
|
523
|
+
|
|
524
|
+
// ==========================================================================
|
|
525
|
+
// Quantum Mechanics (quantum.js)
|
|
526
|
+
// ==========================================================================
|
|
527
|
+
|
|
528
|
+
/**
|
|
529
|
+
* Gaussian wave packet.
|
|
530
|
+
* @param x - Position
|
|
531
|
+
* @param x0 - Center position
|
|
532
|
+
* @param k0 - Central wavenumber
|
|
533
|
+
* @param sigma - Width parameter
|
|
534
|
+
* @param t - Time
|
|
535
|
+
* @returns Complex amplitude {re, im}
|
|
536
|
+
*/
|
|
537
|
+
export function gaussianWavePacket(
|
|
538
|
+
x: number,
|
|
539
|
+
x0: number,
|
|
540
|
+
k0: number,
|
|
541
|
+
sigma: number,
|
|
542
|
+
t: number
|
|
543
|
+
): { re: number; im: number };
|
|
544
|
+
|
|
545
|
+
/**
|
|
546
|
+
* Probability density |Ψ|².
|
|
547
|
+
* @param psi - Wave function value {re, im}
|
|
548
|
+
*/
|
|
549
|
+
export function probabilityDensity(psi: { re: number; im: number }): number;
|
|
550
|
+
|
|
551
|
+
/**
|
|
552
|
+
* Particle in a box wave function.
|
|
553
|
+
* @param x - Position (0 to L)
|
|
554
|
+
* @param L - Box length
|
|
555
|
+
* @param n - Quantum number
|
|
556
|
+
*/
|
|
557
|
+
export function particleInBox(x: number, L: number, n: number): number;
|
|
558
|
+
|
|
559
|
+
/**
|
|
560
|
+
* Harmonic oscillator wave function.
|
|
561
|
+
* @param x - Position
|
|
562
|
+
* @param n - Energy level
|
|
563
|
+
* @param omega - Angular frequency
|
|
564
|
+
* @param m - Mass
|
|
565
|
+
*/
|
|
566
|
+
export function harmonicOscillator(x: number, n: number, omega: number, m: number): number;
|
|
567
|
+
|
|
568
|
+
// ==========================================================================
|
|
569
|
+
// Heat Transfer (heat.js)
|
|
570
|
+
// ==========================================================================
|
|
571
|
+
|
|
572
|
+
/**
|
|
573
|
+
* Calculate heat transfer between two objects.
|
|
574
|
+
* @param T1 - Temperature of object 1
|
|
575
|
+
* @param T2 - Temperature of object 2
|
|
576
|
+
* @param k - Thermal conductivity
|
|
577
|
+
* @param dt - Time step
|
|
578
|
+
*/
|
|
579
|
+
export function heatTransfer(T1: number, T2: number, k: number, dt: number): number;
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* Calculate buoyancy force.
|
|
583
|
+
* @param temperature - Object temperature
|
|
584
|
+
* @param ambientTemp - Ambient temperature
|
|
585
|
+
* @param coefficient - Buoyancy coefficient
|
|
586
|
+
*/
|
|
587
|
+
export function buoyancyForce(temperature: number, ambientTemp: number, coefficient: number): number;
|
|
588
|
+
|
|
589
|
+
/**
|
|
590
|
+
* Temperature decay toward ambient.
|
|
591
|
+
* @param temp - Current temperature
|
|
592
|
+
* @param ambientTemp - Ambient temperature
|
|
593
|
+
* @param rate - Decay rate
|
|
594
|
+
* @param dt - Time step
|
|
595
|
+
*/
|
|
596
|
+
export function temperatureDecay(temp: number, ambientTemp: number, rate: number, dt: number): number;
|
|
597
|
+
|
|
598
|
+
// ==========================================================================
|
|
599
|
+
// Fluid Dynamics (fluid.js)
|
|
600
|
+
// ==========================================================================
|
|
601
|
+
|
|
602
|
+
/**
|
|
603
|
+
* Calculate viscosity drag force.
|
|
604
|
+
* @param velocity - Velocity vector
|
|
605
|
+
* @param viscosity - Fluid viscosity
|
|
606
|
+
*/
|
|
607
|
+
export function viscosityDrag(velocity: { x: number; y: number }, viscosity: number): { x: number; y: number };
|
|
608
|
+
|
|
609
|
+
/**
|
|
610
|
+
* Calculate surface tension force.
|
|
611
|
+
* @param curvature - Surface curvature
|
|
612
|
+
* @param tension - Surface tension coefficient
|
|
613
|
+
*/
|
|
614
|
+
export function surfaceTension(curvature: number, tension: number): number;
|
|
615
|
+
|
|
616
|
+
/**
|
|
617
|
+
* Calculate Reynolds number.
|
|
618
|
+
* @param velocity - Flow velocity
|
|
619
|
+
* @param length - Characteristic length
|
|
620
|
+
* @param viscosity - Kinematic viscosity
|
|
621
|
+
*/
|
|
622
|
+
export function reynoldsNumber(velocity: number, length: number, viscosity: number): number;
|
|
623
|
+
|
|
624
|
+
/**
|
|
625
|
+
* Navier-Stokes pressure term.
|
|
626
|
+
* @param density - Fluid density
|
|
627
|
+
* @param pressure - Pressure
|
|
628
|
+
*/
|
|
629
|
+
export function pressureGradient(density: number, pressure: number): number;
|
package/types/motion.d.ts
CHANGED
|
@@ -676,3 +676,274 @@ export class Motion {
|
|
|
676
676
|
state?: MotionState | null
|
|
677
677
|
): MotionResult;
|
|
678
678
|
}
|
|
679
|
+
|
|
680
|
+
// ==========================================================================
|
|
681
|
+
// Standalone Motion Functions (V1 API)
|
|
682
|
+
// ==========================================================================
|
|
683
|
+
|
|
684
|
+
/**
|
|
685
|
+
* Standalone bezier curve motion animation.
|
|
686
|
+
* @see Motion.bezier for class method equivalent
|
|
687
|
+
*/
|
|
688
|
+
export function bezierV1(
|
|
689
|
+
p0: [number, number],
|
|
690
|
+
p1: [number, number],
|
|
691
|
+
p2: [number, number],
|
|
692
|
+
p3: [number, number],
|
|
693
|
+
elapsedTime: number,
|
|
694
|
+
duration: number,
|
|
695
|
+
loop?: boolean,
|
|
696
|
+
yoyo?: boolean,
|
|
697
|
+
easingFn?: EasingFunction | null,
|
|
698
|
+
callbacks?: MotionCallbacks,
|
|
699
|
+
state?: MotionState | null
|
|
700
|
+
): MotionPositionResult;
|
|
701
|
+
|
|
702
|
+
/**
|
|
703
|
+
* Standalone bounce animation.
|
|
704
|
+
* @see Motion.bounce for class method equivalent
|
|
705
|
+
*/
|
|
706
|
+
export function bounceV1(
|
|
707
|
+
maxHeight: number,
|
|
708
|
+
groundY: number,
|
|
709
|
+
bounceCount: number,
|
|
710
|
+
elapsedTime: number,
|
|
711
|
+
duration: number,
|
|
712
|
+
loop?: boolean,
|
|
713
|
+
easingFn?: EasingFunction | null,
|
|
714
|
+
callbacks?: MotionCallbacks,
|
|
715
|
+
state?: MotionState | null
|
|
716
|
+
): MotionValueResult;
|
|
717
|
+
|
|
718
|
+
/**
|
|
719
|
+
* Standalone floating motion animation.
|
|
720
|
+
* @see Motion.float for class method equivalent
|
|
721
|
+
*/
|
|
722
|
+
export function floatV1(
|
|
723
|
+
target: PositionTarget,
|
|
724
|
+
elapsedTime: number,
|
|
725
|
+
duration: number,
|
|
726
|
+
speed: number,
|
|
727
|
+
randomness: number,
|
|
728
|
+
radius: number,
|
|
729
|
+
loop?: boolean,
|
|
730
|
+
easingFn?: EasingFunction | null,
|
|
731
|
+
callbacks?: MotionCallbacks,
|
|
732
|
+
state?: MotionState | null
|
|
733
|
+
): MotionPositionResult;
|
|
734
|
+
|
|
735
|
+
/**
|
|
736
|
+
* Standalone path following animation.
|
|
737
|
+
* @see Motion.follow for class method equivalent
|
|
738
|
+
*/
|
|
739
|
+
export function followPath(
|
|
740
|
+
points: [number, number][],
|
|
741
|
+
closed: boolean,
|
|
742
|
+
elapsedTime: number,
|
|
743
|
+
duration: number,
|
|
744
|
+
loop?: boolean,
|
|
745
|
+
easingFn?: EasingFunction | null,
|
|
746
|
+
callbacks?: MotionCallbacks,
|
|
747
|
+
state?: MotionState | null
|
|
748
|
+
): MotionPositionResult;
|
|
749
|
+
|
|
750
|
+
/**
|
|
751
|
+
* Standalone orbital motion animation.
|
|
752
|
+
* @see Motion.orbit for class method equivalent
|
|
753
|
+
*/
|
|
754
|
+
export function orbitV1(
|
|
755
|
+
centerX: number,
|
|
756
|
+
centerY: number,
|
|
757
|
+
radiusX: number,
|
|
758
|
+
radiusY: number,
|
|
759
|
+
startAngle: number,
|
|
760
|
+
elapsedTime: number,
|
|
761
|
+
duration: number,
|
|
762
|
+
loop?: boolean,
|
|
763
|
+
clockwise?: boolean,
|
|
764
|
+
easingFn?: EasingFunction | null,
|
|
765
|
+
callbacks?: MotionCallbacks,
|
|
766
|
+
state?: MotionState | null
|
|
767
|
+
): MotionPositionResult;
|
|
768
|
+
|
|
769
|
+
/**
|
|
770
|
+
* Standalone oscillation animation.
|
|
771
|
+
* @see Motion.oscillate for class method equivalent
|
|
772
|
+
*/
|
|
773
|
+
export function oscillateV1(
|
|
774
|
+
min: number,
|
|
775
|
+
max: number,
|
|
776
|
+
elapsedTime: number,
|
|
777
|
+
duration: number,
|
|
778
|
+
loop?: boolean,
|
|
779
|
+
easingFn?: EasingFunction | null,
|
|
780
|
+
callbacks?: MotionCallbacks,
|
|
781
|
+
state?: MotionState | null
|
|
782
|
+
): MotionValueResult;
|
|
783
|
+
|
|
784
|
+
/**
|
|
785
|
+
* Standalone parabolic arc animation.
|
|
786
|
+
* @see Motion.parabolic for class method equivalent
|
|
787
|
+
*/
|
|
788
|
+
export function parabolicV1(
|
|
789
|
+
start: number,
|
|
790
|
+
peak: number,
|
|
791
|
+
end: number,
|
|
792
|
+
elapsedTime: number,
|
|
793
|
+
duration: number,
|
|
794
|
+
loop?: boolean,
|
|
795
|
+
yoyo?: boolean,
|
|
796
|
+
easingFn?: EasingFunction | null,
|
|
797
|
+
callbacks?: MotionCallbacks,
|
|
798
|
+
state?: MotionState | null
|
|
799
|
+
): MotionValueResult;
|
|
800
|
+
|
|
801
|
+
/**
|
|
802
|
+
* Standalone patrol animation.
|
|
803
|
+
* @see Motion.patrol for class method equivalent
|
|
804
|
+
*/
|
|
805
|
+
export function patrolV1(
|
|
806
|
+
initialX: number,
|
|
807
|
+
initialY: number,
|
|
808
|
+
elapsedTime: number,
|
|
809
|
+
moveTime: number,
|
|
810
|
+
waitTime: number,
|
|
811
|
+
radius: number,
|
|
812
|
+
loop?: boolean,
|
|
813
|
+
state?: MotionState | null
|
|
814
|
+
): MotionPositionResult;
|
|
815
|
+
|
|
816
|
+
/**
|
|
817
|
+
* Standalone pendulum animation.
|
|
818
|
+
* @see Motion.pendulum for class method equivalent
|
|
819
|
+
*/
|
|
820
|
+
export function pendulumV1(
|
|
821
|
+
originAngle: number,
|
|
822
|
+
amplitude: number,
|
|
823
|
+
elapsedTime: number,
|
|
824
|
+
duration: number,
|
|
825
|
+
loop?: boolean,
|
|
826
|
+
damped?: boolean,
|
|
827
|
+
easingFn?: EasingFunction | null,
|
|
828
|
+
callbacks?: MotionCallbacks,
|
|
829
|
+
state?: MotionState | null
|
|
830
|
+
): MotionValueResult;
|
|
831
|
+
|
|
832
|
+
/**
|
|
833
|
+
* Standalone pulse animation.
|
|
834
|
+
* @see Motion.pulse for class method equivalent
|
|
835
|
+
*/
|
|
836
|
+
export function pulseV1(
|
|
837
|
+
min: number,
|
|
838
|
+
max: number,
|
|
839
|
+
elapsedTime: number,
|
|
840
|
+
duration: number,
|
|
841
|
+
loop?: boolean,
|
|
842
|
+
yoyo?: boolean,
|
|
843
|
+
easingFn?: EasingFunction | null,
|
|
844
|
+
callbacks?: MotionCallbacks
|
|
845
|
+
): MotionValueResult;
|
|
846
|
+
|
|
847
|
+
/**
|
|
848
|
+
* Standalone hop/jump animation.
|
|
849
|
+
* @see Motion.hop for class method equivalent
|
|
850
|
+
*/
|
|
851
|
+
export function hopV1(
|
|
852
|
+
startX: number,
|
|
853
|
+
startY: number,
|
|
854
|
+
endX: number,
|
|
855
|
+
endY: number,
|
|
856
|
+
height: number,
|
|
857
|
+
elapsedTime: number,
|
|
858
|
+
duration: number,
|
|
859
|
+
loop?: boolean,
|
|
860
|
+
easingFn?: EasingFunction | null,
|
|
861
|
+
callbacks?: MotionCallbacks,
|
|
862
|
+
state?: MotionState | null
|
|
863
|
+
): MotionPositionResult;
|
|
864
|
+
|
|
865
|
+
/**
|
|
866
|
+
* Standalone shake animation.
|
|
867
|
+
* @see Motion.shake for class method equivalent
|
|
868
|
+
*/
|
|
869
|
+
export function shakeV1(
|
|
870
|
+
centerX: number,
|
|
871
|
+
centerY: number,
|
|
872
|
+
maxOffsetX: number,
|
|
873
|
+
maxOffsetY: number,
|
|
874
|
+
frequency: number,
|
|
875
|
+
decay: number,
|
|
876
|
+
elapsedTime: number,
|
|
877
|
+
duration: number,
|
|
878
|
+
loop?: boolean,
|
|
879
|
+
easingFn?: EasingFunction | null,
|
|
880
|
+
callbacks?: MotionCallbacks,
|
|
881
|
+
state?: MotionState | null
|
|
882
|
+
): MotionPositionResult;
|
|
883
|
+
|
|
884
|
+
/**
|
|
885
|
+
* Standalone spiral animation.
|
|
886
|
+
* @see Motion.spiral for class method equivalent
|
|
887
|
+
*/
|
|
888
|
+
export function spiralV1(
|
|
889
|
+
centerX: number,
|
|
890
|
+
centerY: number,
|
|
891
|
+
startRadius: number,
|
|
892
|
+
endRadius: number,
|
|
893
|
+
startAngle: number,
|
|
894
|
+
revolutions: number,
|
|
895
|
+
elapsedTime: number,
|
|
896
|
+
duration: number,
|
|
897
|
+
loop?: boolean,
|
|
898
|
+
yoyo?: boolean,
|
|
899
|
+
easingFn?: EasingFunction | null,
|
|
900
|
+
callbacks?: MotionCallbacks,
|
|
901
|
+
state?: MotionState | null
|
|
902
|
+
): MotionPositionResult;
|
|
903
|
+
|
|
904
|
+
/**
|
|
905
|
+
* Standalone spring animation.
|
|
906
|
+
* @see Motion.spring for class method equivalent
|
|
907
|
+
*/
|
|
908
|
+
export function springV1(
|
|
909
|
+
initial: number,
|
|
910
|
+
target: number,
|
|
911
|
+
elapsedTime: number,
|
|
912
|
+
duration: number,
|
|
913
|
+
loop?: boolean,
|
|
914
|
+
yoyo?: boolean,
|
|
915
|
+
springParams?: SpringParams,
|
|
916
|
+
callbacks?: MotionCallbacks
|
|
917
|
+
): SpringResult;
|
|
918
|
+
|
|
919
|
+
/**
|
|
920
|
+
* Standalone swing animation.
|
|
921
|
+
* @see Motion.swing for class method equivalent
|
|
922
|
+
*/
|
|
923
|
+
export function swingV1(
|
|
924
|
+
centerX: number,
|
|
925
|
+
centerY: number,
|
|
926
|
+
maxAngle: number,
|
|
927
|
+
elapsedTime: number,
|
|
928
|
+
duration: number,
|
|
929
|
+
loop?: boolean,
|
|
930
|
+
yoyo?: boolean,
|
|
931
|
+
easingFn?: EasingFunction | null,
|
|
932
|
+
callbacks?: MotionCallbacks,
|
|
933
|
+
state?: MotionState | null
|
|
934
|
+
): MotionPositionResult;
|
|
935
|
+
|
|
936
|
+
/**
|
|
937
|
+
* Standalone waypoint animation.
|
|
938
|
+
* @see Motion.waypoint for class method equivalent
|
|
939
|
+
*/
|
|
940
|
+
export function waypointV1(
|
|
941
|
+
target: PositionTarget,
|
|
942
|
+
elapsedTime: number,
|
|
943
|
+
waypoints: [number, number][],
|
|
944
|
+
speed: number,
|
|
945
|
+
waitTime: number,
|
|
946
|
+
loop?: boolean,
|
|
947
|
+
callbacks?: MotionCallbacks,
|
|
948
|
+
state?: MotionState | null
|
|
949
|
+
): WaypointResult;
|