import Vector3D from "openfl/geom/Vector3D"; import Point from "openfl/geom/Point"; declare namespace starling.utils { /** * A utility class containing methods you might need for math problems. */ export class MathUtil { /** * Calculates the intersection point between the xy-plane and an infinite line * * that is defined by two 3D points in the same coordinate system. */ static intersectLineWithXYPlane(pointA: Vector3D, pointB: Vector3D, out?: Point): Point; /** * Calculates if the point p is inside the triangle a-b-c. */ static isPointInTriangle(p: Point, a: Point, b: Point, c: Point): boolean; /** * Moves a radian angle into the range [-PI, +PI], while keeping the direction intact. */ static normalizeAngle(angle: number): number; /** * Returns the next power of two that is equal to or bigger than the specified number. */ static getNextPowerOfTwo(number: number): number; /** * Indicates if two float (Number) values are equal, give or take epsilon. */ static isEquivalent(a: number, b: number, epsilon?: number): boolean; /** * Returns the larger of the two values. Different to the native Math.max, * * this doesn't create any temporary objects when using the AOT compiler. */ static max(a: number, b: number): number; /** * Returns the smaller of the two values. Different to the native Math.min, * * this doesn't create any temporary objects when using the AOT compiler. */ static min(a: number, b: number): number; /** * Moves value into the range between min and max. */ static clamp(value: number, min: number, max: number): number; /** * Returns the smallest value in an array. */ static minValues(values: Array): number; /** * Converts an angle from degrees into radians. */ static deg2rad(deg: number): number; /** * Converts an angle from radians into degrees. */ static rad2deg(rad: number): number; static toFixed(value: number, precision: number): string; } } export default starling.utils.MathUtil;