UNPKG

ts-useful

Version:

Functions for animation, color transitions, ecliptic, bezier, decasteljau, curves, three dimensional curves, smooth scrolling, random range, randomItem, mobius index, vectors, physics vectors, and easing.

117 lines (116 loc) 3.09 kB
import { Vector } from '../vector'; import { coordinate, minMax } from '../types'; import { IVector, IPhysicsVector } from '../interfaces'; import { PhysicsVectorOptions } from '../types/physicsVectorOptions'; import { dragOptions } from '../types/dragOptions'; export declare abstract class PhysicsVect extends Vector implements IPhysicsVector { gravity: number; mass: number; density: number; restitution: number; acceleration: IVector; velocity: IVector; distanceClamp: minMax; static defaultOptions: { gravity: number; mass: number; density: number; restitution: number; distanceClamp: minMax; }; /** * * @param m number * @param d number * @returns */ protected volume: (m: number, d: number) => number; /** * * @param params PhysicsVectorOptions */ constructor(params?: PhysicsVectorOptions); /** * * @param primary IPhysicsVector * @param secondary IPhysicsVector * @returns Vector */ static attract: (primary: IPhysicsVector, secondary: IPhysicsVector) => Vector; /** * * @param vector IPhysicsVector * @param force IVector * @returns IPhysicsVector */ static applyForce: (vector: IPhysicsVector, force: IVector) => IPhysicsVector; /** * * @param vector IPhysicsVector * @param dragOptions dragOptions * @returns IPhysicsVector */ static drag: (vector: IPhysicsVector, dragOptions: dragOptions) => IPhysicsVector; /** * * @param vector IPhysicsVector * @param gravity number * @param axis 'x' | 'y' default 'y' * @returns IPhysicsVector */ static addGravity: (vector: IPhysicsVector, gravity: number, axis?: 'x' | 'y') => IPhysicsVector; /** * * @param vector IPhysicsVector * @returns IPhysicsVector */ static updateGravity: (vector: IPhysicsVector) => IPhysicsVector; /** * * @param vector * @param params */ static bindToArea: (vector: IPhysicsVector, params: { min: coordinate; max: coordinate; }) => void; /** * * @param gravity number * @param axis 'x' | 'y" optional * @returns this */ addGravity: (gravity: number, axis?: 'x' | 'y') => this; /** * * @param target IPhysicsVector * @returns this */ attract: (target: IPhysicsVector) => this; /** * * @param force IVector * @returns this */ applyForce: (force: IVector) => this; /** * * @param dragOptions dragOptions * @returns this */ drag: (dragOptions: dragOptions) => this; /** * * @returns this */ updateGravity: () => this; /** * * @param params { min: coordinate, max: coordinate } * @returns void */ bindToArea: (params: { min: coordinate; max: coordinate; }) => void; }