A collection of extension methods for Floats

Static methods

staticinlineclamp (n:Float, min:Float, max:Float):Float

Clamps input value between the minimum and maximum values. ex. 120.clamp(0, 100) = 100

 *  @param n	input value
 *  @param min	minimum value
 *  @param max	maximum value
 *  @return		Float

staticinlinecycle (n:Float, min:Float, max:Float):Float

Loops input value through a range of minimum and maximum values. ex. 150.cycle(0, 100) = 50

 *  @param n	input value
 *  @param min	minimum value (beginning) of cycle
 *  @param max	maximum value (end) of cycle
 *  @return		Float

staticinlinedeg_to_rad (deg:Float):Float

Returns the radian equivalent to the input degree. ex. 180.deg_to_rad() == Math.PI = true

 *  @param deg	input degree
 *  @return		Float

staticinlinedegrees_between (a1:Float, a2:Float):Float

Returns the degrees between two angles. ex. 20.degrees_between(-20) = 40

 *  @param a1	first angle in degrees
 *  @param a2	second angle in degrees
 *  @return		Float

@:value({ min : 0 })staticinlineget_random (def_max:Float, min:Float = 0, ?max:Float):Float

gets a random number from a range of numbers. ex. 10.get_random() = a number between 0 and 10

 *  @param def_max	input value is the assumed (default) maximum number in the desired range
 *  @param min		the minimum number in the desired range
 *  @param max		overrides input number for the maximum number in the desired range (input number is ignored)
 *  @return			Float

staticinlineget_relative_degree (n:Float):Float

Returns a degree between 0 and 360. ex. (-10).get_relative_degree() = 350

 *  @param n	input angle
 *  @return		Float

staticinlinehalf (n:Float):Float

returns half of the input

 *  @param n	input float
 *  @return		Float return n * 0.5

staticinlinelerp (t:Float, a:Float, b:Float):Float

linear interpolation. ex. 2.lerp(0, 100) = 200;

 *  @param t	input value
 *  @param a	lerp range first index
 *  @param b	lerp range second index
 *  @return 	Float

staticinlinemap (t:Float, a0:Float, b0:Float, a1:Float, b1:Float):Float

Maps a value from one range of values to another, ex: 1.map(0, 2, 20, 30) = 25

 *  @param t	input value
 *  @param a0	0 index for first range
 *  @param b0	1 index for first range
 *  @param a1	0 index for second range
 *  @param a1	1 index for second range
 *  @return		Float

staticinlinenorm (t:Float, a:Float, b:Float):Float

returns a norm value t of a through b. ex. 10.norm(0, 100) = 0.1

 *  @param t	input value
 *  @param a	norm range first index
 *  @param b	norm range second index
 *  @return		Float

staticinlinenormalize (n:Float, places:Int):Float

returns input value with removed decimal places after places input. ex. 1.135908.normalize(2) = 1.14

 *  @param n		input value
 *  @param places	how many places
 *  @return			Float

staticinlinequarter (n:Float):Float

returns quarter of the input

 *  @param n	input float
 *  @return		Float return n * 0.25

staticinlinerad_to_deg (rad:Float):Float

Returns the degree equivalent to the input radian. ex. Math.PI.rad_to_deg() = 180

 *  @param rad	input radian
 *  @return		Float

staticinlinesign_of (n:Float):Int

returns the sign (-1, 0, 1) of a number

 *  @param n	input value
 *  @return		Int

@:value({ floor : false, offset : 0 })staticinlinesnap_to_grid (n:Float, grid_size:Float, offset:Float = 0, floor:Bool = false):Float

snaps value n to a grid. ex. 21.snap_to_grid(10) = 20

 *  @param n			input value
 *  @param grid_size	the size of the grid
 *  @param offset		the offset of the grid
 *  @param floor		whether or not to use Math.floor() or Math.round(), default false (Math.round())
 *  @return				Float

staticinlineto_int (n:Float):Int

returns an Int in the place of a Float. ex. 10.1.to_int() = 10

 *  @param n	input Float
 *  @return		Int

staticinlineto_vec4 (n:Float):Array<Float>

Converts an 0xRRGGBBAA Int to a float array suitable for passing to shaders

Parameters:

n

input value

Returns:

Array

staticinlinetranslate_to_nearest_angle (a1:Float, a2:Float):Float

Returns a degree that has the same relative angle as the input angle, but is closest to the second angle. ex. 350.translate_to_nearest_angle(10) = 20

Parameters:

a1

input angle in degrees

a2

second angle in degrees

Returns:

Float

staticinlinevector_from_angle (a:Float, len:Float):Vec2

returns a Vector describing a vector of given angle and length. ex. 270.vector_from_angle(100) == new Vector(0, -100) = true

 *  @param a	the angle in degrees of desired vector
 *  @param len	the length of the desired vector
 *  @return		Vector