Class MathUtilities
Contains some utility functions related to math
Namespace: WeaverCore.Utilities
Assembly: WeaverCore.dll
Syntax
public static class MathUtilities
Methods
| Edit this page View SourceAngleIsWithinRange(float, Vector2)
Checks if an angle is within a certain range
Declaration
public static bool AngleIsWithinRange(float angleDegrees, Vector2 range)
Parameters
| Type | Name | Description |
|---|---|---|
| float | angleDegrees | The angle in degrees |
| Vector2 | range | The range the angle should be in |
Returns
| Type | Description |
|---|---|
| bool | Returns true if the angle is within the range |
CalculateMaximumOfCurve(float, float, float, float)
This function will calculate a velocity curve needed to get from startY to endY, and will return the time it takes to reach the peak of the curve and the peak height of the curve itself
Declaration
public static (float timeToPeak, float peakHeight) CalculateMaximumOfCurve(float startY, float endY, float time, float gravityScale = 1)
Parameters
| Type | Name | Description |
|---|---|---|
| float | startY | The starting height |
| float | endY | The destination height |
| float | time | The amount of time needed to get from |
| float | gravityScale | The gravity multiplier |
Returns
| Type | Description |
|---|---|
| (float timeToPeak, float peakHeight) | the time it takes to reach the peak of the curve and the peak height of the curve itself |
CalculateTimeToReachHeight(Vector2, Vector2, float, double)
Calculates the time needed to reach a certain height. Returns NaN if the height can never be reached
Declaration
public static float CalculateTimeToReachHeight(Vector2 start, Vector2 velocity, float targetHeight, double gravityScale = 1)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector2 | start | The start position |
| Vector2 | velocity | The starting velocity |
| float | targetHeight | The target height to reach |
| double | gravityScale | The gravity scale of the object |
Returns
| Type | Description |
|---|---|
| float |
CalculateVelocityToReachPoint(Vector2, Vector2, double, double)
Calculates the 2D velocity needed to reach the specified end point.
Declaration
public static Vector2 CalculateVelocityToReachPoint(Vector2 start, Vector2 end, double time, double gravityScale = 1)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector2 | start | The starting position |
| Vector2 | end | The end position |
| double | time | The amount of time needed to get from the |
| double | gravityScale | The gravity multiplier |
Returns
| Type | Description |
|---|---|
| Vector2 | Returns the 2D velocity needed to reach the specified |
CartesianToPolar(float, float)
Converts a set of cartesian coordinates to polar coordinates
Declaration
public static Vector2 CartesianToPolar(float x, float y)
Parameters
| Type | Name | Description |
|---|---|---|
| float | x | The x coordinates |
| float | y | The y coordinates |
Returns
| Type | Description |
|---|---|
| Vector2 | Returns the polar coordinates (x is the angle in degrees, y is the magnitude) |
CartesianToPolar(Vector2)
Converts a set of cartesian coordinates to polar coordinates
Declaration
public static Vector2 CartesianToPolar(Vector2 vector)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector2 | vector | The x-y coordinates |
Returns
| Type | Description |
|---|---|
| Vector2 | Returns the polar coordinates (x is the angle in degrees, y is the magnitude) |
ClampRotation(float)
Clamps an angle into the range -180 to 180
Declaration
public static float ClampRotation(float degrees)
Parameters
| Type | Name | Description |
|---|---|---|
| float | degrees | The angle to clamp |
Returns
| Type | Description |
|---|---|
| float |
PolarToCartesian(float, float)
Converts a set of polar coordinates to cartesian coordinates
Declaration
public static Vector2 PolarToCartesian(float angleDegrees, float magnitude)
Parameters
| Type | Name | Description |
|---|---|---|
| float | angleDegrees | The angle of the polar coordinate |
| float | magnitude | The length of the polar coordinate |
Returns
| Type | Description |
|---|---|
| Vector2 | Returns the set of polar coordinates in cartesian coordinates |
PolarToCartesian(Vector2)
Converts a set of polar coordinates to cartesian coordinates
Declaration
public static Vector2 PolarToCartesian(Vector2 angleAndMagnitude)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector2 | angleAndMagnitude | The polar coordinates (x is the angle, y is the magnitude) |
Returns
| Type | Description |
|---|---|
| Vector2 | Returns the set of polar coordinates in cartesian coordinates |
PredictPosition(Vector2, Vector2, float, float)
Declaration
public static Vector2 PredictPosition(Vector2 startPos, Vector2 velocity, float gravityScale, float time)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector2 | startPos | |
| Vector2 | velocity | |
| float | gravityScale | |
| float | time |
Returns
| Type | Description |
|---|---|
| Vector2 |
PredictPosition(Vector2, Vector2, Vector2, float)
Declaration
public static Vector2 PredictPosition(Vector2 startPos, Vector2 velocity, Vector2 acceleration, float time)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector2 | startPos | |
| Vector2 | velocity | |
| Vector2 | acceleration | |
| float | time |
Returns
| Type | Description |
|---|---|
| Vector2 |