declare namespace openfl.geom { /** * The Point object represents a location in a two-dimensional coordinate * system, where _x_ represents the horizontal axis and _y_ * represents the vertical axis. * * The following code creates a point at (0,0): * * Methods and properties of the following classes use Point objects: * * * * BitmapData * * DisplayObject * * DisplayObjectContainer * * DisplacementMapFilter * * NativeWindow * * Matrix * * Rectangle * * * You can use the `new Point()` constructor to create a Point * object. * * @see [Working with geometry](https://books.openfl.org/openfl-developers-guide/working-with-geometry/) * @see [Using Point objects](https://books.openfl.org/openfl-developers-guide/working-with-geometry/using-point-objects.html) * */ export class Point { /** * Creates a new point. If you pass no parameters to this method, a point is * created at (0,0). * * @param x The horizontal coordinate. * @param y The vertical coordinate. * */ constructor(x?: number, y?: number); /** * Returns the distance between `pt1` and `pt2`. * * @param pt1 The first point. * @param pt2 The second point. * @return The distance between the first and second points. * */ static distance(pt1: Point, pt2: Point): number; /** * Determines a point between two specified points. The parameter * `f` determines where the new interpolated point is located * relative to the two end points specified by parameters `pt1` * and `pt2`. The closer the value of the parameter `f` * is to `1.0`, the closer the interpolated point is to the first * point (parameter `pt1`). The closer the value of the parameter * `f` is to 0, the closer the interpolated point is to the second * point (parameter `pt2`). * * @param pt1 The first point. * @param pt2 The second point. * @param f The level of interpolation between the two points. Indicates * where the new point will be, along the line between * `pt1` and `pt2`. If `f`=1, * `pt1` is returned; if `f`=0, * `pt2` is returned. * @return The new, interpolated point. * */ static interpolate(pt1: Point, pt2: Point, f: number): Point; /** * Determines a point between two specified points, and sets them on the * specified output point (or a new point, if null). The parameter * `f` determines where the new interpolated point is located * relative to the two end points specified by parameters `pt1` * and `pt2`. The closer the value of the parameter `f` * is to `1.0`, the closer the interpolated point is to the first * point (parameter `pt1`). The closer the value of the parameter * `f` is to 0, the closer the interpolated point is to the second * point (parameter `pt2`). * * @param pt1 The first point. * @param pt2 The second point. * @param f The level of interpolation between the two points. Indicates * where the new point will be, along the line between * `pt1` and `pt2`. If `f`=1, * `pt1` is returned; if `f`=0, * `pt2` is returned. * @param output An optional point to be used for the result of the operation. * @return The new, interpolated point (or the object passed in as the output parameter, if not null). * */ static interpolateToOutput(pt1: Point, pt2: Point, f: number, output: Point): Point; /** * Converts a pair of polar coordinates to a Cartesian point coordinate. * * @param len The length coordinate of the polar pair. * @param angle The angle, in radians, of the polar pair. * @return The Cartesian point. * */ static polar(len: number, angle: number): Point; /** * Converts a pair of polar coordinates to a Cartesian point coordinate, * and sets them on the specified output point (or a new point, if * null). * * @param len The length coordinate of the polar pair. * @param angle The angle, in radians, of the polar pair. * @param output An optional point to be used for the result of the operation. * @return The Cartesian point (or the object passed in as the output parameter, if not null). * */ static polarToOutput(len: number, angle: number, output: Point): Point; /** * The length of the line segment from (0,0) to this point. * */ get length(): number; /** * The horizontal coordinate of the point. The default value is 0. * */ x: number; /** * The vertical coordinate of the point. The default value is 0. * */ y: number; /** * Adds the coordinates of another point to the coordinates of this point to * create a new point. * * @param v The point to be added. * @return The new point. * */ add(v: Point): Point; /** * Adds the coordinates of another point to the coordinates of this point * and sets them on the specified output point (or a new point, if null). * * @param v The point to be added. * @param output An optional point to be used for the result of the operation. * @return The new point (or the object passed in as the output parameter, if not null). * */ addToOutput(v: Point, output: Point): Point; /** * Creates a copy of this Point object. * * @return The new Point object. * */ clone(): Point; /** * Copies all of the point data from the source Point object into the calling Point * object. * * @param sourcePoint The Point object from which to copy the data. * */ copyFrom(sourcePoint: Point): void; /** * Determines whether two points are equal. Two points are equal if they have * the same _x_ and _y_ values. * * @param toCompare The point to be compared. * @return A value of `true` if the object is equal to this Point * object; `false` if it is not equal. * */ equals(toCompare: Point): boolean; /** * Scales the line segment between (0,0) and the current point to a set * length. * * @param thickness The scaling value. For example, if the current point is * (0,5), and you normalize it to 1, the point returned is * at (0,1). * @return The normalized point. * */ normalize(thickness: number): void; /** * Offsets the Point object by the specified amount. The value of * `dx` is added to the original value of _x_ to create the * new _x_ value. The value of `dy` is added to the original * value of _y_ to create the new _y_ value. * * @param dx The amount by which to offset the horizontal coordinate, * _x_. * @param dy The amount by which to offset the vertical coordinate, _y_. * */ offset(dx: number, dy: number): void; /** * Sets the members of Point to the specified values * * @param xa the values to set the point to. * @param ya * */ setTo(xa: number, ya: number): void; /** * Subtracts the coordinates of another point from the coordinates of this * point to create a new point. * * @param v The point to be subtracted. * @return The new point. * */ subtract(v: Point): Point; /** * Subtracts the coordinates of another point from the coordinates of this * point, and sets them on the specified output point (or a new point, if * null). * * @param v The point to be subtracted. * @param output An optional point to be used for the result of the operation. * @return The new point (or the object passed in as the output parameter, if not null). * */ subtractToOutput(v: Point, output: Point): Point; /** * Returns a string that contains the values of the _x_ and _y_ * coordinates. The string has the form `"(x=_x_, * y=_y_)"`, so calling the `toString()` method for a * point at 23,17 would return `"(x=23, y=17)"`. * * @return The string representation of the coordinates. * */ toString(): string; } } export default openfl.geom.Point;