UNPKG

ootk-core

Version:

Orbital Object Toolkit. A modern typed replacement for satellite.js including SGP4 propagation, TLE parsing, Sun and Moon calculations, and more.

71 lines (70 loc) 3.07 kB
/** * @author Theodore Kruczek. * @license MIT * @copyright (c) 2022-2025 Theodore Kruczek Permission is * hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the * Software without restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import { Kilometers, KilometersPerSecond } from '../main.js'; import { Matrix } from '../operations/Matrix.js'; import { Vector3D } from '../operations/Vector3D.js'; import { J2000 } from './J2000.js'; /** * Represents the relative state of an object in 3D space. */ export declare abstract class RelativeState { position: Vector3D<Kilometers>; velocity: Vector3D<KilometersPerSecond>; constructor(position: Vector3D<Kilometers>, velocity: Vector3D<KilometersPerSecond>); /** * Gets the name of the coordinate system. * @returns The name of the coordinate system. */ abstract get name(): string; /** * Returns a string representation of the RelativeState object. The string includes the name, position, and velocity * of the object. * @returns A string representation of the RelativeState object. */ toString(): string; /** * Transforms the current RelativeState coordinate to the J2000 coordinate * @param origin The origin J2000 coordinate. * @returns The transformed J2000 coordinate. */ abstract toJ2000(origin: J2000): J2000; /** * Creates a matrix based on the given position and velocity vectors. The matrix represents the relative state of an * object in 3D space. * @param position - The position vector. * @param velocity - The velocity vector. * @returns The matrix representing the relative state. */ static createMatrix(position: Vector3D, velocity: Vector3D): Matrix; /** * Calculates the range of the relative state. * @returns The range in kilometers. */ get range(): Kilometers; /** * Calculates the range rate of the relative state. Range rate is the dot product of the position and velocity divided * by the range. * @returns The range rate in Kilometers per second. */ get rangeRate(): number; }