123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421 |
- import type { DeepImmutable } from "../types";
- import { Vector2, Vector3 } from "./math.vector";
- /**
- * Class used to store (r, theta) vector representation
- */
- export declare class Polar {
- radius: number;
- theta: number;
- /**
- * Creates a new Polar object
- * @param radius the radius of the vector
- * @param theta the angle of the vector
- */
- constructor(radius: number, theta: number);
- /**
- * Gets the class name
- * @returns the string "Polar"
- */
- getClassName(): string;
- /**
- * Converts the current polar to a string
- * @returns the current polar as a string
- */
- toString(): string;
- /**
- * Converts the current polar to an array
- * @returns the current polar as an array
- */
- asArray(): number[];
- /**
- * Adds the current Polar and the given Polar and stores the result
- * @param polar the polar to add
- * @param ref the polar to store the result in
- * @returns the updated ref
- */
- addToRef(polar: Polar, ref: Polar): Polar;
- /**
- * Adds the current Polar and the given Polar
- * @param polar the polar to add
- * @returns the sum polar
- */
- add(polar: Polar): Polar;
- /**
- * Adds the given polar to the current polar
- * @param polar the polar to add
- * @returns the current polar
- */
- addInPlace(polar: Polar): this;
- /**
- * Adds the provided values to the current polar
- * @param radius the amount to add to the radius
- * @param theta the amount to add to the theta
- * @returns the current polar
- */
- addInPlaceFromFloats(radius: number, theta: number): this;
- /**
- * Subtracts the given Polar from the current Polar and stores the result
- * @param polar the polar to subtract
- * @param ref the polar to store the result in
- * @returns the updated ref
- */
- subtractToRef(polar: Polar, ref: Polar): Polar;
- /**
- * Subtracts the given Polar from the current Polar
- * @param polar the polar to subtract
- * @returns the difference polar
- */
- subtract(polar: Polar): Polar;
- /**
- * Subtracts the given Polar from the current Polar
- * @param polar the polar to subtract
- * @returns the current polar
- */
- subtractInPlace(polar: Polar): this;
- /**
- * Subtracts the given floats from the current polar
- * @param radius the amount to subtract from the radius
- * @param theta the amount to subtract from the theta
- * @param ref the polar to store the result in
- * @returns the updated ref
- */
- subtractFromFloatsToRef(radius: number, theta: number, ref: Polar): Polar;
- /**
- * Subtracts the given floats from the current polar
- * @param radius the amount to subtract from the radius
- * @param theta the amount to subtract from the theta
- * @returns the difference polar
- */
- subtractFromFloats(radius: number, theta: number): Polar;
- /**
- * Multiplies the given Polar with the current Polar and stores the result
- * @param polar the polar to multiply
- * @param ref the polar to store the result in
- * @returns the updated ref
- */
- multiplyToRef(polar: Polar, ref: Polar): Polar;
- /**
- * Multiplies the given Polar with the current Polar
- * @param polar the polar to multiply
- * @returns the product polar
- */
- multiply(polar: Polar): Polar;
- /**
- * Multiplies the given Polar with the current Polar
- * @param polar the polar to multiply
- * @returns the current polar
- */
- multiplyInPlace(polar: Polar): this;
- /**
- * Divides the current Polar by the given Polar and stores the result
- * @param polar the polar to divide
- * @param ref the polar to store the result in
- * @returns the updated ref
- */
- divideToRef(polar: Polar, ref: Polar): Polar;
- /**
- * Divides the current Polar by the given Polar
- * @param polar the polar to divide
- * @returns the quotient polar
- */
- divide(polar: Polar): Polar;
- /**
- * Divides the current Polar by the given Polar
- * @param polar the polar to divide
- * @returns the current polar
- */
- divideInPlace(polar: Polar): this;
- /**
- * Clones the current polar
- * @returns a clone of the current polar
- */
- clone(): Polar;
- /**
- * Copies the source polar into the current polar
- * @param source the polar to copy from
- * @returns the current polar
- */
- copyFrom(source: Polar): this;
- /**
- * Copies the given values into the current polar
- * @param radius the radius to use
- * @param theta the theta to use
- * @returns the current polar
- */
- copyFromFloats(radius: number, theta: number): this;
- /**
- * Scales the current polar and stores the result
- * @param scale defines the multiplication factor
- * @param ref where to store the result
- * @returns the updated ref
- */
- scaleToRef(scale: number, ref: Polar): Polar;
- /**
- * Scales the current polar and returns a new polar with the scaled coordinates
- * @param scale defines the multiplication factor
- * @returns the scaled polar
- */
- scale(scale: number): Polar;
- /**
- * Scales the current polar
- * @param scale defines the multiplication factor
- * @returns the current polar
- */
- scaleInPlace(scale: number): this;
- /**
- * Sets the values of the current polar
- * @param radius the new radius
- * @param theta the new theta
- * @returns the current polar
- */
- set(radius: number, theta: number): this;
- /**
- * Sets the values of the current polar
- * @param value the new values
- * @returns the current polar
- */
- setAll(value: number): this;
- /**
- * Gets the rectangular coordinates of the current Polar
- * @param ref the reference to assign the result
- * @returns the updated reference
- */
- toVector2ToRef(ref: Vector2): Vector2;
- /**
- * Gets the rectangular coordinates of the current Polar
- * @returns the rectangular coordinates
- */
- toVector2(): Vector2;
- /**
- * Converts a given Vector2 to its polar coordinates
- * @param v the Vector2 to convert
- * @param ref the reference to assign the result
- * @returns the updated reference
- */
- static FromVector2ToRef(v: Vector2, ref: Polar): Polar;
- /**
- * Converts a given Vector2 to its polar coordinates
- * @param v the Vector2 to convert
- * @returns a Polar
- */
- static FromVector2(v: Vector2): Polar;
- /**
- * Converts an array of floats to a polar
- * @param array the array to convert
- * @returns the converted polar
- */
- static FromArray(array: number[]): Polar;
- }
- /**
- * Class used for (radius, theta, phi) vector representation.
- */
- export declare class Spherical {
- radius: number;
- theta: number;
- phi: number;
- /**
- * Creates a new Spherical object from the given spherical coordinates
- * @param radius spherical radius
- * @param theta angle from positive y axis to radial line from 0 to PI (vertical)
- * @param phi angle from positive x axis measured anticlockwise from -PI to PI (horizontal)
- */
- constructor(radius: number, theta: number, phi: number);
- /**
- * Gets the class name
- * @returns the string "Spherical"
- */
- getClassName(): string;
- /**
- * Converts the current spherical to a string
- * @returns the current spherical as a string
- */
- toString(): string;
- /**
- * Converts the current spherical to an array
- * @returns the current spherical as an array
- */
- asArray(): number[];
- /**
- * Adds the current Spherical and the given Spherical and stores the result
- * @param spherical the spherical to add
- * @param ref the spherical to store the result in
- * @returns the updated ref
- */
- addToRef(spherical: Spherical, ref: Spherical): Spherical;
- /**
- * Adds the current Spherical and the given Spherical
- * @param spherical the spherical to add
- * @returns the sum spherical
- */
- add(spherical: Spherical): Spherical;
- /**
- * Adds the given spherical to the current spherical
- * @param spherical the spherical to add
- * @returns the current spherical
- */
- addInPlace(spherical: Spherical): this;
- /**
- * Adds the provided values to the current spherical
- * @param radius the amount to add to the radius
- * @param theta the amount to add to the theta
- * @param phi the amount to add to the phi
- * @returns the current spherical
- */
- addInPlaceFromFloats(radius: number, theta: number, phi: number): this;
- /**
- * Subtracts the given Spherical from the current Spherical and stores the result
- * @param spherical the spherical to subtract
- * @param ref the spherical to store the result in
- * @returns the updated ref
- */
- subtractToRef(spherical: Spherical, ref: Spherical): Spherical;
- /**
- * Subtracts the given Spherical from the current Spherical
- * @param spherical the spherical to subtract
- * @returns the difference spherical
- */
- subtract(spherical: Spherical): Spherical;
- /**
- * Subtracts the given Spherical from the current Spherical
- * @param spherical the spherical to subtract
- * @returns the current spherical
- */
- subtractInPlace(spherical: Spherical): this;
- /**
- * Subtracts the given floats from the current spherical
- * @param radius the amount to subtract from the radius
- * @param theta the amount to subtract from the theta
- * @param phi the amount to subtract from the phi
- * @param ref the spherical to store the result in
- * @returns the updated ref
- */
- subtractFromFloatsToRef(radius: number, theta: number, phi: number, ref: Spherical): Spherical;
- /**
- * Subtracts the given floats from the current spherical
- * @param radius the amount to subtract from the radius
- * @param theta the amount to subtract from the theta
- * @param phi the amount to subtract from the phi
- * @returns the difference spherical
- */
- subtractFromFloats(radius: number, theta: number, phi: number): Spherical;
- /**
- * Multiplies the given Spherical with the current Spherical and stores the result
- * @param spherical the spherical to multiply
- * @param ref the spherical to store the result in
- * @returns the updated ref
- */
- multiplyToRef(spherical: Spherical, ref: Spherical): Spherical;
- /**
- * Multiplies the given Spherical with the current Spherical
- * @param spherical the spherical to multiply
- * @returns the product spherical
- */
- multiply(spherical: Spherical): Spherical;
- /**
- * Multiplies the given Spherical with the current Spherical
- * @param spherical the spherical to multiply
- * @returns the current spherical
- */
- multiplyInPlace(spherical: Spherical): this;
- /**
- * Divides the current Spherical by the given Spherical and stores the result
- * @param spherical the spherical to divide
- * @param ref the spherical to store the result in
- * @returns the updated ref
- */
- divideToRef(spherical: Spherical, ref: Spherical): Spherical;
- /**
- * Divides the current Spherical by the given Spherical
- * @param spherical the spherical to divide
- * @returns the quotient spherical
- */
- divide(spherical: Spherical): Spherical;
- /**
- * Divides the current Spherical by the given Spherical
- * @param spherical the spherical to divide
- * @returns the current spherical
- */
- divideInPlace(spherical: Spherical): this;
- /**
- * Clones the current spherical
- * @returns a clone of the current spherical
- */
- clone(): Spherical;
- /**
- * Copies the source spherical into the current spherical
- * @param source the spherical to copy from
- * @returns the current spherical
- */
- copyFrom(source: Spherical): this;
- /**
- * Copies the given values into the current spherical
- * @param radius the radius to use
- * @param theta the theta to use
- * @param phi the phi to use
- * @returns the current spherical
- */
- copyFromFloats(radius: number, theta: number, phi: number): this;
- /**
- * Scales the current spherical and stores the result
- * @param scale defines the multiplication factor
- * @param ref where to store the result
- * @returns the updated ref
- */
- scaleToRef(scale: number, ref: Spherical): Spherical;
- /**
- * Scales the current spherical and returns a new spherical with the scaled coordinates
- * @param scale defines the multiplication factor
- * @returns the scaled spherical
- */
- scale(scale: number): Spherical;
- /**
- * Scales the current spherical
- * @param scale defines the multiplication factor
- * @returns the current spherical
- */
- scaleInPlace(scale: number): this;
- /**
- * Sets the values of the current spherical
- * @param radius the new radius
- * @param theta the new theta
- * @param phi the new phi
- * @returns the current spherical
- */
- set(radius: number, theta: number, phi: number): this;
- /**
- * Sets the values of the current spherical
- * @param value the new values
- * @returns the current spherical
- */
- setAll(value: number): this;
- /**
- * Assigns the rectangular coordinates of the current Spherical to a Vector3
- * @param ref the Vector3 to update
- * @returns the updated Vector3
- */
- toVector3ToRef(ref: Vector3): Vector3;
- /**
- * Gets a Vector3 from the current spherical coordinates
- * @returns the (x, y,z) form of the current Spherical
- */
- toVector3(): Vector3;
- /**
- * Assigns the spherical coordinates from a Vector3
- * @param vector the vector to convert
- * @param ref the Spherical to update
- * @returns the updated ref
- */
- static FromVector3ToRef(vector: DeepImmutable<Vector3>, ref: Spherical): Spherical;
- /**
- * Gets a Spherical from a Vector3
- * @param vector defines the vector in (x, y, z) coordinate space
- * @returns a new Spherical
- */
- static FromVector3(vector: DeepImmutable<Vector3>): Spherical;
- /**
- * Converts an array of floats to a spherical
- * @param array the array to convert
- * @returns the converted spherical
- */
- static FromArray(array: number[]): Spherical;
- }
|