Repository URL to install this package:
|
Version:
1.1.0 ▾
|
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using JetBrains.Annotations;
using UnityEngine;
namespace Fluctio.FluctioSim.Utils.Extensions
{
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
[SuppressMessage("ReSharper", "UnusedMember.Global")]
[SuppressMessage("ReSharper", "UnusedMethodReturnValue.Global")]
public static class VectorExtensions
{
[Pure] public static Vector2 ToVector(this Resolution resolution) => new(
resolution.width,
resolution.height);
[Pure] public static Vector3 ComponentDivide(this Vector3 vector1, Vector3 vector2) => new(
vector1.x / vector2.x,
vector1.y / vector2.y,
vector1.z / vector2.z);
[Pure] public static Vector2 ComponentDivide(this Vector2 vector1, Vector2 vector2) => new(
vector1.x / vector2.x,
vector1.y / vector2.y);
[Pure] public static Vector3 ComponentInverse(this Vector3 vector) => Vector3.one.ComponentDivide(vector);
[Pure] public static Vector2 ComponentInverse(this Vector2 vector) => Vector2.one.ComponentDivide(vector);
[Pure] public static Vector3 ToVector3(this float number) => Vector3.one * number;
[Pure] public static Vector2 ToVector2(this float number) => Vector2.one * number;
[Pure] public static float Average(this Vector3 vector) => (vector.x + vector.y + vector.z) / 3f;
[Pure] public static float Average(this Vector2 vector) => (vector.x + vector.y) / 2f;
[Pure] public static List<float> ToList(this Vector3 vector) => new() { vector.x, vector.y, vector.z };
[Pure] public static List<float> ToList(this Vector2 vector) => new() { vector.x, vector.y };
[Pure] public static Vector3 Lerp(Vector3 start, Vector3 end, Vector3 t) => new(
Mathf.Lerp(start.x, end.x, t.x),
Mathf.Lerp(start.y, end.y, t.y),
Mathf.Lerp(start.z, end.z, t.z));
[Pure] public static Vector2 Lerp(Vector2 start, Vector2 end, Vector2 t) => new(
Mathf.Lerp(start.x, end.x, t.x),
Mathf.Lerp(start.y, end.y, t.y));
}
}